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

Object Storage Service:HDP 2.6 ベースの Hadoop を使用した OSS データの読み取りと書き込み

最終更新日:Jun 21, 2026

Hortonworks Data Platform (HDP) は、Hortonworks がリリースしたビッグデータプラットフォームであり、Hadoop、Hive、HBase などのオープンソースコンポーネントで構成されています。HDP 3.0.1 には Hadoop 3.1.1 が含まれており、Object Storage Service (OSS) をサポートしています。ただし、HDP の以前のバージョンは OSS をサポートしていません。本トピックでは、HDP 2.6.1.0 を例に、HDP 2.6 を設定して OSS データの読み取りと書き込みを行う方法について説明します。

前提条件

HDP 2.6.1.0 クラスターが作成されていること。

  • Ambari を使用して HDP 2.6.1.0 クラスターを作成します。
  • Ambari が利用できない場合は、手動で HDP 2.6.1.0 クラスターを作成できます。

手順

  1. OSS をサポートする HDP 2.6.1.0 パッケージ をダウンロードします。
  2. 次のコマンドを実行して、ダウンロードしたパッケージを解凍します。
    sudo tar -xvf hadoop-oss-hdp-2.6.1.0-129.tar

    成功した場合の出力例:

    hadoop-oss-hdp-2.6.1.0-129/
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-ram-3.0.0.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-core-3.4.0.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-ecs-4.2.0.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-sts-3.0.0.jar
    hadoop-oss-hdp-2.6.1.0-129/jdom-1.1.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-sdk-oss-3.4.1.jar
    hadoop-oss-hdp-2.6.1.0-129/hadoop-aliyun-2.7.3.2.6.1.0-129.jar
  3. JAR パッケージのディレクトリを変更します。
    説明 本トピックでは、${} で囲まれた内容は環境変数です。ご使用の環境に合わせて値を置き換えてください。
    1. hadoop-aliyun-2.7.3.2.6.1.0-129.jar パッケージを ${/usr/hdp/current}/hadoop-client/ ディレクトリに移動します。次のコマンドを実行して、ファイルが移動されたことを確認します。
      sudo ls -lh /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar

      成功した場合の出力例:

      -rw-r--r-- 1 root root 64K Oct 28 20:56 /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar
    2. その他の JAR パッケージを ${/usr/hdp/current}/hadoop-client/lib/ ディレクトリに移動します。次のコマンドを実行して、ファイルが移動されたことを確認します。
      sudo ls -ltrh /usr/hdp/current/hadoop-client/lib

      成功した場合の出力例:

      total 27M
      ......
      drwxr-xr-x 2 root root 4.0K Oct 28 20:10 ranger-hdfs-plugin-impl
      drwxr-xr-x 2 root root 4.0K Oct 28 20:10 ranger-yarn-plugin-impl
      drwxr-xr-x 2 root root 4.0K Oct 28 20:10 native
      -rw-r--r-- 1 root root 114K Oct 28 20:56 aliyun-java-sdk-core-3.4.0.jar
      -rw-r--r-- 1 root root 513K Oct 28 20:56 aliyun-sdk-oss-3.4.1.jar
      -rw-r--r-- 1 root root  13K Oct 28 20:56 aliyun-java-sdk-sts-3.0.0.jar
      -rw-r--r-- 1 root root 211K Oct 28 20:56 aliyun-java-sdk-ram-3.0.0.jar
      -rw-r--r-- 1 root root 770K Oct 28 20:56 aliyun-java-sdk-ecs-4.2.0.jar
      -rw-r--r-- 1 root root 150K Oct 28 20:56 jdom-1.1.jar
  4. すべての HDP ノードで上記の操作を実行します。
  5. Ambari を使用して必要な設定を追加します。クラスターが Ambari で管理されていない場合は、core-site.xml ファイルを変更してください。 [Custom core-site] セクションで、次のプロパティを追加して設定してください: fs.oss.endpointfs.oss.accessKeyIdfs.oss.accessKeySecretfs.oss.implfs.oss.buffer.dirfs.oss.connection.secure.enabledfs.oss.connection.maximum
    パラメーター説明
    fs.oss.endpoint アクセスするバケットがあるリージョンのエンドポイントを指定します。

    例: oss-cn-zhangjiakou-internal.aliyuncs.com。

    fs.oss.accessKeyId OSS へのアクセスに使用する AccessKey ID を入力します。
    fs.oss.accessKeySecret OSS へのアクセスに使用する AccessKey Secret を入力します。
    fs.oss.impl Hadoop に基づいて OSS ファイルシステムを実装するために使用するクラスを指定します。値は org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem に設定します。
    fs.oss.buffer.dir 一時ファイルの保存に使用するディレクトリの名前を指定します。

    このパラメーターは /tmp/oss に設定することを推奨します。

    fs.oss.connection.secure.enabled HTTPS を有効にするかどうかを指定します。HTTPS を有効にすると、パフォーマンスに影響を与える可能性があります。

    このパラメーターは false に設定することを推奨します。

    fs.oss.connection.maximum OSS への最大接続数を指定します。

    このパラメーターは 2048 に設定することを推奨します。

    その他のパラメーターについては、「Hadoop-Aliyun module」をご参照ください。

  6. Ambari のプロンプトに従って、クラスターを再起動します。
  7. OSS からデータを読み書きできるかテストします。
    1. 次のコマンドを実行して、OSS からデータを読み取れるかテストします。
      sudo hadoop fs -ls oss://${your-bucket-name}/
    2. 次のコマンドを実行して、OSS にデータを書き込めるかテストします。
      sudo hadoop fs -mkdir oss://${your-bucket-name}/hadoop-test
      OSS からデータを読み書きできた場合、設定は成功です。そうでない場合は、設定が正しいかどうかを確認してください。
  8. MapReduce ジョブを実行するには、次のコマンドを実行して、HDP 2.6.1.0 パッケージのファイルを hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz パッケージに追加します。
    説明 この例では、MapReduce ジョブを使用しています。他のタイプのジョブの実行方法の詳細については、次の手順とコードを参照してください。たとえば、TEZ ジョブを実行するには、HDP 2.6.1.0 パッケージのファイルを hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/tez/tez.tar.gz パッケージに追加します。
    sudo su - hdfs
    cd ~
    hadoop fs -copyToLocal /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
    hadoop fs -rm /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
    cp mapreduce.tar.gz mapreduce.tar.gz.bak
    tar zxf mapreduce.tar.gz
    cp /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar hadoop/share/hadoop/tools/lib/
    cp /usr/hdp/current/hadoop-client/lib/aliyun-* hadoop/share/hadoop/tools/lib/
    cp /usr/hdp/current/hadoop-client/lib/jdom-1.1.jar hadoop/share/hadoop/tools/lib/
    tar zcf mapreduce.tar.gz hadoop
    hadoop fs -copyFromLocal mapreduce.tar.gz /hdp/apps/2.6.1.0-129/mapreduce/

