Hadoop を使った反乱軍のデータ再構築

HadoopHadoopBeginner
今すぐ練習

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

はじめに

遥かな銀河系で、暴虐なギャラクティック帝国は無数の惑星を征服し、それらの資源を搾取し、住民を抑圧してきました。反乱軍の指導者であるレイア姫は、帝国に対する反乱を協調してきましたが、彼女の軍勢は圧倒的に少数で、武器も劣っています。戦争の勢いを変えるために、レイアは膨大な量の情資データを分析して、帝国の弱点を特定し、戦略的な攻撃を計画する必要があります。

この実験の目的は、レイア姫と反乱軍同盟がHadoop Hiveの力を利用して大規模なデータセットを管理および操作することを支援することです。特に、既存のHiveテーブルを変更する方法を学ぶことです。このスキルを身につけることで、レイアは効率的に情資データベースを再構築し、重要な洞察を明らかにし、帝国に対する戦略的な優位性を獲得することができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHiveGroup(["Hadoop Hive"]) 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/alter_tables("Altering Tables") hadoop/HadoopHiveGroup -.-> hadoop/load_insert_data("Loading and Inserting Data") hadoop/HadoopHiveGroup -.-> hadoop/update_data("Updating Data") hadoop/HadoopHiveGroup -.-> hadoop/storage_formats("Choosing Storage Formats") subgraph Lab Skills hadoop/hive_shell -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} hadoop/manage_db -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} hadoop/create_tables -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} hadoop/describe_tables -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} hadoop/alter_tables -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} hadoop/load_insert_data -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} hadoop/update_data -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} hadoop/storage_formats -.-> lab-288956{{"Hadoop を使った反乱軍のデータ再構築"}} end

サンプル テーブルを作成する

このステップでは、操作対象のサンプル Hive テーブルを作成します。このテーブルは、銀河系の様々な惑星に関する情報を格納します。その情報には、惑星の名前、人口、資源が含まれます。

まず、ターミナルで以下のコマンドを実行して hadoop ユーザーに切り替えます。

su - hadoop

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

hive

Hive CLI 内で、rebel_intel という名前の新しいデータベースを作成します。

CREATE DATABASE rebel_intel;

rebel_intel データベースを使用します。

USE rebel_intel;

以下のスキーマを持つ planets という名前の新しいテーブルを作成します。

CREATE TABLE planets (
    planet_id INT,
    planet_name STRING,
    population BIGINT,
    resources ARRAY<STRING>
)
CLUSTERED BY (planet_id) INTO 2 BUCKETS
STORED AS ORC
TBLPROPERTIES ('transactional'='true');

このテーブルには 4 つの列があります。planet_id(惑星の ID を表す整数)、planet_name(惑星の名前を表す文字列)、population(惑星の人口を表す大きな整数)、resources(惑星の資源を表す文字列の配列)です。

exit; と入力して Hive CLI を終了します。

テーブルにデータを追加する

このステップでは、planets テーブルにサンプル データを入力します。このデータは、反乱軍同盟が銀河系の様々な惑星に関して収集した情資を表しています。

再度、Hive CLI を起動します。

hive

rebel_intel データベースを使用します。

USE rebel_intel;

planets テーブルにいくつかのサンプル データを挿入します。

INSERT INTO planets VALUES
    (1, 'アルデラン', 2000000000, array('農業', 'エネルギー')),
    (2, 'タトゥーイン', 200000, array('鉱業')),
    (3, 'ホス', 0, array('なし')),
    (4, 'エンドール', 30000, array('林業', '狩猟')),
    (5, 'ベスピン', 6000000, array('ガス鉱業', '観光'));

これにより、planets テーブルに 5 行のデータが挿入され、それぞれの惑星 ID、名前、人口、資源を持つ異なる惑星を表しています。

exit; と入力して Hive CLI を終了します。

テーブル構造を変更する

既にデータが入ったテーブルがありますが、例えばレイア姫が各惑星の気候に関する情報を格納するために別の列を追加する必要があるとしましょう。このステップでは、既存のHiveテーブルの構造を変更する方法を学びます。

Hive CLI を起動します。

hive

rebel_intel データベースを使用します。

USE rebel_intel;

planets テーブルを変更して、climate という新しい列を追加します。

ALTER TABLE planets ADD COLUMNS (climate STRING);

このコマンドは、planets テーブルに型が STRING の新しい列 climate を追加します。

更新されたテーブル構造を確認します。

DESCRIBE planets;

テーブル スキーマに新しい climate 列が表示されるはずです。

exit; と入力して Hive CLI を終了します。

テーブル データを更新する

planets テーブルに新しい climate 列が追加されたので、これで各惑星の気候情報を含めて既存のデータを更新できます。

Hive CLI を起動します。

hive

rebel_intel データベースを使用します。

USE rebel_intel;

各惑星の climate 列を更新します。

UPDATE planets SET climate = '温暖' WHERE planet_name = 'アルデラン';
UPDATE planets SET climate = '乾燥' WHERE planet_name = 'タトゥーイン';
UPDATE planets SET climate = '凍てつく' WHERE planet_name = 'ホス';
UPDATE planets SET climate = '熱帯性' WHERE planet_name = 'エンドール';
UPDATE planets SET climate = '人工的' WHERE planet_name = 'ベスピン';

これらの UPDATE 文は、それぞれの惑星名に基づいて各惑星の climate 値を設定します。

更新されたデータを確認します。

SELECT * FROM planets;

各惑星の更新された climate 値が表示されるはずです。

exit; と入力して Hive CLI を終了します。

まとめ

この実験では、Hadoop Hive におけるテーブルの変更の概念を探りました。これは、大規模なデータセットを管理および再構築するための重要なスキルです。サンプルの planets テーブルを作成し、データを追加し、その後新しい climate 列を含むようにテーブル構造を変更することで、データ モデルを進化する要件に合わせる方法を学びました。

この実験の設計は、象徴的なスター ウォーズの世界にインスピレーションを受けています。反乱軍の指導者であるレイア姫は、銀河帝国の防衛の弱点を特定するために情資データを分析する必要があります。Hive のテーブルを変更する機能を身につけることで、レイアは効率的に情資データベースを再構築し、貴重な洞察を明らかにし、抑圧的な帝国に対する反乱において戦略的な利点を得ることができます。

この実践的な経験を通じて、Hadoop 環境で大規模なデータセットを扱うための必須スキルである Hive テーブルの作成、変更、更新方法を深く理解することができました。チェッカーの使用により、各ステップでの進捗を確認し、学習を強化し、実験の目的を成功裏に達成できることも保証されました。