Configuration cdh4 hadoop hbase PriviledEdActionException as:hdfs(auth:SIMPLE)原因:java.io.FileNotFoundException

Configuration cdh4 hadoop hbase PriviledEdActionException as:hdfs(auth:SIMPLE)原因:java.io.FileNotFoundException,configuration,hadoop,mapreduce,hbase,cloudera,Configuration,Hadoop,Mapreduce,Hbase,Cloudera,我已经安装了cloudera cdh4版本,我正在尝试在该版本上运行mapreduce作业。我收到以下错误--> 我能够运行hadoop-mapreduce-examples-2.0.0-cdh4.0.0.jar中给出的示例程序。 但当我的作业成功提交给jobtracker时,我会遇到此错误。看起来它正在尝试再次访问本地文件系统(尽管我已经在分布式缓存中设置了执行作业所需的所有库,但它仍在尝试访问本地目录)。这与用户权限有关吗 (一) Cloudera:~#hadoop fs-ls-hdfs:/

我已经安装了cloudera cdh4版本,我正在尝试在该版本上运行mapreduce作业。我收到以下错误-->

我能够运行hadoop-mapreduce-examples-2.0.0-cdh4.0.0.jar中给出的示例程序。 但当我的作业成功提交给jobtracker时,我会遇到此错误。看起来它正在尝试再次访问本地文件系统(尽管我已经在分布式缓存中设置了执行作业所需的所有库,但它仍在尝试访问本地目录)。这与用户权限有关吗

(一)
Cloudera:~#hadoop fs-ls-hdfs://: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/>
找到8项
drwxr-xr-x-hbase hbase 0 2012-07-04 17:58 hdfs://:8020/hbase
drwxr-xr-x-hdfs超群0 2012-07-05 16:21 hdfs://:8020/输入
drwxr-xr-x-hdfs超群0 2012-07-05 16:21 hdfs://:8020/输出
drwxr-xr-x-hdfs超群0 2012-07-06 16:03 hdfs:/:8020/tools lib
drwxr-xr-x-hdfs超群0 2012-06-26 14:02 hdfs://:8020/测试
DRWXRWT-hdfs超群0 2012-06-12 16:13 hdfs://:8020/tmp
drwxr-xr-x-hdfs超群0 2012-07-06 15:58 hdfs://:8020/用户
(II) ---以下内容没有结果----

hdfs@Cloudera:/etc/hadoop/conf>find-名称“**”| xargs grep“default.name”
hdfs@Cloudera:/etc/hbase/conf>查找-名称“**”| xargs grep“default.name”
相反,我认为我们正在使用新的API->
fs.defaultFS-->hdfs://Cloudera:8020 我已经正确设置了

虽然对于“fs.default.name”,我得到了hadoop集群0.20.2(非cloudera集群)的条目

cass-hadoop@Pratapgad:~/hadoop/conf>find-名称“**”| xargs grep“default.name”
./core-default.xml:fs.default.name
./core-site.xml:fs.default.name
我认为cdh4默认配置应该在各自的目录中添加这个条目。(如果是它的bug)

我用来运行progrmme的命令-

hdfs@Cloudera:/home/cloudera/yogesh/lib>java-classpath1.1.1.1.1.1.jar:SLF4:SLFFF4-4-4-4-4-4-4-1.6.1.1.jar:jar:1:1.1-1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.jar:jar:jar:1:1:1:原布布布基-1-1-java-java-java-java-java-java-java-java-java-2.4.4.4.4.4.4.4.4.4.4.4.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.1.0 jar:commons-lang3-3.1.jar:common1.2.2.1.1.2.1.2.1.2.1.2.1.2.1.1.2.2.jar:谷歌收集1.0-rc2.jar:谷歌收集1.0-1.0-1.0-1.0-rc1.1.1.1.1.1.2.2.1.2.2.2.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 jar:commons-io-1。4.jar:zookeeper-3.3.2.jar:jdom.jar:joda-time-1.5.2.jar com.hbase.xyz.MyClassName


调试过程:尝试运行简单的Hadoop shell命令

hadoop fs-ls/

如果显示HDFS文件,则说明您的配置正确。如果没有,则配置丢失。当这种情况发生时,像
-ls
这样的hadoop shell命令将引用本地文件系统,而不是hadoop文件系统。 如果Hadoop是使用CMS(Cloudera manager)启动的,就会发生这种情况。它不会显式地将配置存储在
conf
目录中

通过以下命令(更改端口)检查是否显示hadoop文件系统:

hadoop fs-lshdfs://host:8020/

如果在您将路径提交为
/
时显示本地文件系统,则应在配置目录中设置配置文件
hdfs site.xml
mapred site.xml
。另外,
hdfs site.xml
应该有
fs.default.name
的条目指向
hdfs://host:port/
。在我的例子中,目录是
/etc/hadoop/conf

见:

看,如果这能解决你的问题

甚至我在运行MR jobs时也在2.0.0-cdh4.1.3中分阶段解决了同样的问题。添加 mapred.site.xml中的属性


您可以发布作业提交的命令行,或者引用此文件的任何代码吗?该文件是否存在于本地系统上?嗨,克里斯,谢谢您的回答,我已更新了问题,请参见上文。job_local_0001表示mapred-site.xml未正确设置。在使用新配置()时,应在中使用。就在那里@约格什,你应该提供这个作为问题的答案,因为这是为我解开问题的重要钥匙。一旦我按照下面Ramy的描述(有些不清楚和不完整)设置了mapred-site.xml,问题就解决了。Ashish请在父问题中查找添加的问题的结果。这就是我创建配置对象的方式。配置conf=新配置(false);conf.addResource(新路径(confreader.HBASE_ROOT_DIRECTORY+“/conf/core site.xml”);conf.addResource(新路径(confreader.HBASE_ROOT_DIRECTORY+“/conf/hdfs site.xml”);conf.addResource(新路径(confreader.HADOOP_ROOT_DIRECTORY+“/conf/core site.xml”);conf.addResource(新路径(confreader.HADOOP_ROOT_DIRECTORY+“/conf/hdfs site.xml”);conf.addResource(新路径(confreader.HBASE_ROOT_DIRECTORY+“/conf/HBASE site.xml”)
这是正确的方法吗?
我认为mapred设置(mapred-site.xml文件丢失)设置不正确。这就是为什么默认情况下它会在本地运行作业。我们需要配置纱线,或者需要正确设置配置,以便mrf1作业将在jobtracker上运行
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/>
hdfs@Cloudera:/etc/hadoop/conf> find . -name '**' | xargs grep "default.name"<br/>
hdfs@Cloudera:/etc/hbase/conf> find . -name '**' | xargs grep "default.name"<br/>
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/>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
export HIVE_USER=yarn