ハイブアリーナにおけるデータマスタリー

HadoopHadoopBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

データが最も重要な未来の世界では、データ操作の究極のマスターを決定するための壮大なトーナメントが開催されます。銀河系の隅々からの参加者が集まり、データの整理技術を披露しますが、最も困難なチャレンジはHadoop Hive Shellの分野にあります。

あなたは有望なデータエンジニアで、この名声高いイベントで自国を代表することに選ばれました。あなたが試合場に立ち入ると、大会の主審判の威厳ある姿があなたを迎え、「ようこそ、挑戦者!この決定的な戦いでは、Hadoopのデータウェアハウスシステムと対話することができる強力なツールであるHive Shellの奥深さを征服しなければなりません。データ照会、操作、分析の熟練度をテストする一連のタスクを実行することで、あなたの勇気を証明してください。」

決意をこめてうなずき、あなたはこれからのチャレンジに備え、自らの技術を披露し、自国に栄光をもたらそうと心を燃やしています。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHiveGroup(["Hadoop Hive"]) hadoop/HadoopHiveGroup -.-> hadoop/hive_setup("Hive Setup") hadoop/HadoopHiveGroup -.-> hadoop/hive_shell("Hive Shell") hadoop/HadoopHiveGroup -.-> hadoop/manage_db("Managing Database") hadoop/HadoopHiveGroup -.-> hadoop/create_tables("Creating Tables") hadoop/HadoopHiveGroup -.-> hadoop/describe_tables("Describing Tables") hadoop/HadoopHiveGroup -.-> hadoop/load_insert_data("Loading and Inserting Data") hadoop/HadoopHiveGroup -.-> hadoop/basic_hiveql("Basic HiveQL Queries") hadoop/HadoopHiveGroup -.-> hadoop/where("where Usage") hadoop/HadoopHiveGroup -.-> hadoop/group_by("group by Usage") subgraph Lab Skills hadoop/hive_setup -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/hive_shell -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/manage_db -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/create_tables -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/describe_tables -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/load_insert_data -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/basic_hiveql -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/where -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} hadoop/group_by -.-> lab-288978{{"ハイブアリーナにおけるデータマスタリー"}} end

Hive Shellにアクセスする

このステップでは、Hiveデータウェアハウスシステムと対話することができるコマンドラインインターフェイスであるHive Shellにアクセスする方法を学びます。

Hive Shellにアクセスするには、次の手順に従ってください。

  1. ターミナルウィンドウを起動します。
  2. 次のコマンドを実行して、hadoopユーザーに切り替えます。
su - hadoop
  1. hadoopユーザーの環境に入ったら、次のコマンドを実行してHive Shellを起動します。
hive

Hive Shellのプロンプト(hive>)が表示されれば、正常にHive Shellに入ったことがわかります。

ターミナルに表示される例を以下に示します。

[hadoop@localhost ~]$ hive
Hive Session ID = 2bd4d0ce-9a9a-4c4e-a8f4-c5a6c7b9a8b9

Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j2.properties Async: true
Hive Session Value Manager Service

hive>

これで、Hive Shell内でHiveクエリとコマンドを実行する準備が整いました。

データベースとテーブルの作成

このステップでは、Hive Shell内で新しいデータベースとテーブルを作成する方法を学びます。

  1. まず、Hive Shellで次のコマンドを実行して、tournament_dbという名前の新しいデータベースを作成します。
CREATE DATABASE tournament_db;
  1. 次に、新しく作成したデータベースに切り替えます。
USE tournament_db;
  1. 次のスキーマを持つcontestantsという名前の新しいテーブルを作成します。
