天体データのマスタリー

HadoopBeginner
オンラインで実践に進む

はじめに

超自然の世界へようこそ。この世界では、宇宙の力が人間の存在と絡み合っています。この異世界的なシナリオでは、あなたはエゼキエルの役割を務めます。エゼキエルは、時空を超えた架空の知識を守ることが使命である天体のリーダーです。あなたのミッションは、堅牢なデータ管理プラットフォームである Hadoop の力を利用して、この貴重な知恵を天体の世界に保存し、広めることです。

エゼキエルとして、あなたは天体のアーカイブを監督します。これは、何世代にもわたる蓄積された知識が収められた膨大な保管庫です。しかし、データの量が圧倒的になり、効率的に情報を整理して配布するために高度なシステムが必要になってきました。そこで登場するのが Hadoop です。これは強力なツールで、あなたが天体の洞察を読み込み、処理し、仲間たちと共有することを可能にします。

あなたの目標は、Hadoop の分散型ファイルシステムと Hive(Hadoop の上に構築されたオープンソースのデータウェアハウスシステム)にデータを読み込み、挿入する技術を習得することです。これにより、あなたは天体のアーカイブの秘密を解き明かし、啓蒙を求める人々に時代の知恵が常にアクセスできるようにすることができます。

Hadoop 分散型ファイルシステム(HDFS)へのデータコピー

このステップでは、Hadoop エコシステムの基盤である Hadoop 分散型ファイルシステム(HDFS)に、ローカルファイルシステムからデータを転送する方法を学びます。HDFS は、複数のノードにまたがって大量のデータを保存および管理し、データの冗長性と障害耐性を保証します。

まず、ターミナルで以下のコマンドを実行して、hadoopユーザーとしてログインしていることを確認します。

su - hadoop

次に、ローカルファイルシステムにサンプルデータファイルを作成しましょう。

echo "Hello, Celestial Realm" > /home/hadoop/celestial_data.txt

このコマンドは、/home/hadoopディレクトリに、内容が"Hello, Celestial Realm!"のcelestial_data.txtという名前のテキストファイルを作成します。

次に、hadoop fsコマンドを使用してこのファイルを HDFS にコピーします。

hadoop fs -mkdir -p /home/hadoop/celestial_archives
hadoop fs -put /home/hadoop/celestial_data.txt /home/hadoop/celestial_archives

このコマンドの機能は以下の通りです。

  • hadoop fsは、HDFS と対話するためのコマンドラインユーティリティです。
  • -mkdirは、ディレクトリを作成するためのhadoop fsコマンドのサブコマンドです。
  • -pは、親ディレクトリを再帰的に作成するオプションです。指定されたパスに親ディレクトリが存在しない場合、それと一緒に作成されます。
  • -putは、ローカルファイルシステムから HDFS にファイルをコピーする操作です。
  • /home/hadoop/celestial_data.txtは、ローカルファイルシステム上のソースファイルパスです。
  • /home/hadoop/celestial_archivesは、HDFS 内の宛先ディレクトリパスです。

このコマンドを実行した後、ファイルが HDFS にコピーされたことを確認する成功メッセージが表示されるはずです。

Hive テーブルの作成とデータの読み込み

このステップでは、Hive テーブルを作成し、HDFS からのデータをそのテーブルに読み込む方法を学びます。Hive は、効率的なデータの要約、照会、分析のために設計された、Hadoop の上に構築された強力なデータウェアハウスツールです。

まず、以下のコマンドを実行して Hive CLI を起動します。

hive

これにより、Hive の対話型シェルが開き、Hive の照会やコマンドを実行できるようになります。

次に、データを保存するための新しい Hive テーブルcelestial_archivesを作成します。

CREATE TABLE celestial_archives (message STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;

この Hive の照会は以下のように機能します。

  • CREATE TABLE celestial_archivesは、celestial_archivesという名前の新しいテーブルを作成します。
  • (message STRING)は、STRING型のデータを持つmessageという名前の単一の列を定義します。
  • ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'は、データファイルの各行がタブ文字(\t)で区切られていることを指定します。
  • STORED AS TEXTFILEは、テーブルデータが HDFS 内の平文ファイルとして保存されることを示します。

テーブルを作成した後、LOAD DATAコマンドを使用して HDFS からのデータを Hive テーブルに読み込みます。

LOAD DATA INPATH '/home/hadoop/celestial_archives/celestial_data.txt' INTO TABLE celestial_archives;

このコマンドは、HDFS 内の/home/hadoop/celestial_archives/celestial_data.txtファイルからのデータをcelestial_archives Hive テーブルに読み込みます。

最後に、データが正しく読み込まれたことを確認するためにテーブルを照会できます。

SELECT * FROM celestial_archives;

この照会は、celestial_archivesテーブルの内容を表示するはずで、それは"Hello, Celestial Realm!"のメッセージであるはずです。

まとめ

この実験では、あなたは天体のアーカイブの架空の知識を守ることが使命である天体のリーダーであるエゼキエルの役割を務めました。Hadoop の分散型ファイルシステム(HDFS)と Hive にデータを読み込み、挿入する技術を習得することで、この貴重な知恵を天体の世界に保存し、広めるための重要なステップを踏み出しました。

実践的な演習を通じて、あなたはローカルファイルシステムから HDFS にデータをコピーする方法、Hive テーブルを作成する方法、および HDFS からこれらのテーブルにデータを読み込む方法を学びました。これらのタスクを達成することで、あなたは天体のアーカイブの秘密を解き明かし、啓蒙を求める人々に時代の知識が常にアクセスできるようにしました。

この実験は、Hadoop と Hive を使った実践的なスキルを身に付けるだけでなく、独創的な異世界的なシナリオに対して創造的に考え、これらのツールを適用することをあなたに挑戦しました。天体の知識を保存する旅はまだ始まったばかりであり、あなたが獲得したスキルは、データ管理と分析の広大な世界をさらに探求し続ける際に非常に貴重でしょう。