主机eclipse连接虚拟机hadoop管理HDFS 边做边记

背景:已经在虚拟机上安装了三个Hadoop节点,Ubuntu16.04,Hadoop2.6.4。也配置好了Hbase1.2.11,使用自带的zookeeper。

现在任务是在Windows环境下来操控Hbase数据,把数据进行上传,读取等操作。

https://www.cnblogs.com/yjmyzz/p/how-to-remote-debug-hadoop-with-eclipse-and-intellij-idea.html?tdsourcetag=s_pctim_aiomsg

同学给了个帖子,按照这个做的,我手里有一个他弄好的eclipse,拷好的,我看着这个做吧。斜线的字是参考贴的内容

一、准备工作

1.1 在win7中,找一个目录,解压hadoop-2.6.0,本文中是D:\yangjm\Code\study\hadoop\hadoop-2.6.0 (以下用$HADOOP_HOME表示)

我的虚拟机用的是Hadoop2.7.6,先下载这个版本的Hadoop,在这个网址下载hadoop-2.7.6.gz

http://mirror.bit.edu.cn/apache/hadoop/common/

解压到E盘吧,在 E:/hadoop-2.7.6

1.2 在win7中添加几个环境变量

HADOOP_HOME=D:\yangjm\Code\study\hadoop\hadoop-2.6.0

HADOOP_BIN_PATH=%HADOOP_HOME%\bin

HADOOP_PREFIX=D:\yangjm\Code\study\hadoop\hadoop-2.6.0

另外,PATH变量在最后追加;%HADOOP_HOME%\bin

配置完毕

二、eclipse远程调试

1.1 下载hadoop-eclipse-plugin插件

hadoop-eclipse-plugin是一个专门用于eclipse的hadoop插件,可以直接在IDE环境中查看hdfs的目录和文件内容。其源代码托管于github上,官网地址是 https://github.com/winghc/hadoop2x-eclipse-plugin

有兴趣的可以自己下载源码编译,百度一下N多文章,但如果只是使用 https://github.com/winghc/hadoop2x-eclipse-plugin/tree/master/release%20 这里已经提供了各种编译好的版本,直接用就行,将下载后的hadoop-eclipse-plugin-2.6.0.jar复制到eclipse/plugins目录下,然后重启eclipse就完事了

只在GitHub上找到2.6.0的,虽然之前记得版本不完全一致也可以用,但是害怕出问题,还是买了一个,

想试试可以直接用人家的eclipse不,打开显示没有JDK,重新安了JDK,怕新版本有问题,用的旧版本1.8的,下了exe版本的。也不大,就安在c盘吧。按照这个帖子安装配置完毕。https://blog.csdn.net/PGY0000/article/details/79256720

弄完JDK,就可以顺利打开eclipse了,新建了一个工程,tryhbase。

1.2 下载windows64位平台的hadoop2.6插件包(hadoop.dll,winutils.exe)

在hadoop2.6.0源码的hadoop-common-project\hadoop-common\src\main\winutils下,有一个vs.net工程,编译这个工程可以得到这一堆文件,输出的文件中,

hadoop.dll、winutils.exe 这二个最有用,将winutils.exe复制到$HADOOP_HOME\bin目录,将hadoop.dll复制到%windir%\system32目录 (主要是防止插件报各种莫名错误,比如空对象引用啥的)

这一步这个我买了一个,按教程放置完毕。https://blog.csdn.net/houjingjun/article/details/70198223 这个教程也有说这个。

https://www.cnblogs.com/cstzhou/p/5495434.html这个帖子有教怎么编译。

1.3 配置hadoop-eclipse-plugin插件

启动eclipse,windows->show view->other 

window->preferences->hadoop map/reduce 指定win7上的hadoop根目录(即:$HADOOP_HOME)

我并没有这个选项,参考这个帖子试一下https://blog.csdn.net/goodmentc/article/details/80954248

发现他说的就是这个帖子的下一步,我还是没有这个选项。看了一下书,好像是上面那个插件的问题,hadoop-eclipse-plugin插件不但要复制到eclipse\llugins 下面 还要复制到 \dropins下面才能用。

复制完毕,重启eclipse。还是不行,怀疑是我下的插件不能用,换回之前人家用的2.6.0版本,果然可以用了。

唉,看到解决办法了https://blog.csdn.net/a15700069691/article/details/84061433

