全部产品
Search
文档中心

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

更新时间:Jun 26, 2025

Hortonworks Data Platform (HDP) adalah platform data besar yang dirilis oleh Hortonworks dan mencakup komponen sumber terbuka seperti Hadoop, Hive, dan HBase. Hadoop 3.1.1 termasuk dalam HDP 3.0.1 dan mendukung Object Storage Service (OSS). Namun, versi sebelumnya dari HDP tidak mendukung OSS. Topik ini menggunakan HDP 2.6.1.0 sebagai contoh untuk menjelaskan cara mengonfigurasi HDP 2.6 guna membaca dan menulis data OSS.

Prasyarat

Sebuah kluster HDP 2.6.1.0 telah dibuat.

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 secara manual membuat kluster HDP 2.6.1.0.

Prosedur

  1. Unduh paket HDP 2.6.1.0 yang mendukung OSS.
  2. Jalankan perintah berikut untuk mengekstrak paket yang 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 memeriksa 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 memeriksa 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 operasi sebelumnya pada semua node HDP.
  5. Gunakan Ambari untuk menambahkan konfigurasi. Jika kluster Anda tidak menggunakan Ambari untuk manajemen, ubah core-site.xml. Dalam contoh ini, Ambari digunakan. Tabel berikut menjelaskan konfigurasi yang harus ditambahkan.
    ParameterDeskripsi
    fs.oss.endpointTentukan titik akhir wilayah tempat bucket yang ingin Anda akses berada.

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

    fs.oss.accessKeyIdMasukkan ID AccessKey yang digunakan untuk mengakses OSS.
    fs.oss.accessKeySecretMasukkan Rahasia AccessKey yang digunakan untuk mengakses OSS.
    fs.oss.implTentukan kelas yang digunakan untuk mengimplementasikan sistem file OSS berdasarkan Hadoop. Atur nilainya menjadi org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem.
    fs.oss.buffer.dirTentukan nama direktori yang digunakan untuk menyimpan file sementara.

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

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

    Kami merekomendasikan Anda mengatur parameter ini ke false.

    fs.oss.connection.maximumTentukan jumlah maksimum koneksi ke OSS.

    Kami merekomendasikan Anda mengatur parameter ini ke 2048.

    Untuk informasi lebih lanjut tentang parameter lainnya, kunjungi Modul Hadoop-Aliyun.

  6. Mulai ulang kluster sesuai petunjuk 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, pekerjaan MapReduce digunakan. Untuk informasi lebih lanjut tentang cara menjalankan pekerjaan jenis 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
    sudo cd
    sudo hadoop fs -copyToLocal /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
    sudo hadoop fs -rm /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
    sudo cp mapreduce.tar.gz mapreduce.tar.gz.bak
    sudo tar zxf mapreduce.tar.gz
    sudo cp /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar hadoop/share/hadoop/tools/lib/
    sudo cp /usr/hdp/current/hadoop-client/lib/aliyun-* hadoop/share/hadoop/tools/lib/
    sudo cp /usr/hdp/current/hadoop-client/lib/jdom-1.1.jar hadoop/share/hadoop/tools/lib/
    sudo tar zcf mapreduce.tar.gz hadoop
    sudo 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 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 berlaku.