سؤال

ونحن تمكين Namenode توافر عالية من خلال Cloudera مدير باستخدام

مدير Cloudera >> HDFS >> العمل > تمكين توافر عالية >> اختيار الوقوف إلى جانب Namenode & مجلة العقد ثم nameservice1

بمجرد الانتهاء من العملية برمتها ثم نشرها تكوين العميل.

اختبار من جهاز العميل من خلال سرد HDFS الدلائل (hadoop fs-ls /) ثم يدويا تجاوز الفشل إلى الاستعداد namenode & مرة أخرى قائمة HDFS الدلائل (hadoop fs-ls /).هذا الاختبار عملت تماما.

ولكن عندما ركضت hadoop النوم وظيفة باستخدام الأوامر التالية فشلت

$ hadoop jar /opt/cloudera/parcels/CDH-4.6.0-1.cdh4.6.0.p0.26/lib/hadoop-0.20-mapreduce/hadoop-examples.jar sleep -m 1 -r 0
java.lang.IllegalArgumentException: java.net.UnknownHostException: nameservice1
at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:414)
at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:164)
at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:129)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:448)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:410)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:128)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2308)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:87)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2342)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2324)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:351)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:194)
at org.apache.hadoop.mapreduce.JobSubmissionFiles.getStagingDir(JobSubmissionFiles.java:103)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:980)
at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:974)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1438)
at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:974)
at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:948)
at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1410)
at org.apache.hadoop.examples.SleepJob.run(SleepJob.java:174)
at org.apache.hadoop.examples.SleepJob.run(SleepJob.java:237)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.examples.SleepJob.main(SleepJob.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:72)
at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:144)
at org.apache.hadoop.examples.ExampleDriver.main(ExampleDriver.java:64)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.apache.hadoop.util.RunJar.main(RunJar.java:208)
Caused by: java.net.UnknownHostException: nameservice1
... 37 more

أنا لا أعرف لماذا لم يكن قادرا على حل nameservice1 حتى بعد نشر تكوين العميل.

عندما بحثت هذه المسألة وجدت حل واحد فقط لهذه المسألة

إضافة أدناه للدخول في تكوين إدخال إصلاح المشكلة dfs.nameservices=nameservice1 dfs.ها.namenodes.nameservice1=namenode1,namenode2 dfs.namenode.rpc-العنوان.nameservice1.namenode1=ip-10-118-137-215.ec2.الداخلية:8020 dfs.namenode.rpc-العنوان.nameservice1.namenode2=ip-10-12-122-210.ec2.الداخلية:8020 dfs.client.failover.proxy.provider.nameservice1=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

انطباعي كان Cloudera مدير أخذ العطاء من ذلك.راجعت العميل لهذا التكوين والتكوين كان هناك (/var/run/cloudera-scm-agent/process/1998-deploy-client-config/hadoop-conf/hdfs-site.xml).

أيضا بعض مزيد من التفاصيل من ملفات التكوين :

[11:22:37 root@datasci01.dev:~]# ls -l /etc/hadoop/conf.cloudera.*
/etc/hadoop/conf.cloudera.hdfs:
total 16
-rw-r--r-- 1 root root  943 Jul 31 09:33 core-site.xml
-rw-r--r-- 1 root root 2546 Jul 31 09:33 hadoop-env.sh
-rw-r--r-- 1 root root 1577 Jul 31 09:33 hdfs-site.xml
-rw-r--r-- 1 root root  314 Jul 31 09:33 log4j.properties

/etc/hadoop/conf.cloudera.hdfs1:
total 20
-rwxr-xr-x 1 root root  233 Sep  5  2013 container-executor.cfg
-rw-r--r-- 1 root root 1890 May 21 15:48 core-site.xml
-rw-r--r-- 1 root root 2546 May 21 15:48 hadoop-env.sh
-rw-r--r-- 1 root root 1577 May 21 15:48 hdfs-site.xml
-rw-r--r-- 1 root root  314 May 21 15:48 log4j.properties

