使用Windows上Eclipse远程调试Linux上的Hadoop
2013-10-26 18:53
716 查看
一、设置Eclipse运行用户 如果以与Hadoop运行用户名(比如grid)不同的用户运行Eclipse,则无法对Hadoop运行用户所属的文件进行管理,运行Map/Reduce程序也会报“org.apache.hadoop.security.AccessControlException:Permission denied”错误。 1、新建Windows用户grid,密码是grid在Powershell中运行:
输入用户名和密码,点击“确定”
(2)、永久方法:在Eclipse根目录下新建一个grid-eclipse.bat文件,内容为
方法A:修改FileUtil权限控制源码并重新编译1、在Linux平台上重新编译Hadoop项目
2、将Linux上编译出来hadoop-core重命名并覆盖Windows上Hadoop安装目录中的hadoop-core-*.jar
方法B:设置dfs.permissions参数为False1、在所有节点上运行以下命令:
三、加载插件,打开Map/Reduce Perspective
四、设置Hadoop安装目录
五、配置Map/Reduce Locations 选择Map/Reduce Perspective中下方的“Map/Reduce Location”
在空白处右击,选择“New Hadoop location...”
填写Location参数,点击“Finish”
六、检查配置浏览左边的DFS Locations,尝试能否增删文件,确定权限是否正确。
参考资料:Hadoop学习笔记(九):如何在windows上使用eclipse远程连接hadoop进行程序开发 http://www.cnblogs.com/beanmoon/archive/2013/01/05/2845579.html
来自为知笔记(Wiz)
#Windows命令提示符下创建用户,并设置密码永不过期 http://zhcxl.blog.51cto.com/211202/841964 net user grid grid /add /comment:"模拟Hadoop运行用户" /passwordchg:no #将用户密码配置为永不过期 http://technet.microsoft.com/zh-cn/library/hh967633.aspx cmd /c "wmic.exe Path Win32_UserAccount Where Name=""grid"" Set PasswordExpires=""FALSE"" "2、以用户grid运行eclipse(1)、临时方法:按住Shift键再右击eclipse.exe程序,会出现“以其他用户身份运行”选项,点击之。
输入用户名和密码,点击“确定”
(2)、永久方法:在Eclipse根目录下新建一个grid-eclipse.bat文件,内容为
runas /user:grid /savecred %~dp0\eclipse.exe以后就运行这个脚本来启动eclipse。只有第一次运行时需要输入密码,以后就不用了。 二、重编译Hadoop安装目录中的hadoop-core-*.jar不修改的话运行Map/Reduce程序会报“ERROR security.UserGroupInformation: PriviledgedActionException ”错误
方法A:修改FileUtil权限控制源码并重新编译1、在Linux平台上重新编译Hadoop项目
##下载解压Ant cd /usr/local/src wget -nc http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.9.2-bin.tar.gz tar -zxvf apache-ant-[0-9]*-bin.tar.gz mv apache-ant-[0-9]*[^z] /usr/local/apache-ant chown -R grid:grid /usr/local/apache-ant ##解压一份Hadoop用于编译 cd /usr/local/src tar -zxf hadoop-[0-9]*[0-9].tar.gz mv hadoop-[0-9]*[0-9] hadoop_for_build chown -R grid:grid /usr/local/src/hadoop_for_build ##修改FileUtil.java注释掉checkReturnValue的判断 cd /usr/local/src/hadoop_for_build cp -n -p src/core/org/apache/hadoop/fs/FileUtil.java src/core/org/apache/hadoop/fs/FileUtil.java.save sed -i '/private static void checkReturnValue/,/private static void execSetPermission/s/!rv/1!=1/' \ src/core/org/apache/hadoop/fs/FileUtil.java ##获得Hadoop版本 HADOOP_VERSION=`grep "Release" CHANGES.txt | sed 1q | awk '{print $2}'` ##备份hadoop-core-*.jar包,以后会被Eclipse的Map/Reduce程序覆盖 cp -p hadoop-core-$HADOOP_VERSION.jar hadoop-core-$HADOOP_VERSION.jar.bak ##修改源码编译的版本,默认是带SNAPSHOT的 sed -i 's@\(<property name="version" value="\)1.2.2-SNAPSHOT\("/>\)@\1'"$HADOOP_VERSION"'\2@' \ build.xml ##使用Ant重新编译hadoop的jar包 cd /usr/local/src/hadoop_for_build time /usr/local/apache-ant/bin/ant 1> /tmp/ant.log ##检查编译结果 cat /tmp/ant.log | grep error tail -n10 /tmp/ant.log rm -f /tmp/ant.log ls build
2、将Linux上编译出来hadoop-core重命名并覆盖Windows上Hadoop安装目录中的hadoop-core-*.jar
方法B:设置dfs.permissions参数为False1、在所有节点上运行以下命令:
grep -q "dfs.permissions" $HADOOP_CONF_DIR/hdfs-site.xml sed -i '/<\/configuration>/i\ <property>\ <name>dfs.permissions</name>\ <value>false</value>\ </property>\ ' \ $HADOOP_CONF_DIR/hdfs-site.xml
三、加载插件,打开Map/Reduce Perspective
四、设置Hadoop安装目录
五、配置Map/Reduce Locations 选择Map/Reduce Perspective中下方的“Map/Reduce Location”
在空白处右击,选择“New Hadoop location...”
填写Location参数,点击“Finish”
六、检查配置浏览左边的DFS Locations,尝试能否增删文件,确定权限是否正确。
参考资料:Hadoop学习笔记(九):如何在windows上使用eclipse远程连接hadoop进行程序开发 http://www.cnblogs.com/beanmoon/archive/2013/01/05/2845579.html
来自为知笔记(Wiz)
相关文章推荐
- 实战windows7下eclipse远程调试linux hadoop
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- 使用Windows上的Eclipse 远程调试 linux下的Tomcat
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- 小心得--实战windows7下eclipse远程调试linux hadoop
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- windows下在eclipse上远程连接hadoop集群调试mapreduce错误记录
- windows下eclipse远程调试hadoop2.7.2,debug mapreduce
- windows上使用eclipse远程连接hadoop问题2 -Permission denied:user 问题
- Hadoop概念学习系列之搭建(windows)Eclipse/MyEclipse远程操作(Linux上)hadoop2.2.0/hadoop2.6.0 出错集(三十五)
- 在Windows上用Eclipse远程调试Linux下的C++程序
- 如何在windows上使用eclipse远程连接hadoop进行程序开发
- Windows eclipse远程调试Linux上的Java Web程序
- Eclipse远程调试Tomcat(linux和windows)
- eclipse远程调试搭载在Linux上的Hadoop的步骤
- "Windows远程调试Linux上的C++程序:Eclipse+MingW+Samba+GDBserver"-------续文
- Linux&Windows实现 Eclipse远程调试 tomcat应用
- windows上使用eclipse远程连接hadoop进行程序开发没有权限访问问题
- Linux下搭建Eclipse下Hadoop的开发环境以及远程调试