您的位置:首页 > 编程语言 > Java开发

mac中myeclipse10连接hadoop-2.6.0集群开发环境问题汇总

2015-09-08 17:49 756 查看
问题1:org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security .AccessControlException: Permission denied: user=Administrator, access=WRITE, inode="root": root:/tmp:rwxr-xr-x

其实这个错误的原因很容易看出来,用户Administator在hadoop上执行写操作时被权限系统拒绝.

解决问题的过程

看到这个错误的,第一步就是将这个错误直接入放到百度google里面进行搜索。找到了N多篇文章,但是主要的思路就如此篇文章所写的两个解决办法:http://www.cnblogs.com/acmy/archive/2011/10/28/2227901.html

1)、在hdfs的配置文件中,将dfs.permissions修改为False

到服务器上修改hadoop的配置文件:

conf/hdfs-core.xml, 找到
dfs.permissions 的配置项 , 将value值改为 false

<property>

<name>dfs.permissions</name>

<value>false</value>

<description>

If "true", enable permission checking in HDFS.

If "false", permission checking is turned off,

but all other behavior is unchanged.

Switching from one parameter value to the other does not change the mode,

owner or group of files or directories.

</description>

</property>

修改完貌似要重启下hadoop的进程才能生效

2)、执行这样的操作 hadoop fs -chmod 777 /tmp

问题2:

解决Eclipse中运行WordCount出现 java.lang.ClassNotFoundException: org.apache.hadoop.examples.WordCount$TokenizerMapper问题

原因:hadoop集群上运行mapreduce程序需要jar包。

解决办法:添加conf.set("mapred.jar","hadoop-test.jar");

把项目打包为jar文件hadoop-test.jar,放置在项目根目录下。

另外网上的解放方法是:

mian方法中添加:

File jarFile = EJob.createTempJar( "bin" );

EJob.addClasspath( "/usr/hadoop/conf" );

ClassLoader classLoader = EJob.getClassLoader();

Thread.currentThread().setContextClassLoader(classLoader);

。。。

((JobConf) job.getConfiguration()).setJar(jarFile.toString());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: