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
- Unduh paket HDP 2.6.1.0 yang mendukung OSS.
- Jalankan perintah berikut untuk mengekstrak paket yang diunduh:
sudo tar -xvf hadoop-oss-hdp-2.6.1.0-129.tarContoh 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 - Ubah direktori paket JAR.Catatan Dalam topik ini, semua konten yang diapit oleh ${} merupakan variabel lingkungan. Sesuaikan variabel tersebut sesuai dengan lingkungan aktual Anda.
- 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.jarContoh 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 - 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/libContoh 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
- 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:
- Lakukan operasi sebelumnya pada semua node HDP.
- 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.

Parameter Deskripsi 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. Atur nilainya menjadi org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem. fs.oss.buffer.dir Tentukan nama direktori yang digunakan untuk menyimpan file sementara. Kami merekomendasikan Anda mengatur parameter ini ke /tmp/oss.
fs.oss.connection.secure.enabled Tentukan apakah HTTPS diaktifkan. Performa mungkin terpengaruh saat HTTPS diaktifkan. Kami merekomendasikan Anda mengatur parameter ini ke false.
fs.oss.connection.maximum Tentukan jumlah maksimum koneksi ke OSS. Kami merekomendasikan Anda mengatur parameter ini ke 2048.
Untuk informasi lebih lanjut tentang parameter lainnya, kunjungi Modul Hadoop-Aliyun.
- Mulai ulang kluster sesuai petunjuk Ambari.
- Uji apakah data dapat dibaca dari dan ditulis ke OSS.
- Jalankan perintah berikut untuk menguji apakah data dapat dibaca dari OSS:
sudo hadoop fs -ls oss://${your-bucket-name}/ - Jalankan perintah berikut untuk menguji apakah data dapat ditulis ke OSS:
sudo hadoop fs -mkdir oss://${your-bucket-name}/hadoop-testJika data dapat dibaca dari dan ditulis ke OSS, konfigurasi berhasil. Jika tidak, periksa apakah konfigurasi sudah benar.
- Jalankan perintah berikut untuk menguji apakah data dapat dibaca dari OSS:
- 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-inputContoh 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-outputContoh 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.