hadoop全分布式环境的搭建

1.再搞一台机器,用相同的方法部署hadoop
2.修改/etc/hosts
把机器A设置为master namenode slave1 datanode1
把机器B设置为slave2 datanode2
修改conf/下masters和slaves两个配置文件,把localhost改成以下内容
masters文件:
master
slaves文件:

slave1
slave2
3.把之前三个xml配置文件中的localhost根据实际情况改成相关的机器名。

4.
把原来的hdfs tmp/目录删除,重建,chmod 755 -R
格式化
hadoop namenode -format

jps是个好命令
运行start-all.sh
接着发现启动失败,日志中提示:
14/02/11 18:23:12 INFO ipc.Server: IPC Server handler 9 on 9000: exiting
14/02/11 18:23:12 INFO ipc.Server: Stopping IPC Server listener on 9000
14/02/11 18:23:12 INFO ipc.Server: Stopping IPC Server Responder
14/02/11 18:23:12 INFO metrics.RpcInstrumentation: shut down
14/02/11 18:23:12 ERROR namenode.NameNode: java.net.ConnectException: Call to 10-7-2-132/127.0.0.1:9000 failed on connection exception: java.net.ConnectException: Connection refused
at org.apache.hadoop.ipc.Client.wrapException(Client.java:1142)
at org.apache.hadoop.ipc.Client.call(Client.java:1118)

一开始以为是网络连接问题,于是写了一个脚本teeport.py,发现机器之间连接的确不通。
但咨询了UCloud客户后发现,运行netstat -l,监听的是localhost:9000,是我程序写错了。不是
serversocket.bind((socket.gethostname(), port))
而是
serversocket.bind((’0.0.0.0′, port))
之后确认机器之间网络连接是好的。
之后再追查,咨询了一下STL的兄弟,发现是/etc/hosts里有一个多余项。
127.0.0.1 10-7-2-132
怀疑可能是bind了127.0.0.1,把它注释掉就可以了。
再重启,namenode启动成功,但datanode有一台机器启动不了,提示文件系统id不兼容。
把所有的hdfs/ tmp/数据目录删除,重建,这回是datanode启动不了,提示io exception
怀疑是目录权限问题,把hdfs/ tmp/递归改成755的权限就好。
再运行start-all.sh就可以在监控页面上看到hadoop集群和hdfs集群有两个node了

5.由于默认hostname在外网不可访问,需要修改/etc/hosts和/etc/hostname,并且运行sudo hostname new_hostname来生效
现在可以方便地跑hadoop任务了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值