Hive を使用する
    • PDF

    Hive を使用する

    • PDF

    Article Summary

    VPC環境で利用できます。

    このガイドでは、Object Storageバケットにデータを保存した後、Hueと Beelineを用いて簡単な Hiveクエリを実行する方法について説明します。

    アーキテクチャの例

    引き続き保存する必要のあるデータは Object Storageバケットに保存し、Cloud Hadoopクラスタは必要なときにだけ使用します。

    chadoop-4-5-007.png

    Hiveクエリを実行すると、次のステップ通りにクエリが実行されます。

    1. Hiveクライアントから Cloud Hadoopクラスタにある Hiveサーバにクエリを提出
    2. サーバはクエリを処理し、マスターサーバにインストールされたメタデータ DB(MySQL)にメタデータをリクエスト
    3. サーバは Object Storageのバケットに保存されているデータをロード
    4. Hiveサーバはクライアントに結果を返す

    Hiveテーブル作成

    例) NAVERクラウドプラットフォームの Object Storageバケットにサンプルデータファイルをアップロードし、Hiveでこのデータを使用できるように Hive External Tableを作成

    参考

    Object Storageバケットにあるデータを使用するには、hive-site.xmlに以下のような構成が必要です。

    fs.s3a.access.key=<API-ACCESS-KEY>
    fs.s3a.connection.ssl.enabled=false
    fs.s3a.endpoint=http://kr.objectstorage.ncloud.com
    fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem
    fs.s3a.secret.key=<API-SECRET-KEY>
    

    Hiveテーブルを作成する方法は、次の通りです。

    1. サンプルデータをダウンロードします。圧縮を展開した後、AllstarFull.csv ファイルを Object Storageバケットにアップロードします。

      • Hiveでは、データファイルの locationをフォルダ単位で読み込むため、1つのフォルダにつき1つのデータを保存します(推奨)。
      参考

      提供されるサンプルデータは Lahman's Baseball Database 2012バージョンの一部であり、データのすべての著作権は Sean Lahmanにあります。

      chadoop-4-5-001_ja.png

    2. Hue Hiveエディタ で、下記の構文で Hive External Tableを作成します。

    • location: データセットファイルが保存されたバケットパスを指定
    DROP table allstarfull;
    
    CREATE external TABLE if not EXISTS `allstarfull` (
            `playerID` VARCHAR(20),
            `yearID` INT,
            `gameNum` INT,
            `gameID` VARCHAR(30),
            `teamID` VARCHAR(4),
            `lgID` VARCHAR(4),
            `GP` INT,
            `startingPos` INT
    )
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    location 's3a://deepdrive-hue/input/lahman2012/allstarfull';
    

    Hiveクエリの実行

    Cloud Hadoopが提供する様々なツールを用いて Hiveクエリを実行できます。このガイドでは、以下の<Hiveクエリ実行ツールの例>でクエリを実行する方法について説明します。

    • <Hiveクエリ実行ツールの例>
    • Hueの Hiveインタプリタ
    • Hiveクライアントのうち、SQLLine CLIをベースにした Beeline

    Hueの Hiveインタプリタ

    Hueの Hiveインタプリタを用いて Hiveクエリを実行する方法は、次の通りです。

    1. Hueにログインし、Hiveインタプリタで HiveQLクエリを実行します。

      SELECT * FROM allstarfull LIMIT 10;
      
    2. 結果画面を通じて s3にアップロードしたファイルが Hiveテーブルと連携されたか確認します。
      chadoop-4-5-002_ja.png

    Beeline

    Beelineを用いて Hiveクエリを実行する方法は、次の通りです。

    1. Hiveクライアントがインストールされたホストに SSHで直接アクセスし、以下のコマンドで Beelineセッションを開始します。

      • [HIVE-SERVER2-SERVER] にはマスターノード(m-00x)ホスト名を入力します。
      beeline -u "jdbc:hive2://[HIVE-SERVER2-SERVER]:10000" -n hive
      
      参考

      ホストへのアクセス方法は、SSHでクラスタノードにアクセスガイドをご参照ください。

    2. Beelineプロンプトが表示されたら、HiveQLクエリを実行します。

      • 以下のクエリは結果を出力せず、Object Storageに保存します。
      beeline> INSERT OVERWRITE DIRECTORY 's3a://deepdrive-hue/output/' ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
      SELECT playerid, sum(gp) from allstarfull group by playerid;
      
      参考

      クエリを保存する前に、Object Storageバケットに指定した場所(ディレクトリ)が存在するか確認します。

    3. 以下のコマンドを実行して結果が正常に保存されたか確認します。

      hadoop fs -cat s3a://deepdrive-hue/output/000000_0
      

      chadoop-4-5-003_ja.png

    4. 結果は次の通りです。

      aaronha01,24
      aasedo01,1
      abreubo01,2
      adamsac01,0
      adcocjo01,2
      ageeto01,2
      aguilri01,3
      aguirha01,1
      alexado01,0
      alfoned01,1
      allendi01,6
      allenjo02,1
      alleyge01,1
      allisbo01,2
      alomaro01,12
      ...
      

    Hueの LLAPを有効化

    Hueのエディタリストで LLAPを有効にする方法は、次の通りです。

    参考

    Cloud Hadoopコンソールで作成したクラスタを選択した後、 [Application別に見る] を通じて Ambari Web UIにアクセスできます。詳細は、Ambari UIガイドをご参照ください。

    1. Ambariに接続し、 [Hive] > [CONFIGS] > [SETTINGS] で Hive LLAPを有効にします。設定を追加した後、 [SAVE] ボタンを押して保存し、 [RESTART] ボタンを押して再起動します。

    chadoop-4-5-008_ko.png

    1. [Hue] > [CONFIGS] > [Hue Service Module] で Hue Hive LLAP Moduleを有効にします。設定を追加した後、[SAVE] ボタンを押して保存し、[RESTART] ボタンを押して再起動します。

    chadoop-4-5-009_ko.png

    1. Hueのエディタリストで LLAPエディタが有効になっていることが確認できます。

    chadoop-4-5-010_ko.png


    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.