4

clouderacdh4リリースをインストールしました。その上でmapreduceジョブを実行しようとしています。次のエラーが発生します->

2012-07-09 15:41:16 ZooKeeperSaslClient [INFO] Client will not SASL-authenticate because the default JAAS configuration section 'Client' could not be found. If you are not using SASL, you may ignore this. On the other hand, if you expected SASL to work, please fix your JAAS configuration.
2012-07-09 15:41:16 ClientCnxn [INFO] Socket connection established to Cloudera/192.168.0.102:2181, initiating session
2012-07-09 15:41:16 RecoverableZooKeeper [WARN] Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master
2012-07-09 15:41:16 RetryCounter [INFO] The 1 times to retry  after sleeping 2000 ms
2012-07-09 15:41:16 ClientCnxn [INFO] Session establishment complete on server Cloudera/192.168.0.102:2181, sessionid = 0x1386b0b44da000b, negotiated timeout = 60000
2012-07-09 15:41:18 TableOutputFormat [INFO] Created table instance for exact_custodian
2012-07-09 15:41:18 NativeCodeLoader [WARN] Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2012-07-09 15:41:18 JobSubmitter [WARN] Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same.
2012-07-09 15:41:18 JobSubmitter [INFO] Cleaning up the staging area file:/tmp/hadoop-hdfs/mapred/staging/hdfs48876562/.staging/job_local_0001
2012-07-09 15:41:18 UserGroupInformation [ERROR] PriviledgedActionException as:hdfs (auth:SIMPLE) cause:java.io.FileNotFoundException: File does not exist: /home/cloudera/yogesh/lib/hbase.jar
Exception in thread "main" java.io.FileNotFoundException: File does not exist: /home/cloudera/yogesh/lib/hbase.jar
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:736)
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:208)
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestamps(ClientDistributedCacheManager.java:71)
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:246)
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:284)
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:355)
    at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1226)
    at org.apache.hadoop.mapreduce.Job$11.run(Job.java:1223)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232)
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1223)
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1244)
    at 

hadoop-mapreduce-examples-2.0.0-cdh4.0.0.jarで指定されたサンプルプログラムを実行できます。しかし、ジョブがjobtrackerに正常に送信されると、このエラーが発生します。ローカルファイルシステムに再度アクセスしようとしているようです(分散キャッシュでジョブを実行するために必要なすべてのライブラリを設定しましたが、ローカルディレクトリにアクセスしようとしています)。この問題はユーザー権限に関連していますか?

I) Cloudera:~ # hadoop fs -ls hdfs://<MyClusterIP>:8020/ショー-

Found 8 items
drwxr-xr-x   - hbase hbase               0 2012-07-04 17:58 hdfs://<MyClusterIP>:8020/hbase<br/>
drwxr-xr-x   - hdfs  supergroup          0 2012-07-05 16:21 hdfs://<MyClusterIP>:8020/input<br/>
drwxr-xr-x   - hdfs  supergroup          0 2012-07-05 16:21 hdfs://<MyClusterIP>:8020/output<br/>
drwxr-xr-x   - hdfs  supergroup          0 2012-07-06 16:03 hdfs:/<MyClusterIP>:8020/tools-lib<br/>
drwxr-xr-x   - hdfs  supergroup          0 2012-06-26 14:02 hdfs://<MyClusterIP>:8020/test<br/>
drwxrwxrwt   - hdfs  supergroup          0 2012-06-12 16:13 hdfs://<MyClusterIP>:8020/tmp<br/>
drwxr-xr-x   - hdfs  supergroup          0 2012-07-06 15:58 hdfs://<MyClusterIP>:8020/user<br/>

II)---次の結果はありません----

hdfs@Cloudera:/etc/hadoop/conf> find . -name '**' | xargs grep "default.name"<br/>
hdfs@Cloudera:/etc/hbase/conf> find . -name '**' | xargs grep "default.name"<br/>

代わりに、新しい
APIでは、適切に設定した-> fs.defaultFS-> hdfs:// Cloudera:8020を使用していると思います。

「fs.default.name」の場合、hadoopクラスター0.20.2(非clouderaクラスター)のエントリを取得しましたが

cass-hadoop@Pratapgad:~/hadoop/conf> find . -name '**' | xargs grep "default.name"<br/>
./core-default.xml:  <name>fs.default.name</name><br/>
./core-site.xml:  <name>fs.default.name</name><br/>

cdh4のデフォルト設定では、このエントリをそれぞれのディレクトリに追加する必要があると思います。(バグの場合)。

プログラムを実行するために使用しているコマンド-

hdfs@Cloudera:/home/cloudera/yogesh/lib> java -classpath hbase-tools.jar:hbase.jar:slf4j-log4j12-1.6.1.jar:slf4j-api-1.6.1.jar:protobuf-java-2.4.0a.jar:hadoop-common-2.0.0-cdh4.0.0.jar:hadoop-hdfs-2.0.0-cdh4.0.0.jar:hadoop-mapreduce-client-common-2.0.0-cdh4.0.0.jar:hadoop-mapreduce-client-core-2.0.0-cdh4.0.0.jar:log4j-1.2.16.jar:commons-logging-1.0.4.jar:commons-lang-2.5.jar:commons-lang3-3.1.jar:commons-cli-1.2.jar:commons-configuration-1.6.jar:guava-11.0.2.jar:google-collect-1.0-rc2.jar:google-collect-1.0-rc1.jar:hadoop-auth-2.0.0-cdh4.0.0.jar:hadoop-auth.jar:jackson.jar:avro-1.5.4.jar:hadoop-yarn-common-2.0.0-cdh4.0.0.jar:hadoop-yarn-api-2.0.0-cdh4.0.0.jar:hadoop-yarn-server-common-2.0.0-cdh4.0.0.jar:commons-httpclient-3.0.1.jar:commons-io-1.4.jar:zookeeper-3.3.2.jar:jdom.jar:joda-time-1.5.2.jar com.hbase.xyz.MyClassName

4

2 に答える 2

4

MRジョブの実行中に、2.0.0-cdh4.1.3で同じ問題を段階的に実行しました。mapred.site.xmlにプロパティを追加した後

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

Hiveジョブを実行するため

export HIVE_USER=yarn
于 2013-02-15T07:29:37.353 に答える
2

デバッグ手順:単純なHadoopシェルコマンドを実行してみてください。

hadoop fs -ls /

これにHDFSファイルが表示されている場合は、構成が正しいです。そうでない場合は、構成が欠落しています。これが発生すると、のようなhadoopシェルコマンド-lsは、Hadoopファイルシステムではなくローカルファイルシステムを参照します。これは、HadoopがCMS(Cloudera manager)を使用して開始された場合に発生します。conf構成をディレクトリに明示的に保存しません。

次のコマンド(ポートの変更)を使用して、hadoopファイルシステムが表示されているかどうかを確認します。

hadoop fs -ls hdfs:// host:8020 /

パスを送信したときにローカルファイルシステムが表示される場合/は、構成ファイルhdfs-site.xmlmapred-site.xml構成ディレクトリを設定する必要があります。また、を指すためhdfs-site.xmlのエントリが必要です。私の場合、ディレクトリはです。fs.default.namehdfs://host:port//etc/hadoop/conf

参照: http: //hadoop.apache.org/common/docs/r0.20.2/core-default.html

これで問題が解決するかどうかを確認してください。

于 2012-07-06T16:36:27.140 に答える