/etc/hadoop/conf.cloudera.mapreduce:
total 20
-rw-r--r-- 1 root root 1032 Jul 31 09:33 core-site.xml
-rw-r--r-- 1 root root 2775 Jul 31 09:33 hadoop-env.sh
-rw-r--r-- 1 root root 1450 Jul 31 09:33 hdfs-site.xml
-rw-r--r-- 1 root root  314 Jul 31 09:33 log4j.properties
-rw-r--r-- 1 root root 2446 Jul 31 09:33 mapred-site.xml

 /etc/hadoop/conf.cloudera.mapreduce1:
total 24
-rwxr-xr-x 1 root root  233 Sep  5  2013 container-executor.cfg
-rw-r--r-- 1 root root 1979 May 16 12:20 core-site.xml
-rw-r--r-- 1 root root 2775 May 16 12:20 hadoop-env.sh
-rw-r--r-- 1 root root 1450 May 16 12:20 hdfs-site.xml
-rw-r--r-- 1 root root  314 May 16 12:20 log4j.properties
-rw-r--r-- 1 root root 2446 May 16 12:20 mapred-site.xml
[11:23:12 root@datasci01.dev:~]# 

أشك في المسألة مع التكوين القديم في /etc/hadoop/conf.cloudera.hdfs1 & /etc/hadoop/conf.cloudera.mapreduce1 , ولكن لست متأكدا.

يبدو مثل /etc/hadoop/conf/* لم يتم تحديثها

# ls -l /etc/hadoop/conf/
total 24
-rwxr-xr-x 1 root root  233 Sep  5  2013 container-executor.cfg
-rw-r--r-- 1 root root 1979 May 16 12:20 core-site.xml
-rw-r--r-- 1 root root 2775 May 16 12:20 hadoop-env.sh
-rw-r--r-- 1 root root 1450 May 16 12:20 hdfs-site.xml
-rw-r--r-- 1 root root  314 May 16 12:20 log4j.properties
-rw-r--r-- 1 root root 2446 May 16 12:20 mapred-site.xml

أي شخص لديه أي فكرة عن هذه المسألة ؟

هل كانت مفيدة؟

المحلول

يبدو أنك تستخدم الخطأ تكوين عميل في /etc/hadoop/conf الدليل.أحيانا مدير Cloudera (سم) نشر تكوينات العميل الخيار قد لا تعمل.

كما يجب تمكين ن ن ها ، يجب أن يكون ساري المفعول core-site.xml و hdfs-site.xml ملفات hadoop تكوين عميل الدليل.للحصول على سارية ملفات الموقع ، انتقل إلى HDFS الخدمة من اختيار سم تحميل العميل التكوين الخيار من الإجراءات زر.سوف تحصل على ملفات التكوين في شكل zip استخراج الملفات المضغوطة و استبدال /etc/hadoop/conf/core-site.xml و /etc/hadoop/conf/hdfs-site.xml الملفات المستخرجة core-site.xml,hdfs-site.xml ملفات.

نصائح أخرى

حصلت عليه حلها.الخطأ التكوين مرتبطة "/etc/hadoop/conf/" --> "/etc/البدائل/hadoop-conf/" --> "/etc/hadoop/conf.cloudera.mapreduce1"

بل يجب أن يكون "/etc/hadoop/conf/" --> "/etc/البدائل/hadoop-conf/" --> "/etc/hadoop/conf.cloudera.mapreduce"

أدناه بيان في قانون بلدي حل المشكلة عن طريق تحديد host و port

val dfs = sqlContext.read.json("hdfs://localhost:9000//user/arvindd/input/employee.json")

لقد حل هذه المشكلة في وضع بلدي خط كامل لخلق RDD

myfirstrdd = sc.ملف نصي("hdfs://192.168.35.132:8020/BUPA.txt")

ثم كنت قادرا على القيام الأخرى RDD التحول ..تأكد من أن لديك w/r/x إلى الملف أو يمكنك أن تفعل chmod 777

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top