Hortonworks Data Platform (HDP) 3.0.1 mencakup Hadoop 3.1.1, yang secara native mendukung Object Storage Service (OSS). Versi HDP sebelumnya tidak mendukung fitur ini. Panduan ini menjelaskan cara menambahkan dukungan OSS ke kluster HDP 2.6.1.0 dengan menginstal JAR connector OSS, mengonfigurasi pengaturan sistem file Hadoop, serta memverifikasi konektivitas menggunakan pekerjaan MapReduce.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster HDP 2.6.1.0. Jika belum tersedia, buatlah menggunakan salah satu metode berikut:
Ambari — untuk pembuatan kluster melalui antarmuka manajemen
Pengaturan manual — jika Ambari tidak tersedia di lingkungan Anda
Akses
sudopada semua node klusterBucket OSS beserta titik akhirnya. Untuk format titik akhir, lihat Regions and endpoints.
ID AccessKey dan Rahasia AccessKey dengan izin baca/tulis pada bucket tersebut
Instal JAR connector OSS
Ekstrak arsip tersebut:
sudo tar -xvf hadoop-oss-hdp-2.6.1.0-129.tarDirektori hasil ekstraksi berisi file-file berikut:
hadoop-oss-hdp-2.6.1.0-129/ hadoop-oss-hdp-2.6.1.0-129/hadoop-aliyun-2.7.3.2.6.1.0-129.jar hadoop-oss-hdp-2.6.1.0-129/aliyun-sdk-oss-3.4.1.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-ram-3.0.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.jarPindahkan
hadoop-aliyun-2.7.3.2.6.1.0-129.jarke direktori klien Hadoop:sudo mv hadoop-oss-hdp-2.6.1.0-129/hadoop-aliyun-2.7.3.2.6.1.0-129.jar \ /usr/hdp/current/hadoop-client/Verifikasi bahwa file tersebut sudah berada di lokasi yang benar:
sudo ls -lh /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jarOutput yang diharapkan:
-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.jarPindahkan semua file JAR lainnya ke direktori
libklien Hadoop:sudo mv hadoop-oss-hdp-2.6.1.0-129/aliyun-*.jar \ hadoop-oss-hdp-2.6.1.0-129/jdom-1.1.jar \ /usr/hdp/current/hadoop-client/lib/Verifikasi bahwa file-file tersebut sudah berada di lokasi yang benar:
sudo ls -ltrh /usr/hdp/current/hadoop-client/libOutput harus mencakup entri seperti berikut:
-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.jarUlangi langkah 1–4 pada setiap node di kluster HDP Anda.
Semua path yang ditampilkan dalam panduan ini (seperti
/usr/hdp/current) mengacu pada tata letak default standar HDP 2.6. Sesuaikan path tersebut jika kluster Anda menggunakan direktori instalasi kustom.
Konfigurasi pengaturan OSS
Tambahkan properti berikut ke konfigurasi Hadoop Anda. Cara penerapannya bergantung pada apakah kluster Anda menggunakan Ambari.
Opsi 1: Gunakan Ambari (disarankan)
Di antarmuka web Ambari, buka HDFS > Configs > Custom core-site.
Tambahkan setiap properti dari tabel di bawah ini.
Restart kluster saat Ambari meminta Anda melakukannya.
Opsi 2: Edit core-site.xml secara langsung
Jika kluster Anda tidak menggunakan Ambari, tambahkan properti tersebut langsung ke /etc/hadoop/conf/core-site.xml pada setiap node, lalu restart layanan yang relevan.
Properti wajib dan direkomendasikan
Salin blok XML berikut dan sesuaikan dengan lingkungan Anda. Blok ini mencakup semua properti wajib dan direkomendasikan beserta nilai default dan deskripsinya.
<property>
<name>fs.oss.endpoint</name>
<value>oss-cn-zhangjiakou-internal.aliyuncs.com</value>
<description>Titik akhir wilayah OSS tempat bucket Anda berada.
Gunakan titik akhir internal ketika kluster Anda berjalan di dalam Alibaba Cloud untuk menghindari biaya egress.</description>
</property>
<property>
<name>fs.oss.accessKeyId</name>
<value>YOUR_ACCESS_KEY_ID</value>
<description>ID AccessKey yang digunakan untuk otentikasi dengan OSS.</description>
</property>
<property>
<name>fs.oss.accessKeySecret</name>
<value>YOUR_ACCESS_KEY_SECRET</value>
<description>Rahasia AccessKey yang digunakan untuk otentikasi dengan OSS.</description>
</property>
<property>
<name>fs.oss.impl</name>
<value>org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem</value>
<description>Kelas implementasi sistem file OSS. Jangan ubah nilai ini.</description>
</property>
<property>
<name>fs.oss.buffer.dir</name>
<value>/tmp/oss</value>
<description>Direktori lokal untuk file sementara selama operasi baca/tulis OSS.</description>
</property>
<property>
<name>fs.oss.connection.secure.enabled</name>
<value>false</value>
<description>Apakah akan menggunakan HTTPS untuk koneksi OSS. Atur ke false untuk traffic internal kluster
guna menghindari overhead performa TLS. Atur ke true jika kebijakan keamanan Anda mengharuskan enkripsi dalam transit.</description>
</property>
<property>
<name>fs.oss.connection.maximum</name>
<value>2048</value>
<description>Jumlah maksimum koneksi bersamaan ke OSS. Nilai default upstream adalah 32;
tingkatkan nilainya untuk beban kerja dengan paralelisme tinggi.</description>
</property>Ganti YOUR_ACCESS_KEY_ID dan YOUR_ACCESS_KEY_SECRET dengan kredensial aktual Anda. Untuk daftar lengkap properti yang didukung, lihat Referensi modul Hadoop-Aliyun.
Verifikasi konektivitas
Setelah me-restart kluster, jalankan perintah berikut untuk memastikan Hadoop dapat membaca dari dan menulis ke OSS. Ganti <your-bucket-name> dengan nama bucket aktual Anda.
Read test — daftar root bucket Anda:
sudo hadoop fs -ls oss://<your-bucket-name>/Write test — membuat direktori di bucket Anda:
sudo hadoop fs -mkdir oss://<your-bucket-name>/hadoop-testJika kedua perintah berhasil tanpa error, connector tersebut berfungsi dengan baik. Jika muncul error otentikasi, periksa kembali nilai fs.oss.accessKeyId dan fs.oss.accessKeySecret. Jika terjadi error koneksi, verifikasi bahwa fs.oss.endpoint sesuai dengan wilayah tempat bucket Anda berada.
Jalankan pekerjaan MapReduce terhadap OSS
Sebelum menjalankan pekerjaan MapReduce, perbarui arsip MapReduce terdistribusi kluster agar menyertakan JAR connector OSS.
Langkah-langkah di bawah ini menggunakan MapReduce sebagai contoh. Untuk framework lain seperti Tez, terapkan pendekatan serupa — salin JAR connector ke arsip yang setara (misalnya, hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/tez/tez.tar.gz) dan lakukan repackaging.Jalankan perintah berikut sebagai pengguna hdfs:
sudo su hdfs
# Unduh arsip MapReduce yang ada dari HDFS
hadoop fs -copyToLocal /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
# Backup arsip asli
cp mapreduce.tar.gz mapreduce.tar.gz.bak
# Ekstrak arsip
tar zxf mapreduce.tar.gz
# Salin JAR connector OSS ke direktori tools/lib dalam arsip
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-*.jar \
hadoop/share/hadoop/tools/lib/
cp /usr/hdp/current/hadoop-client/lib/jdom-1.1.jar \
hadoop/share/hadoop/tools/lib/
# Repackage dan unggah arsip yang diperbarui
tar zcf mapreduce.tar.gz hadoop
hadoop fs -rm /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
hadoop fs -copyFromLocal mapreduce.tar.gz /hdp/apps/2.6.1.0-129/mapreduce/Verifikasi dengan TeraGen dan TeraSort
Jalankan rangkaian benchmark standar Hadoop untuk memastikan pekerjaan MapReduce dapat membaca dan menulis ke OSS secara end-to-end. Ganti <bucket-name> dengan nama bucket aktual Anda.
Hasilkan data uji dengan TeraGen:
sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar \
teragen -Dmapred.map.tasks=100 10995116 oss://<bucket-name>/1G-inputEksekusi yang berhasil akan diakhiri dengan output seperti berikut:
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
...Urutkan data dengan 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-outputEksekusi yang berhasil akan diakhiri dengan:
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 kedua pekerjaan selesai dengan sukses, kluster HDP 2.6.1.0 Anda telah sepenuhnya dikonfigurasi untuk menjalankan beban kerja MapReduce terhadap OSS.
Langkah selanjutnya
Referensi modul Hadoop-Aliyun — daftar lengkap properti konfigurasi
fs.oss.*Titik akhir OSS berdasarkan wilayah — temukan titik akhir internal atau publik yang tepat untuk wilayah bucket Anda