すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Hive ジョブの作成と実行

最終更新日:Jan 11, 2025

このトピックでは、E-MapReduce(EMR)クラスターで Hive ジョブを作成および実行する方法について説明します。

Hive を使用した OSS データの処理

Hive を使用してオブジェクトストレージサービス(OSS)バケットからデータを読み取るか、OSS バケットにデータを書き込む場合は、最初に次のコマンドを実行して外部テーブルを作成する必要があります。
CREATE EXTERNAL TABLE eusers (
  userid INT) 
 LOCATION 'oss://emr/users';

次の例は、Hive ジョブを作成および実行する方法を示しています。
  • 例 1
    1. 次のスクリプトを記述し、hiveSample1.sql として保存して、OSS にアップロードします。

      詳細については、「オブジェクトのアップロード」をご参照ください。

      USE DEFAULT;
       set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
       set hive.stats.autogather=false;
       DROP TABLE emrusers;
       CREATE EXTERNAL TABLE emrusers (
         userid INT,
         movieid INT,
         rating INT,
         unixtime STRING ) 
        ROW FORMAT DELIMITED 
        FIELDS TERMINATED BY '\t' 
        STORED AS TEXTFILE 
        LOCATION 'oss://${bucket}/yourpath';
       SELECT COUNT(*) FROM emrusers;
       SELECT * from emrusers limit 100;
       SELECT movieid,count(userid) as usercount from emrusers group by movieid order by usercount desc limit 50;
    2. テストデータを準備します。

      次のテストデータをダウンロードし、宛先の OSS ディレクトリにアップロードできます。

      テストデータ: パブリックテストデータ

    3. ジョブを作成します。

      EMR コンソールで Hive ジョブを作成します。詳細については、「Hive ジョブの構成」をご参照ください。

      ジョブの内容:
      -f ossref://${bucket}/yourpath/hiveSample1.sql

      この例では、${bucket} は OSS バケットを示し、yourpath はバケット内のパスを示します。 yourpath を Hive スクリプトが保存されているパスに置き換えます。

    4. ジョブを実行します。

      [実行] をクリックしてジョブを実行します。ジョブを既存のクラスターに関連付けることができます。また、システムが自動的にクラスターを作成し、ジョブをクラスターに関連付けるようにすることもできます。

  • 例 2

    HiBench の scan を例として使用します。

    1. 次のスクリプトを記述し、scan.hive として保存して、OSS にアップロードします。
      USE DEFAULT;
       set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat;
       set mapreduce.job.maps=12;
       set mapreduce.job.reduces=6;
       set hive.stats.autogather=false;
       DROP TABLE uservisits;
       CREATE EXTERNAL TABLE uservisits (sourceIP STRING,destURL STRING,visitDate STRING,adRevenue DOUBLE,userAgent STRING,countryCode STRING,languageCode STRING,searchWord STRING,duration INT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS SEQUENCEFILE LOCATION 'oss://${bucket}/sample-data/hive/Scan/Input/uservisits';

      たとえば、ファイルを oss://emr/jars/ にアップロードできます。

    2. テストデータを準備します。

      次のテストデータをダウンロードし、宛先の OSS ディレクトリにアップロードできます。

      テストデータ: uservisits

    3. EMR コンソールで Hive ジョブを作成します。詳細については、「Hive ジョブの構成」をご参照ください。
    4. ジョブを実行します。

      [実行] をクリックしてジョブを実行します。ジョブを既存のクラスターに関連付けることができます。また、システムが自動的にクラスターを作成し、ジョブをクラスターに関連付けるようにすることもできます。