Pregunta

Habilitamos la alta disponibilidad de Namenode a través del administrador de Cloudera, usando

CLOUDERA Manager >> HDFS >> Acción> Habilitar alta disponibilidad >> Soporte seleccionado por Namenode y diario Nodos Luego nombreservice1

Una vez que todo el proceso completó, luego desplegó la configuración del cliente.

Probado de la máquina cliente al listar directorios HDFS (Hadoop FS -RS -LS /) y luego manualmente conmutación por error Namenode y nuevamente en la lista de directorios HDFS (Hadoop FS -LS /). Esta prueba funcionó perfectamente.

Pero cuando realizo el trabajo de Hadoop Sleep usando el siguiente comando, falló

$ 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

No sé por qué no puede resolver NombresVice1 incluso después de implementar la configuración del cliente.

Cuando google este problema encontré solo una solución a este problema

Agregue la entrada a continuación en la entrada de configuración para solucionar el problema dfs.nameservices= nombreservice1 dfs.ha.namenodes.nameservice1= namenode1, namenode2 dfs.namenode.rpc-direccion.namesservice1.amenode1= IP-10-118-137-215.ec2.internal: 8020 dfs.namenode.rpc-direccion.nameservice1.amenode2= IP-10-12-122-210.ec2.internal: 8020 dfs.client.failover.proxy.provider.nameservice1= org.apache.hadoop.hdfs.server.namenode.ha.configuredfailoverproxyprovider

Mi impresión fue el gerente de Cloudera, tome cuidados. Revisé el cliente para esta configuración y configuración estuvo allí (/var/run/cloudera-scm-agent/process/1998-deploy-client-config/hadoop-conf/hdfs-site.xml).

También algunos detalles más de los archivos de configuración:

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

Dudo su problema con la configuración antigua en /etc/hadoop/conf.cloudera.hdfs1 & /etc/hadoop/conf.cloudera.mapreduce1, pero no estoy seguro.

Parece que / etc / hadoop / conf / * nunca se actualizó

# 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

¿Alguien tiene alguna idea de este problema?

¿Fue útil?

Solución

Parece que está usando la configuración incorrecta del cliente en / etc / HADOOP / CONF.A veces, el gerente de Cloudera (CM) implementa la opción Configuraciones del cliente, es posible que no funcionen.

Como ha habilitado NN HA, debe tener archivos CORE-Site.XML y HDFS-Site.xml y HDFS-Site.xml en su directorio de configuración de Hadoop Client.Para obtener los archivos de sitio válidos, vaya al servicio HDFS desde CM, seleccione descargar la opción de configuración del cliente del botón Acciones .Obtendrá archivos de configuración en formato ZIP, extraerá los archivos ZIP y reemplace /etc/hadoop/conf/core-site.xml y /etc/hadoop/conf/hdfs-site.xml archivos con el núcleo extraído.xml,archivos hdfs-site.xml.

Otros consejos

se resolvió.La configuración incorrecta estaba vinculada a "/ etc / hadoop / conf /" -> "/ etc / alternatives / hadoop-conf /" -> "/etc/hadoop/conf.cloudera.mapreduce1"

Tiene que ser "/ etc / hadoop / conf /" -> "/ etc / alternatives / hadoop-conf /" -> "/etc/hadoop/conf.cloudera.mapreduce"

A continuación, en mi código resolvió el problema especificando el host y el puerto

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

Resolví este problema Mi línea completa para crear RDD

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

y luego pude hacer otra transformación RDD .. Asegúrese de tener el archivo w / r / x al archivo o puede hacer chmod 777

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top