直接用2.6.0这个版本,Hadoop的安装地点都设置好了。我这里不知道咋改,还是用这个帖子换成我的2.7.6的插件吧。

no,还是不行,看来确实是我下的这个插件不能用,还是用2.6.0的。

下面失败了,强烈怀疑还是这里出了问题,或许是版本不匹配,实在解决不了的话我就重新安装eclipse,然后用对应版本的插件好了)下一步:

window->preferences->hadoop map/reduce 指定win7上的hadoop根目录(即:$HADOOP_HOME)

写好了,然后

然后在Map/Reduce Locations 面板中,点击小象图标

点击查看原图

添加一个Location

怀疑我添加的这个压根没有连接到hadoop,里面文件不一样。按照那个帖子说的,如果删除的话会报权限不足的错误,我也没有报。而且下面只有这一个文件,我的HDFS里面没有这个文件,而且有两个空的文件夹,我尝试在这里面新建文件夹,一新建编译器就不响应了。而且我在这个电脑上压根没法连接到50070,用IP地址也不行,在win下面system32里改hostname也没有用。

我想是不是我的主机配hadoop失败了,因为我在win命令行下面写hadoop并没有反应,但是一个同学说压根不用在win安hadoop,但是俩帖子都写着要用。应该还是要用的吧。这里win下面写hadoop不成功的问题,后面再说

这个帖子下面有人说

我在网上找了很多资料,他们都提到如果想在本机直接提交MapReduce任务到远程服务器执行,必须要满足:
1、在本地windows上的hadoop_home/bin目录下有winutils.exe、hadoop.dll两个文件
2、远程服务器上的core-site.xml中fs.defaultFS配置项必须使用IP地址,而不是主机名或者localhost

https://cry615.iteye.com/blog/1985107 这个帖子也有说,要把几个配置文件里的localhost换成IP。我先试一下吧。顺便把hosts文件里的localhost和Ubuntu俩给删掉试一下。这里把mapred.job.tracker也填上。先关掉虚拟机和eclipse,重启看能成功不,其实我觉得还有那个bin文件的原因导致不能成功。

弄了之后没一点影响,还是老样子,看来这俩都无关紧要啊。同学说是外面连不上网的原因,还是网络配置的问题,那我还是好好查查这个吧。

https://blog.csdn.net/KissshotAHUB/article/details/83061666 这个帖子有说NAT的 原因,可以看一下。

https://blog.csdn.net/w405722907/article/details/82529753这个帖子说是网关的问题,先照这个试试,不行再用上面那个。

 

今天打开虚拟机,然后用Xshell远程连接,发现连接不上。按照以下顺序检查了一遍。

1.虚拟机网络连接采用的是NAT模式

2.虚拟机IP采用的是自动获取。

我的网关是192.168.29.2  IP:192.168.29.128   子网掩码:255.255.255.0

3.虚拟机ping主机,可以ping通

主机IP地址为:192.168.1.244 

我的主机的IP地址是  192.168.100.109

4.主机ping虚拟机,请求超时

这个我也是

5.原因分析

最大的原因可能是因为VMware Network Adapter VMnet8网络适配器IP设置不对,与虚拟机IP没在同一个网段。 
上面已经查看过虚拟机的IP、子网掩码和默认网关如下:

   IP:192.168.191.130

  1. 子网掩码:255.255.255.0

  2. 默认网关:192.168.191.2

我的  IP:192.168.29.128   子网掩码:255.255.255.0    网关是192.168.29.2

查看VMware Network Adapter VMnet8的IP是多少 
按win+R,输入cmd打开命令行窗口,输入ipconfig 
可以看到VMware Network Adapter VMnet8的IP,子网掩码和默认网关为:

  1. IP:192.168.1.25

  2. 子网掩码:255.255.255.0

  3. 默认网关:192.168.1.255

我的 IP 192.168.137.1    子网掩码 255.255.255.0   

显然与虚拟机的IP不在同一网段,我们修改VMware Network Adapter VMnet8的配置(或者改成自动获取也可以):

  1. IP:192.168.191.1

  2. 子网掩码:255.255.255.0

  3. 默认网关:192.168.191.2

改成了自动获取还是不行,那我就改成IP:192.168.29.133   子网掩码:255.255.255.0    网关是192.168.29.2

终于可以了!!!主机也可以连上50070了!eclipse也可以连上,可以查看HDFS了!

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值