CREATE TABLE contestants (
  id INT,
  name STRING,
  planet STRING,
  score INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

このテーブルは、大会の参加者に関する情報、つまり彼らのID、名前、自国の惑星、そして得点を格納します。

  1. テーブルが正常に作成されたことを確認するには、次のコマンドを実行してテーブルのスキーマを記述します。
DESCRIBE contestants;

Hive Shellの出力にテーブルのスキーマが表示されるはずです。

以下に表示例を示します。

hive> DESCRIBE contestants;
OK
id                   int                 None
name                 string               None
planet               string               None
score                int                  None

テーブルにデータを読み込む

これでcontestantsテーブルを作成しましたので、そこにデータを入力しましょう。

  1. /home/hadoop/ディレクトリに、次の内容のcontestants.csvという名前の新しいファイルを作成します。
1,Zara,Andromeda,85
2,Brock,Celestia,92
3,Kira,Nebula,78
4,Tara,Vega,96
5,Zion,Altair,83
  1. 次に、新しく作成したデータベースに切り替えます。
USE tournament_db;
  1. Hive Shellで次のコマンドを使用して、contestants.csvファイルのデータをcontestantsテーブルに読み込みます。
LOAD DATA LOCAL INPATH '/home/hadoop/contestants.csv' OVERWRITE INTO TABLE contestants;

このコマンドは、ローカルファイルcontestants.csvのデータをcontestantsテーブルに読み込み、既存のデータを上書きします。

  1. データが正しく読み込まれたことを確認するには、SELECTクエリを実行します。
SELECT * FROM contestants;

次の出力が表示されるはずです。

hive> SELECT * FROM contestants;
OK
1 Zara Andromeda 85
2 Brock Celestia 92
3 Kira Nebula 78
4 Tara Vega 96
5 Zion Altair 83

データの照会

contestantsテーブルにデータが読み込まれたので、これでデータを分析および操作するためのさまざまな照会を実行できるようになりました。

  1. 「アンドロメダ」惑星のすべての参加者の名前と得点を表示するには、次の照会を実行します。
SELECT name, score FROM contestants WHERE planet = 'Andromeda';

次の出力が表示されるはずです。

hive> SELECT name, score FROM contestants WHERE planet = 'Andromeda';
OK
Zara 85
  1. すべての参加者の平均得点を計算するには、次の照会を実行します。
SELECT AVG(score) AS average_score FROM contestants;

次の出力が表示されるはずです。

hive> SELECT AVG(score) AS average_score FROM contestants;
OK
86.8
  1. 最も高い得点を持つ参加者を見つけるには、次の照会を実行します。
SELECT name, MAX(score) AS highest_score FROM contestants GROUP BY name;

次の出力が表示されるはずです。

hive> SELECT name, MAX(score) AS highest_score FROM contestants GROUP BY name;
OK
Brock   92
Kira    78
Tara    96
Zara    85
Zion    83

Hiveが提供するさまざまな句や関数を使用して、さらに多くの照会を試してcontestantsテーブルのデータを探求してください。

まとめ

この実験では、データ操作と分析の強力なツールであるHadoop Hive Shellの世界への旅に出ました。一連の没入型チャレンジを通じて、Hive Shellにアクセスし、データベースとテーブルを作成し、データを読み込み、さまざまな句や関数を使ってデータを照会する技術を習得しました。

この実験のデザインは、未来派の大会をイメージしており、魅力的で励みになる学習体験を提供することを目指しています。自国の惑星を代表する参加者の役割を務めることで、各チャレンジで優れるように励まされ、データ操作の技術を磨き、データ処理能力を発揮しました。

実験全体を通して、コマンドを実行し、照会を書き、結果を分析する手作業のタスクに遭遇しました。手順ごとの指示には、コード例と詳細な説明が付いており、スムーズな学習曲線を保証し、徐々に知識と自信を築くことができました。

各ステップの最後にチェッカースクリプトがあり、自己評価の機会を提供し、理解を確認し、タスクを正常に完了したことを保証します。これらのチェッカーは、学習を強化し、正しい道に進んでいることを確認するために重要な役割を果たしました。

全体的に、この実験はHadoop Hive Shellを使うために必要な基本的な技術を身に付けるだけでなく、魅力的で没入型の方法でデータ操作と分析の力を評価するきっかけとなりました。