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
- Unduh paket HDP 2.6.1.0 yang mendukung OSS.
- Jalankan perintah berikut untuk mengekstrak paket yang telah 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 memverifikasi 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 memverifikasi 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 memverifikasi apakah direktori telah dimodifikasi:
- Lakukan langkah-langkah di atas pada semua node HDP.
- 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, danfs.oss.connection.maximum.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. 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.
- Mulai ulang kluster sesuai petunjuk dari 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, 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-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 telah berlaku.