configuration hadoop mapreduce hbase cloudera

configuration - cdh4 hadoop-hbase PriviledgedActionException como: hdfs(auth: SIMPLE) causa: java.io.FileNotFoundException



mapreduce cloudera (2)

Incluso yo puse en fase el mismo problema en 2.0.0-cdh4.1.3 mientras ejecutaba trabajos de MR. Después de agregar la propiedad en mapred.site.xml

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

Para ejecutar el trabajo de Hive

export HIVE_USER=yarn

He instalado cloudera cdh4 release Y estoy intentando ejecutar el trabajo mapreduce en eso. Estoy recibiendo un error de seguimiento ->

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

Puedo ejecutar programas de ejemplo en hadoop-mapreduce-examples-2.0.0-cdh4.0.0.jar. Pero recibo este error cuando mi trabajo se envía correctamente a jobtracker. Parece que está intentando acceder al sistema de archivos local de nuevo (aunque he configurado todas las bibliotecas necesarias para la ejecución del trabajo en caché distribuida, todavía está tratando de acceder al directorio local). ¿Esto está relacionado con los privilegios del usuario?

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

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) --- Ningún resultado para seguir ----

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

En cambio, creo que con el nuevo APIS estamos usando ->
fs.defaultFS -> hdfs: // Cloudera: 8020 que he configurado correctamente

Aunque para "fs.default.name" obtuve entradas para hadoop cluster 0.20.2 (cluster no 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/>

Creo que la configuración predeterminada de cdh4 debería agregar esta entrada en el directorio respectivo. (Si es su error).

El comando que estoy usando para ejecutar mi programa

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


Procedimiento de depuración : intente ejecutar comandos de shell Hadoop simples.

hadoop fs -ls /

Si esto muestra los archivos HDFS, entonces su configuración es correcta. Si no, entonces la configuración falta. Cuando esto sucede, el comando hadoop shell como -ls se referirá al sistema de archivos local y no al sistema de archivos Hadoop. Esto sucede si Hadoop comienza a usar CMS (administrador de Cloudera). No almacena explícitamente la configuración en el directorio conf .

Compruebe si el sistema de archivos hadoop se muestra siguiendo el comando (cambiar puerto):

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

Si muestra el sistema de archivos local cuando envía la ruta como / entonces, debe establecer los archivos de configuración hdfs-site.xml y mapred-site.xml en el directorio de configuración. También hdfs-site.xml debería tener la entrada para fs.default.name apuntando a hdfs://host:port/ . En mi caso, el directorio es /etc/hadoop/conf .

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

Mira, si esto resuelve tu problema.