質問

を使用して、Cloudera Managerを介したNameNode高可用性を有効にします。

Cloudera Manager >> HDFS >>アクション>高可用性を有効にする>>選択されたスタンドでNameNode&Journal Node その後、nameService1

プロセス全体が完了したら、クライアント構成を展開しました。

HDFSディレクトリ(HADOOP FS -LS /)をリストして、Standby NameNode&STANDBY NameNodeへの手動でフェイルオーバー(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.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.configuredFailoverProxider

私の印象はCloudera Managerでした。私はこの構成と設定のためにクライアントをチェックしました(/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 Manager(CM)Deploy Client Configurationsオプションが機能しない場合があります。

NN HAを有効にしたときに、Hadoopクライアント構成ディレクトリに有効なcore-site.xmlとhdfs-site.xmlファイルを持つ必要があります。有効なサイトファイルを取得するには、アクションボタンからダウンロードクライアント構成オプションを選択します。設定ファイルをzip形式で取得し、ZIPファイルを抽出し、/ etc/hadoop/conf/core-site.xmlと/etc/hadoop/conf/hdfs-site.xmlファイルを抽出したcore-site.xmlと置き換えます。hdfs-site.xmlファイル

他のヒント

解決した。間違った設定は "/ etc / hadoop / conf /" - > "/ etc / contill atives / hadoop-conf /" - > "/ etc/hadoop/conf.cloudera.mreduce1"

「/ etc / hadoop / conf / " - >" / etc / contill wites / hadoop-conf / " - >" /etc/hadoop/conf.cloudera.mreoudera.mreduce "

私のコードの下記の文は、ホストとポートを指定して問題を解決しました

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変換を行うことができました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top