設定の検証

TeraGen と TeraSort を実行して、設定が反映されているかを確認できます。

  • 次のコマンドを実行して、TeraGen をテストします。
    sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen -Dmapred.map.tasks=100 10995116 oss://${your-bucket-name}/1G-input

    成功した場合の出力例:

    18/10/28 21:32:38 INFO client.RMProxy: Connecting to ResourceManager at cdh-master/192.168.0.161:8050
    18/10/28 21:32:38 INFO client.AHSProxy: Connecting to Application History server at cdh-master/192.168.0.161:10200
    18/10/28 21:32:38 INFO aliyun.oss: [Server]Unable to execute HTTP request: Not Found
    [ErrorCode]: NoSuchKey
    [RequestId]: 5BD5BA7641FCE369BC1D052C
    [HostId]: null
    18/10/28 21:32:38 INFO aliyun.oss: [Server]Unable to execute HTTP request: Not Found
    [ErrorCode]: NoSuchKey
    [RequestId]: 5BD5BA7641FCE369BC1D052F
    [HostId]: null
    18/10/28 21:32:39 INFO terasort.TeraSort: Generating 10995116 using 100
    18/10/28 21:32:39 INFO mapreduce.JobSubmitter: number of splits:100
    18/10/28 21:32:39 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1540728986531_0005
    18/10/28 21:32:39 INFO impl.YarnClientImpl: Submitted application application_1540728986531_0005
    18/10/28 21:32:39 INFO mapreduce.Job: The url to track the job: http://cdh-master:8088/proxy/application_1540728986531_0005/
    18/10/28 21:32:39 INFO mapreduce.Job: Running job: job_1540728986531_0005
    18/10/28 21:32:49 INFO mapreduce.Job: Job job_1540728986531_0005 running in uber mode : false
    18/10/28 21:32:49 INFO mapreduce.Job:  map 0% reduce 0%
    18/10/28 21:32:55 INFO mapreduce.Job:  map 1% reduce 0%
    18/10/28 21:32:57 INFO mapreduce.Job:  map 2% reduce 0%
    18/10/28 21:32:58 INFO mapreduce.Job:  map 4% reduce 0%
    ...
    18/10/28 21:34:40 INFO mapreduce.Job:  map 99% reduce 0%
    18/10/28 21:34:42 INFO mapreduce.Job:  map 100% reduce 0%
    18/10/28 21:35:15 INFO mapreduce.Job: Job job_1540728986531_0005 completed successfully
    18/10/28 21:35:15 INFO mapreduce.Job: Counters: 36
    ...
  • 次のコマンドを実行して、TeraSort をテストします。
    sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar terasort -Dmapred.map.tasks=100 oss://${your-bucket-name}/1G-input oss://${your-bucket-name}/1G-output

    成功した場合の出力例:

    18/10/28 21:39:00 INFO terasort.TeraSort: starting
    ...
    18/10/28 21:39:02 INFO mapreduce.JobSubmitter: number of splits:100
    18/10/28 21:39:02 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1540728986531_0006
    18/10/28 21:39:02 INFO impl.YarnClientImpl: Submitted application application_1540728986531_0006
    18/10/28 21:39:02 INFO mapreduce.Job: The url to track the job: http://cdh-master:8088/proxy/application_1540728986531_0006/
    18/10/28 21:39:02 INFO mapreduce.Job: Running job: job_1540728986531_0006
    18/10/28 21:39:09 INFO mapreduce.Job: Job job_1540728986531_0006 running in uber mode : false
    18/10/28 21:39:09 INFO mapreduce.Job:  map 0% reduce 0%
    18/10/28 21:39:17 INFO mapreduce.Job:  map 1% reduce 0%
    18/10/28 21:39:19 INFO mapreduce.Job:  map 2% reduce 0%
    18/10/28 21:39:20 INFO mapreduce.Job:  map 3% reduce 0%
    ...
    18/10/28 21:42:50 INFO mapreduce.Job:  map 100% reduce 75%
    18/10/28 21:42:53 INFO mapreduce.Job:  map 100% reduce 80%
    18/10/28 21:42:56 INFO mapreduce.Job:  map 100% reduce 86%
    18/10/28 21:42:59 INFO mapreduce.Job:  map 100% reduce 92%
    18/10/28 21:43:02 INFO mapreduce.Job:  map 100% reduce 98%
    18/10/28 21:43:05 INFO mapreduce.Job:  map 100% reduce 100%
    ^@18/10/28 21:43:56 INFO mapreduce.Job: Job job_1540728986531_0006 completed successfully
    18/10/28 21:43:56 INFO mapreduce.Job: Counters: 54
    ...

テストが成功した場合、設定は有効です。