문제

클로더라 관리자를 통해 NameNode 고 가용성을 사용하여

를 사용합니다.

클로더 관리자 >> HDFS >> 조치> 고 가용성 사용 >> NameNode & Journal Nodes의 선택된 대기 그런 다음 Nameservice1

전체 프로세스가 완료되면 클라이언트 구성을 배포 한 후

HDFS 디렉토리 (HADOOP FS -LS /)를 나열한 다음 STANDBY 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을 해결할 수없는 이유를 알지 못합니다.

Google이 문제가 발생하면이 문제에 대한 해결책이 하나만 발견했습니다

구성을 수정하기 위해 구성 항목에 아래 항목 추가 dfs.nameservices= nameservice1. dfs.ha.namenodes.nameservice1= namenode1, namenode2. dfs.namenode.rpc-address.nameservice1.namenode1= ip-10-118-137-215.ec2.Internal : 8020. dfs.namenode.rpc-address.nameservice1.namenode2= ip-10-12-122-210.ec2.Internal : 8020. dfs.client.failover.proxy.provider.nameservice1= org.apache.hadoop.hdfs.server.namenode.ha.configuredfailoverproxyProvider

내 인상은 Cloudera Manager가 그것을 걱정하는 것이 었습니다. 이 구성 및 구성에 대한 클라이언트가있는 클라이언트 (/var/run/cloudera-scm-agent/process/1998-agent/process/198-Adooploy-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 디렉토리에서 잘못된 클라이언트 구성을 사용하는 것처럼 보입니다.때때로 CM (Cloudera Manager) 배포 클라이언트 구성 옵션이 작동하지 않을 수 있습니다.

NN HA를 사용하도록 설정하면 Hadoop 클라이언트 구성 디렉토리에 유효한 core-site.xml 및 hdfs-site.xml 파일이 있어야합니다.유효한 사이트 파일을 가져 오는 경우 작업 버튼에서 클라이언트 구성 클라이언트 구성 옵션을 CM에서 HDFS 서비스로 이동하십시오.구성 파일을 zip 형식으로 가져오고 zip 파일을 추출하고 /etc/hadoop/conf/core-site.xml 및 /etc/hadoop/conf/hdfs-site.xml 파일을 추출한 core-site.xml로 바꿉니다.hdfs-site.xml 파일.

다른 팁

해결되었습니다.잘못된 구성은 "/ etc / hadoop / conf /"-> "/ etc / altlet / hadoop-conf /"-> "/etc/hadoop/conf.cloudera.mapreduce1"

에 링크되었습니다.

"/ etc / hadoop / conf /"-> "/ etc / alternatives / hadoop-conf /"-> "/etc/hadoop/conf.cloudera.mapreduce"

호스트와 포트

를 지정하여 코드 해결 된 문제점
val dfs = sqlContext.read.json("hdfs://localhost:9000//user/arvindd/input/employee.json")
.

이 문제를 해결했습니다. 완전한 줄을 넣으려면 RDD

myfirstrdd= sc.textfile ( "HDFS : //192.168.35.132 : 8020 / bupa.txt")

다른 RDD 변환을 수행 할 수있었습니다. 파일에 W / R / X가 있거나 chmod 777

을 수행 할 수 있는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top