All Products
Search
Document Center

Object Storage Service:Gunakan Hadoop berbasis HDP 2.6 untuk membaca dan menulis data OSS

Last Updated:Jun 21, 2026

Hortonworks Data Platform (HDP) adalah platform data besar yang dirilis oleh Hortonworks dan terdiri dari komponen open source seperti Hadoop, Hive, dan HBase. Hadoop 3.1.1 disertakan dalam HDP 3.0.1 dan mendukung Object Storage Service (OSS). Namun, versi HDP sebelumnya tidak mendukung OSS. Topik ini menggunakan HDP 2.6.1.0 sebagai contoh untuk menjelaskan cara mengonfigurasi HDP 2.6 agar dapat membaca dan menulis data ke OSS.

Prasyarat

Dibuat kluster HDP 2.6.1.0.

Jika Anda belum memiliki kluster HDP 2.6.1.0, Anda dapat menggunakan salah satu metode berikut untuk membuatnya:

  • Gunakan Ambari untuk membuat kluster HDP 2.6.1.0.
  • Jika Ambari tidak tersedia, Anda dapat membuat kluster HDP 2.6.1.0 secara manual.

Prosedur

  1. Unduh paket HDP 2.6.1.0 yang mendukung OSS.
  2. Jalankan perintah berikut untuk mengekstrak paket yang telah diunduh:
    sudo tar -xvf hadoop-oss-hdp-2.6.1.0-129.tar

    Contoh respons sukses:

    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. Ubah direktori paket JAR.
    Catatan Dalam topik ini, semua konten yang diapit oleh ${} merupakan variabel lingkungan. Sesuaikan variabel tersebut sesuai dengan lingkungan aktual Anda.
    1. Pindahkan paket Hadoop-aliyun-2.7.3.2.6.1.0-129.jar ke direktori ${/usr/hdp/current}/hadoop-client/. Jalankan perintah berikut untuk memverifikasi apakah direktori telah dimodifikasi:
      sudo ls -lh /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar

      Contoh respons sukses:

      -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. Pindahkan paket jar lainnya ke direktori ${/usr/hdp/current}/hadoop-client/lib/. Jalankan perintah berikut untuk memverifikasi apakah direktori telah dimodifikasi:
      sudo ls -ltrh /usr/hdp/current/hadoop-client/lib

      Contoh respons sukses:

      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. Lakukan langkah-langkah di atas pada semua node HDP.
  5. Tambahkan konfigurasi yang diperlukan menggunakan Ambari. Jika kluster Anda tidak dikelola oleh Ambari, modifikasi file core-site.xml. Di bagian Custom core-site, tambahkan dan konfigurasikan properti berikut: fs.oss.endpoint, fs.oss.accessKeyId, fs.oss.accessKeySecret, fs.oss.impl, fs.oss.buffer.dir, fs.oss.connection.secure.enabled, dan fs.oss.connection.maximum.
    ParameterDeskripsi
    fs.oss.endpoint Tentukan titik akhir wilayah tempat bucket yang ingin Anda akses berada.

    Contoh: oss-cn-zhangjiakou-internal.aliyuncs.com.

    fs.oss.accessKeyId Masukkan ID AccessKey yang digunakan untuk mengakses OSS.
    fs.oss.accessKeySecret Masukkan Rahasia AccessKey yang digunakan untuk mengakses OSS.
    fs.oss.impl Tentukan kelas yang digunakan untuk mengimplementasikan sistem file OSS berdasarkan Hadoop. Tetapkan nilainya menjadi org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem.
    fs.oss.buffer.dir Tentukan nama direktori yang digunakan untuk menyimpan file temporary.

    Kami merekomendasikan Anda menetapkan parameter ini ke /tmp/oss.

    fs.oss.connection.secure.enabled Tentukan apakah HTTPS diaktifkan. Performa mungkin terpengaruh saat HTTPS diaktifkan.

    Kami merekomendasikan Anda menetapkan parameter ini ke false.

    fs.oss.connection.maximum Tentukan jumlah maksimum koneksi ke OSS.

    Kami merekomendasikan Anda menetapkan parameter ini ke 2048.

    Untuk informasi lebih lanjut mengenai parameter tambahan, kunjungi modul Hadoop-Aliyun.

  6. Mulai ulang kluster sesuai petunjuk dari Ambari.
  7. Uji apakah data dapat dibaca dari dan ditulis ke OSS.
    1. Jalankan perintah berikut untuk menguji apakah data dapat dibaca dari OSS:
      sudo hadoop fs -ls oss://${your-bucket-name}/
    2. Jalankan perintah berikut untuk menguji apakah data dapat ditulis ke OSS:
      sudo hadoop fs -mkdir oss://${your-bucket-name}/hadoop-test
      Jika data dapat dibaca dari dan ditulis ke OSS, konfigurasi berhasil. Jika tidak, periksa apakah konfigurasi sudah benar.
  8. Untuk menjalankan pekerjaan MapReduce, jalankan perintah berikut untuk memindahkan paket HDP 2.6.1.0 ke paket hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz:
    Catatan Dalam contoh ini, digunakan pekerjaan MapReduce. Untuk informasi lebih lanjut tentang cara menjalankan jenis pekerjaan lain, lihat langkah dan kode berikut. Misalnya, untuk menjalankan pekerjaan TEZ, pindahkan paket HDP 2.6.1.0 ke paket 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/

Verifikasi konfigurasi

Anda dapat menguji TeraGen dan TeraSort untuk memeriksa apakah konfigurasi telah berlaku.

  • Jalankan perintah berikut untuk menguji TeraGen:
    sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen -Dmapred.map.tasks=100 10995116 oss://{bucket-name}/1G-input

    Contoh respons sukses:

    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
    ...
  • Jalankan perintah berikut untuk menguji TeraSort:
    sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar terasort -Dmapred.map.tasks=100 oss://{bucket-name}/1G-input oss://{bucket-name}/1G-output

    Contoh respons sukses:

    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
    ...

Jika pengujian berhasil, konfigurasi telah berlaku.