Domanda

Abilitiamo la disponibilità dell'alta disponibilità del Namenodo tramite Gestore di Cloudera, utilizzando

Gestore di Cloudera >> HDFS >> Azione> Abilita alta disponibilità >> Stand selezionato da Namenode e giornale nodi Allora Nameservice1

Una volta completato l'intero processo, quindi la configurazione del client distribuita.

Testato dalla macchina del client elencando le directory HDFS (Hadoop FS -LS /) quindi failover manualmente a Namenode standby e di nuovo elencando le directory HDFS (Hadoop FS -LS /). Questo test ha funzionato perfettamente.

Ma quando ho corso Hadoop Sleep Job usando il seguente comando è fallito

$ 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
.

Non so perché non è in grado di risolvere Nameservice1 anche dopo aver distribuito la configurazione del client.

Quando I Google questo problema ho trovato solo una soluzione a questo problema

Aggiungi la voce sotto la voce di configurazione per correggere il problema dfs.nameservices= Nameservice1. dfs.ha.namenodes.nameservice1= Namenode1, Namenode2 dfs.namenode.rpc-indirizzo.nameservice1.namenode1= IP-10-118-137-215.ec2.internal: 8020 dfs.namenode.rpc-indirizzo.nameservice1.namenode2= IP-10-12-122-210.ec2.internal: 8020 dfs.client.failover.proxy.provider.nameservice1= org.apache.hadoop.hdfs.server.namenode.ha.configuredFaiLoverProssyProviderFaiLoverProxyProvider

La mia impressione è stata la manager di Cloudera prenderse le preoccupazioni. Ho controllato il client per questa configurazione e configurazione è stato (/var/run/cloudera-SCM-agent/Process/1998-Deploy-Client-config/hadoop-conf/hdfs-site.xml).

anche alcuni dettagli dei file di configurazione:

[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:~]# 
.

Dubito del suo problema con la vecchia configurazione in /etc/hadoop/conf.cloudera.hdfs1 & /etc/hadoop/conf.clorudera.Mapreduce1, ma non sono sicuro.

Sembra / etc / hadoop / conf / * mai stato aggiornato

# 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
.

Qualcuno ha qualche idea di questo problema?

È stato utile?

Soluzione

Sembra che tu stia utilizzando la configurazione client errata nella directory / etc / hadoop / confect.A volte il manager di Cloudera (cm) distribuerà l'opzione di configurazioni client potrebbe non funzionare.

Come è stato abilitato NN Ha, dovresti avere file di Core-Site.xml e HDFS-Site.XML e HDFS-Site.xml nella tua directory di configurazione client di Hadoops.Per ottenere i file del sito validi, vai al servizio HDFS da cm Scegliere Scarica configurazione client dall'opzione Actions .Otterrai i file di configurazione in formato ZIP, estrai i file zip e sostituisci /etc/Hadoop/conf/core-site.xml e /etc/Hadoop/conf/hdfs-site.xml file con il sito di base estratto .xml,file hdfs-site.xml file.

Altri suggerimenti

ha risolto.La configurazione errata è stata collegata a "/ etc / hadoop / conf /" -> "/ etc / alternative / hadoop-conf /" -> "/etc/hadoop/conf.clorudera.Mapreduce1"

Deve essere "/ etc / hadoop / conf /" -> "/ etc / alternative / hadoop-conf /" -> "/etc/hadoop/conf.clorudera.Mapreduce"

Sotto la dichiarazione nel mio codice risolto il problema specificando l'host e la porta

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

Ho risolto questo problema che mette la linea completa per creare rdd

MyFIRSTRDD= SC.TextFile ("HDFS: //192.168.35.132: 8020 / BUPA.txt")

E poi sono stato in grado di fare un'altra trasformazione RDD. Assicurati di avere il file w / r / x al file o puoi eseguire chmod 777

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top