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