Hortonworks Data Platform (HDP), Hortonworks tarafından yayınlanan ve Hadoop, Hive, HBase gibi açık kaynak bileşenlerden oluşan bir büyük veri platformudur. HDP 3.0.1 sürümü Hadoop 3.1.1'i içerir ve Object Storage Service (OSS) hizmetini destekler. Ancak daha eski HDP sürümleri OSS'u desteklemez. Bu konu, HDP 2.6'nın OSS verilerini okuyup yazacak şekilde nasıl yapılandırılacağını anlatmak için HDP 2.6.1.0 sürümünü örnek olarak kullanır.
Ön Koşullar
Bir HDP 2.6.1.0 kümeniz olmalıdır.
Elinizde bir HDP 2.6.1.0 kümesi yoksa aşağıdaki yöntemlerden birini kullanarak bu kümeyi oluşturabilirsiniz:
Ambari aracını kullanarak bir HDP 2.6.1.0 kümesi oluşturun.
Ambari kullanılamıyorsa HDP 2.6.1.0 kümesini manuel olarak oluşturun.
Yordam
-
OSS desteği sunan HDP 2.6.1.0 paketini indirin.
-
İndirilen paketi açmak için aşağıdaki komutu çalıştırın:
sudo tar -xvf hadoop-oss-hdp-2.6.1.0-129.tarÖrnek başarılı yanıt:
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 -
JAR paketlerinin dizinlerini değiştirin.
NotBu konuda ${} ile çevrelenen tüm ifadeler ortam değişkenidir. Ortam değişkenlerini gerçek ortamınıza göre güncelleyin.
-
Hadoop-aliyun-2.7.3.2.6.1.0-129.jar paketini ${/usr/hdp/current}/hadoop-client/ dizinine taşıyın. Dizin değişikliğini doğrulamak için aşağıdaki komutu çalıştırın:
sudo ls -lh /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jarÖrnek başarılı yanıt:
-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 -
Diğer jar paketlerini ${/usr/hdp/current}/hadoop-client/lib/ dizinine taşıyın. Dizin değişikliğini doğrulamak için aşağıdaki komutu çalıştırın:
sudo ls -ltrh /usr/hdp/current/hadoop-client/libÖrnek başarılı yanıt:
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
-
Yukarıdaki işlemleri tüm HDP düğümlerinde uygulayın.
-
Ambari kullanarak gerekli yapılandırmaları ekleyin. Kümeniz Ambari tarafından yönetilmiyorsa core-site.xml dosyasını düzenleyin. Custom core-site bölümünde aşağıdaki özellikleri ekleyip yapılandırın:
fs.oss.endpoint,fs.oss.accessKeyId,fs.oss.accessKeySecret,fs.oss.impl,fs.oss.buffer.dir,fs.oss.connection.secure.enabledvefs.oss.connection.maximum.Parametre Açıklama fs.oss.endpoint Erişmek istediğiniz paketin bulunduğu bölgenin uç noktasını belirtin.
Örnek: oss-cn-zhangjiakou-internal.aliyuncs.com.
fs.oss.accessKeyId OSS hizmetine erişmek için kullanılan AccessKey ID değerini girin. fs.oss.accessKeySecret OSS hizmetine erişmek için kullanılan AccessKey secret değerini girin. fs.oss.impl Hadoop tabanlı OSS dosya sistemini uygulamak için kullanılan sınıfı belirtin. Değeri org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem olarak ayarlayın. fs.oss.buffer.dir Geçici dosyaların depolanacağı dizin adını belirtin.
Bu parametreyi /tmp/oss olarak ayarlamanızı öneririz.
fs.oss.connection.secure.enabled HTTPS etkinleştirilip etkinleştirilmeyeceğini belirtin. HTTPS etkinleştirildiğinde performans etkilenebilir.
Bu parametreyi false olarak ayarlamanızı öneririz.
fs.oss.connection.maximum OSS hizmetine kurulacak maksimum bağlantı sayısını belirtin.
Bu parametreyi 2048 olarak ayarlamanızı öneririz.
Daha fazla parametre bilgisi için Hadoop-Aliyun modülü adresine bakın.
Ambari'nin yönergelerini izleyerek kümeyi yeniden başlatın.
-
OSS üzerinden veri okuma ve yazma işlemlerini test edin.
-
OSS'ten veri okunabildiğini test etmek için aşağıdaki komutu çalıştırın:
sudo hadoop fs -ls oss://${your-bucket-name}/ -
OSS'e veri yazılabildiğini test etmek için aşağıdaki komutu çalıştırın:
sudo hadoop fs -mkdir oss://${your-bucket-name}/hadoop-testOSS üzerinden veri okuma ve yazma başarılı oluyorsa yapılandırma doğru tamamlanmıştır. Aksi durumda yapılandırma değerlerini kontrol edin.
-
-
MapReduce görevlerini çalıştırmak için HDP 2.6.1.0 paketini hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz konumuna taşımak üzere aşağıdaki komutu çalıştırın:
NotBu örnekte MapReduce görevleri kullanılmıştır. Diğer türdeki görevlerin nasıl çalıştırılacağı hakkında bilgi edinmek için sonraki adıma ve kod örneklerine bakın. Örneğin, TEZ görevlerini çalıştırmak için HDP 2.6.1.0 paketini
hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/tez/tez.tar.gz
konumuna taşıyın.
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/
Yapılandırmaları doğrulama
Yapılandırmaların etkili olduğunu kontrol etmek için TeraGen ve TeraSort araçlarını test edebilirsiniz.
-
TeraGen testini yapmak için aşağıdaki komutu çalıştırın:
sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen -Dmapred.map.tasks=100 10995116 oss://{bucket-name}/1G-inputÖrnek başarılı yanıt:
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 ... -
TeraSort testini yapmak için aşağıdaki komutu çalıştırın:
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Örnek başarılı yanıt:
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 ...
Testler başarılı olursa yapılandırmalar etkili hale gelmiş demektir.