简明Hadoop配置(3)——windows下eclipse连接虚拟机

在windows下配置,还需要当心IP地址和eclipse配置时的问题,这需要单独说一下。

在Ubuntu下eclipse新建hadoopIP直接填localhost就好,但是在windows下肯定是不行的,它需要连接到虚拟机中的hadoop,这里涉及到配置虚拟机Ubuntu的固定IP,还设计到telnet服务,比较麻烦,我们一个一个讲(所以说,还是推荐在Ubuntu下使用eclipse连接hadoop)

1. 配置虚拟机IP地址:

这一步,这个教程的简单粗暴就体现出来了,如何简单地固定虚拟机的IP地址呢。传统的固定IP的方法是在VMware设置完后,再在Ubuntu中设置获取IP的方法,这种方法当然结果一定正确,也最普适。这里有一篇文章讲到这种方法ubuntu在vmware中静态(固定)IP地址的设置方法

我觉得上面提到的方式太复杂了,没有照着做。
我的方法是:

在VMware中->编辑->虚拟网络编辑器->Vmnet8->修改最下面显示的子网IP,比如改为192.168.100.0 ->再修改DHCP设置中的开始IP和结束IP,比如开始IP改为192.168.100.128,结束IP改为192.168.100.129
附图
VMwareIP配置

这种方法的好处是不需要再在Ubuntu中设置什么了,Ubuntu如果联网,一定只能获取一个IP,按照这里的修改方法,IP为192.168.100.128。当然,缺点也是很明显的,所有VMware下的虚拟机都是这一个IP,如果要多开虚拟机的话一定会有问题。不过我们这是Hadoop伪分布式配置,只使用一个虚拟机,而且多个虚拟机我的笔记本电脑也受不了,所以这个问题目前不用考虑。

2. 配置talnet服务

  • windows连接Ubuntu需要talnet服务,windows默认可能是关闭这个服务的,我们需要首先到控制面板->程序与功能->左侧面板 找 启动或关闭windows功能->找到talnet客户端,打对勾开启功能

然后,Ubuntu默认也是没有这项功能的,需要我们自己安装

  • 安装openbsd-inetd ,运行命令:

sudo apt-get install openbsd-inetd

  • 然后是telnet,运行命令:

sudo apt-get install telnet

  • 配置,运行命令:

    sudo gedit /etc/inetd.conf

在打开的文件中加入以下一行

telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

 
 
  • 1
  • 2
  • 重启openbsd-inetd,运行命令:

    sudo /etc/init.d/openbsd-inetd restart

  • 使用命令netstat -a | grep telnet命令查看是否开启telnet
    telnet开启的情况

没有任何显示的话就是没开启,开启的话,在windows下命令行输入talnet 192.168.100.128会显示一个没有文字的黑框或者提示登陆,注意,这里的IP地址也是我们在VMvare中配置的
telnet IP
telnet 成功

3. Ubuntu配置hadoop的IP

这一步比较混乱,我试了好久,糊里糊涂找到一种可行的方法,却想不清楚缘由。

  1. 首先修改hosts文件,将VMware分配的固定的IP加入:这里,我直接将原先有的127.0.0.1 ubuntu改成了192.168.100.128 ubuntu,没有问题。
    配置Ubuntu的hosts
  2. 修改hadoop下的core-site.xml文件:
    这个文件中,我们曾配置过IP地址为localhost,现在,我们为了windows连接到hadoop,将其改为192.168.100.128,保存
    修改hadoop配置的IP
  3. 启动hadoop,在hadoop文件下打开命令行,输入sbin/start-all.sh

  4. 测试
    这个时候在ubuntu的命令行里输入netstat -a | grep tcp应该能看到192.168.100.128(我的对应主机名正是ubuntu)下有监听端口9000。在windows中也打开命令行telnet相应端口,输入telnet 192.168.100.128 9000,没有问题的话会像之前测试telnet功能一样只显示一个黑框
    这里写图片描述
    显示一个黑框

4. 配置windows下的eclipse

这里就和上一篇博文中提到的ubuntu下配置eclipse大同小异了
1. 首先,将hadoop-eclipse插件放入eclispe安装目录的plugins目录下
2. window->Preference->左侧Hadoop Map/Reduce->右侧browse ,选择Hadoop的安装目录
选择Hadoop安装目录
3. 然后在eclipse的window选项卡下找到show view->other->选择Map/Reduce Tool下的Map/Reduce Location即可。同时,这时,在Project Explorer中可以看到一个DFS Location的文件夹,Hadoop的HDFS文件系统的文件都会显示在这里,之后我们开发就不用使用命令行向HDFS中拷贝文件了,直接在这里拷贝就行
show view显示选项卡
4. 连接hadoop
首先确保Ubuntu的hadoop正常启动,然后在windows下的eclipse中新建一个hadoop,配置如图: User name处填写的是配置Hadoop时名称。lq
新建hadoop配置
window下特别的配置
IP输入配置好的(我的是192.168.100.128),端口是9001,另一个选项栏打对勾(选中是伪分布模式),端口是9000(到此位置和在Ubuntu下的配置相同)。然后另一个选项卡找hadoop.tem.dir,填Ubuntu下hadoop的临时文件目录,与core-site.xml中配置的是一样的。确认,等一会儿就会出现hadoop的文件夹了(速度比较慢)

至此,不出意外的话windows下eclipse就连接到虚拟机中的hadoop了。不得不说,两边开两个重型软件,我的电脑比较卡,还是在ubuntu下用eclipse感觉流畅一些。

运行时报错:

Exception in thread "main" org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=EXECUTE,inode="/tmp":hadoop:supergroup:drwx------

    atorg.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:234)

    atorg.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkTraverse(FSPermissionChecker.java:187)

    atorg.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:150)

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5433)

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5415)

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkOwner(FSNamesystem.java:5371)

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.setPermissionInt(FSNamesystem.java:1462)

    atorg.apache.hadoop.hdfs.server.namenode.FSNamesystem.setPermission(FSNamesystem.java:1443)

    atorg.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setPermission(NameNodeRpcServer.java:536)

    atorg.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.setPermission(ClientNamenodeProtocolServerSideTranslatorPB.java:368)

    atorg.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)

    atorg.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)

    atorg.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)

    atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1962)

    atorg.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1958)

    atjava.security.AccessController.doPrivileged(NativeMethod)

    atjavax.security.auth.Subject.doAs(Subject.java:415)

    atorg.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548)

    atorg.apache.hadoop.ipc.Server$Handler.run(Server.java:1956)

 

解决方法:

接着选择"本地用户和组",展开"用户",找到系统管理员"Administrator",修改其为"hadoop",操作结果如下图:

最后,把电脑进行"注销"或者"重启电脑",这样才能使管理员才能用这个名字。再次运行之后,显示正常,能连接到linux下的hadoop服务了,控制台信息如下显示:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值