Hadoop实现远程登录与调试

配置远程登录

1)         在自己的linux机上搭好hadoop,详细过程请参考:http://www.cnblogs.com/stardjyeah/p/4641554.html

2)         修改linux的hosts文件

# vim /etc/hosts

在hosts文件的最下面一行添加,格式为:

第一部份:网络IP地址。

第二部份:主机名.域名,注意主机名和域名之间有个半角的点。

第二部份:主机名(主机名别名) ,其实就是主机名。

比如:192.168.1.109 hadoop-master.localdomain hadoop-master

当然每行也可以是两部份,就是主机IP地址和主机名;

比如:192.168.1.109 hadoop-master

3)         修改hadoop下的core-site.xml,yarn-site.xml,mapred-site.xml,hdfs-site.xml

将里面的所有localhost全部改成hadoop-master

4)         重启linux系统,然后打开所有hdfs和yarn的进程,在另一台机器的浏览器上输入192.168.1.109:8088 192.168.1.109:50070 192.168.1.109:50090看是否能得到对应的页面(PS:正确页面在hadoop的安装配置一文中有),如果有,在进入cmd用telnet指令去联通以上三个端口,如果都没问题,则表示配置成功。

5)         如果以上4步都通过了,那么恭喜啦,你就可以开始远程登陆你的hadoop了,可以用secureCRT来仿真终端,可以用FileZilla来进行文件传输等等。

配置远程调试

1.首先准备好一个hadoop2.x的eclipse插件,具体步骤请参考:http://blog.csdn.net/qingmu0803/article/details/39665147,这个博主用的是eclipse  Kepler,而我用的是myeclipse 10,其插件同样可用。

2.将hadoop解压到对应的目录下,并配置好hadoop_home和path(类似jdk的配置),替换hadoop根目录下的bin文件夹(用来替换的bin文件夹下载链接:http://pan.baidu.com/s/1sjupu3N)然后在cmd中输入hadoop如有以下显示,则表示成功

3.可能会出的错误

在运行的调试过程中有可能会报如下错误:

org.apache.hadoop.io.nativeio.NativeIO$Windows. access(NativeIO.java:557)

这应该是hadoop的一个bug,我们先来看看源码

如果在替换过本地的hadoop/bin文件夹后还报这个错,那我们只能修改源码的,即将图中红框部分注释掉,改成return true,并在project根目录下创建下图所示的包,并将修改后的类文件考进去

这个文件我已经改过了,下载链接为:http://pan.baidu.com/s/18Xdgi

4.正式进入调试阶段

远程调试hadoop-HDFS demo:

http://www.cnblogs.com/stardjyeah/p/4643618.html

远程调试hadoop-mapreduce demo:

http://www.cnblogs.com/stardjyeah/p/4643628.html

原文地址:https://www.cnblogs.com/stardjyeah/p/4643639.html