linux远程hadoop,使用Windows上Eclipse远程调试Linux上的Hadoop

一、设置Eclipse运行用户

如果以与Hadoop运行用户名(比如grid)不同的用户运行Eclipse,则无法对Hadoop运行用户所属的文件进行管理,运行Map/Reduce程序也会报“org.apache.hadoop.security.AccessControlException:Permission denied”错误。

1、新建Windows用户grid,密码是grid

在Powershell中运行:

#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程序,会出现“以其他用户身份运行”选项,点击之。

7590bc98c22420d90653c8389a67ca64.png

输入用户名和密码,点击“确定”

cb52c1aa1c982a11e1e4337cb5b14ca9.png

(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@\(\)@\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

4a810a080b0db5885174ef1de74a4647.png

5ac5f0ff8d932b1a62e5736115590357.png

2、将Linux上编译出来hadoop-core重命名并覆盖Windows上Hadoop安装目录中的hadoop-core-*.jar

方法B:设置dfs.permissions参数为False

1、在所有节点上运行以下命令:

grep -q "dfs.permissions" $HADOOP_CONF_DIR/hdfs-site.xml

sed -i '//i\

\

dfs.permissions\

false\

\

' \

$HADOOP_CONF_DIR/hdfs-site.xml

三、加载插件,打开Map/Reduce Perspective

2e28bf357a4ecd078f0fec9c48030540.png

34cfd4834da5a01a2e159de9333ba5db.png

四、设置Hadoop安装目录

df4cbf14c3b0910827e7ce8f63df4ce5.png

eb08c250eddf142b32634ed26dea95b2.png

五、配置Map/Reduce Locations

选择Map/Reduce Perspective中下方的“Map/Reduce Location”

2b6a58c52fec5ad91c2755af62783743.png

在空白处右击,选择“New Hadoop location...”

ce4c61117bd5a240fd340aaac6fd6881.png

填写Location参数,点击“Finish”

87643175f40d3a15ea62f99d69c6c56d.png

六、检查配置

浏览左边的DFS Locations,尝试能否增删文件,确定权限是否正确。

7a92169773bbc4a9bb31e314c27da290.png

参考资料:

使用Windows上的Eclipse 远程调试 linux下的Tomcat

1:修改Linux上Tomcat的catalina.sh,第一行添加declare -x CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_sock ...

使用xdebug+eclipse远程调试centOS7上的PHP代码

这两天一直在研究PHP代码的调试,原来开发一直用的var_dump,麻烦! 最近发现能使用xdebug+eclipse远程单步调试PHP,但是百度后实现此技术的文章都写得不够具体. 我照着这里零散的文 ...

windows下Eclipse远程连接linux hadoop远程调试 经验(一)

环境 Windows 7 64bit JDK 1.6.0_45  (i586) JDK 1.7.0_51  (i586) Eclipse Kepler Eclipse -plugin-1.2.1.ja ...

eclipse远程调试Linux环境下的web项目

前提: 远程服务器上的代码和本地的代码同步 第一步 : 配置远程服务器下的startup.sh文件 在第一行添加 : declare -x CATALINA_OPTS="-server -X ...

Eclipse远程调试+FTPClient在jdk6以上写法不兼容问题的排查

业务场景: 应业务新需求的UAT测试,需要部署一份新tomcat到测试环境.新环境正常启动并运行了一天,没太大差错.但今天发现原本在另一个老的tomcat下运行的好好的FTP上传文件模块突然出了问题. ...

转载:JProfiler远程监控LINUX上的Tomcat过程细讲

来源于xuwanbest的博客   所谓"工欲善其事,必先利其器",好的工具确能起到事半工倍的作用.我用到的最多的就两个JConsole 和JProfiler .JConsole监 ...

JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)

JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!) 1.文件准备: 服务器:CentOS Linux release 7.3.1611 (Core)     Apa ...

Linux下使用Eclipse 远程调试

1 开启端口 修改/apache-tomcat-7.0.40/bin/catalina.sh 在合适的位置(请自行判断,只要有JAVA_OPTS的设定前后即可)插入下面的设定:UI_DEBUG=&qu ...

远程调试 Azure 上的 Website

让我们先检查一下使用的 Azure SDK 版本和 Visual Studio 版本.根据MSDN的介绍,Azure 的远程调试功能是在 Azure SDK 2.2 中加入的,所以请确保您的机器上安装 ...

随机推荐

[svg翻译教程]椭圆(ellipse元素)和线(line元素)

line 先看个例子,这是svg中最简单的线

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值