はじめに
銀河間貿易駅へようこそ。ここは、銀河を超えた商人や旅行者が商品とサービスを交換するにぎやかな拠点です。スキルの高い宇宙駅メカニックとして、あなたの専門知識は、駅のシステムを円滑に動かすために高い需要があります。今日は、使用パターンに基づいてデータをソートすることで、駅の資源配分を分析し最適化する任務が与えられました。
あなたの目標は、大規模なデータセットを効率的に処理しソートできる、Hadoop ベースのソリューションを開発することです。これにより、駅の資源が効率的に割り当てられ、多様な訪問者の絶え間ないニーズに応えることができます。
環境をセットアップする
このステップでは、Hadoop プロジェクトの環境をセットアップし、サンプル データセットを作成します。
- ターミナルを開き、次のコマンドを実行して
hadoopユーザーに切り替えます。
su - hadoop
/home/hadoopディレクトリにsorting_labという新しいディレクトリを作成します。
mkdir /home/hadoop/sorting_lab
sorting_labディレクトリに移動します。
cd /home/hadoop/sorting_lab
- 次のコマンドを実行してサンプル データセットを作成します。
echo -e "apple\t5\nbanana\t3\norange\t7\ngrape\t2\nstrawberry\t6" > fruit_sales.txt
このコマンドは、次の内容を持つ fruit_sales.txt というファイルを作成します。
apple 5
banana 3
orange 7
grape 2
strawberry 6
ファイルの各行は、タブ文字で区切られた果物とその販売数を表しています。
Hive にデータを読み込む
このステップでは、Hive テーブルを作成し、サンプル データセットを読み込みます。
- 次のコマンドを実行して Hive シェルを起動します。
hive
sorting_dbという新しいデータベースを作成します。
CREATE DATABASE sorting_db;
sorting_dbデータベースを使用します。
USE sorting_db;
fruit(文字列)とcount(整数)の 2 つの列を持つfruit_salesという新しいテーブルを作成します。
CREATE TABLE fruit_sales (fruit STRING, count INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
fruit_sales.txtファイルをfruit_salesテーブルに読み込みます。
LOAD DATA LOCAL INPATH '/home/hadoop/sorting_lab/fruit_sales.txt' OVERWRITE INTO TABLE fruit_sales;
SELECTクエリを実行して、データが正しく読み込まれたことを確認します。
SELECT * FROM fruit_sales;
これは次のように出力されるはずです。
apple 5
banana 3
orange 7
grape 2
strawberry 6
- 次のコマンドを実行して Hive シェルを終了します。
quit;
使用量によってデータをソートする
このステップでは、Hive の ORDER BY 句を使用して、fruit_sales テーブルを count 列で降順にソートします。
- 次のコマンドを実行して Hive シェルを起動します。
hive
sorting_dbデータベースを使用します。
USE sorting_db;
- 次のクエリを実行して、
fruit_salesテーブルをcount列で降順にソートします。
CREATE TABLE result AS
SELECT * FROM fruit_sales ORDER BY count DESC;
SELECT * FROM result;
これは次のように出力されるはずです。
orange 7
strawberry 6
apple 5
banana 3
grape 2
- 次のコマンドを実行して Hive シェルを終了します。
quit;
まとめ
この実験では、Hadoop Hive の「使用量によるソート」機能を調べました。まず、環境をセットアップしてサンプル データセットを作成しました。次に、データを Hive テーブルに読み込み、ORDER BY 句を使用して特定の列でテーブルをソートする方法を学びました。
この実験では、Hive を使った実践的な経験を提供し、使用パターンに基づいてデータをソートする方法を示しました。このスキルを習得することで、銀河間貿易駅など、さまざまなシナリオでの資源配分を効率的に分析し最適化することができます。
実験全体を通して、各ステップの成功裏の完了を確認するためにチェッカーも使用しました。これにより、将来的に同様のチャレンジに取り組む際に必要な知識と実践的な経験を身につけることができます。



