Question

Nous activons Namenode Haute disponibilité via Cloudera Manager, en utilisant

Gestionnaire de Cloudera >> HDFS >> Action> Activer la disponibilité élevée >> Sélection sélectionnée par Namenode & Journal Nœuds Puis nomservice1

Une fois l'ensemble du processus terminé, puis déployé la configuration du client.

Testé à partir de la machine cliente en répertoriant les répertoires HDFS (Hadoop FS -LS /), puis basculement manuellement en attente Namenode et répertorie à nouveau les annuaires HDFS (Hadoop FS -LS /). Ce test fonctionnait parfaitement.

Mais quand j'ai couru le travail de sommeil Hadoop en utilisant la commande suivante, il a échoué

$ 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

Je ne sais pas pourquoi c'est ne pas être capable de résoudre le nomservice1, même après le déploiement de la configuration du client.

Quand je suis Google ce problème, j'ai trouvé une seule solution à ce problème

Ajoutez l'entrée ci-dessous dans la saisie de configuration pour résoudre le problème dfs.nameservices= nomservice1 dfs.ha.namenodes.nameservice1= namenode1, namenode2 dfs.namenode.rpc-address.nameservice1.namenode1= IP-10-118-137-215.EC2.Internal: 8020 dfs.namenode.rpc-adresse.nameservice1.namenode2= IP-10-12-122-210.EC2.Internal: 8020 dfs.client.failover.proxy.provider.nameservice1= org.apache.haadoop.hdfs.server.namenode.ha.configuredFailoverProxyProvider

Mon impression était le responsable de Cloudera prenant des soins de cela. J'ai vérifié le client pour cette configuration et cette configuration était là (/var/run/cloudera-scm-agent/process/1998-deploy-client-config/hadoop-conf/hdfs-site.xf/hdfs-site.xf/hdfs-site.xml).

Aussi encore plus de détails sur les fichiers de configuration:

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

Je doute de son problème avec la vieille configuration dans /etc/hadoop/conf.cloudera.hdfs1 & /etc/hadoop/conf.cloudera.mapreduce1, mais pas sûr.

ressemble à / etc / hadoop / conf / * n'a jamais été mis à jour

# 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

Quelqu'un a une idée de ce problème?

Était-ce utile?

La solution

On dirait que vous utilisez une mauvaise configuration client dans / etc / hadoop / conf. Conf.Parfois, le gestionnaire de Cloudera (cm) Déployer l'option Configurations du client peut ne pas fonctionner.

Comme vous avez activé NN HA, vous devez avoir des fichiers valides Core-Site.xML et HDFS-SITE.XML dans votre répertoire de configuration du client Hadoop.Pour obtenir les fichiers de site valides, accédez au service HDFS à partir de cm Choisissez Télécharger la configuration du client à partir du bouton Actions .Vous obtiendrez des fichiers de configuration dans le format zip, extrayez les fichiers zip et remplacez /etc/hadoop/conf/core-site.xf/core-site.xf/hdfs/hadoop/conf/hdfs-site.xml avec l'extraite Site-Site.xml,HDFS-SITE.XML Fichiers.

Autres conseils

Je suis résolu.Une mauvaise configuration était liée à "/ etc / hadoop / conf /" -> "/ etc / alternatives / hadoop-conf /" -> "/etc/hadoop/conf.cloudera.mapreduce1"

Ce doit être "/ etc / hadoop / conf /" -> "/ etc / alternatives / hadoop-conf /" -> "/etc/hadoop/conf.cloudera.mapreduce"

Indique ci-dessous dans mon code résolu problème en spécifiant l'hôte et le port

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

J'ai résolu ce problème ma mise en place de la ligne complète pour créer RDD

myfirstrdd= sc.textfile ("HDFS: //192.168.35.132: 8020 / BUPA.TXT")

Et puis j'ai pu faire une autre transformation de RDD. Assurez-vous que vous avez le fichier W / R / X au fichier ou vous pouvez faire CHMOD 777

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top