搭建hadoop完全分布式(hadoop2.2)

3 篇文章 0 订阅
2 篇文章 0 订阅

主要步骤:

1、以搭建好的伪分布式环境为基础,克隆两个相同的虚拟机作为slaves hadoop1,hadoop2

本来想克隆3个,但是虚拟机同时开4个直接卡死,于是就到了1个master+2个slaves

2、修改克隆的两台虚拟机主机名 hadoop1、hadoop2 

3、保证hadoopm与hadoop1、hadoop2建立ssh无加密连接 

我的环境不知道为什么不需要向各自的.ssh里添加相应公钥就能保证相互通信。

如果小伙伴不可以直接通信的话,一般都要进行公钥的拷贝,详细参考链接http://www.aboutyun.com/thread-7703-1-1.html

4、@hadoopm 修改hadoopm里的/etc/hadoop/slaves 添加hadoop1、hadoop2(伪分布式的区别就是在这里,slaves文件里面是localhost,表示本机即使namenode,也是datanode。)

5、@hadoopm 格式化namenode,启动hadoopm

6、在hadoop1和hadoop2中输入jps,检测是否建立node


可能遇到的问题

1、datanode retry connect to server

删除/etc/hosts 里的127.0.0.1 hadoopm ,否则slave节点无法通过ip 192.168.44.131 解析发送datanode给master节点

2、datanode incompatible clusterid in namenode and datanode

在hdfs-site.xml里面配置了namenode和datanode的dir,查看/hdfs/namenode 和datanode下面的version文件,其中clusterid不同。将slave节点的datanode-clusterid

改成与master节点的-namenode-clusterid相同

3、点击hdfs首页的browse the filesystem,发现无法访问

是因为所要访问的slave节点IP地址是hadoop集群里面的局域网地址,所以外网无法访问。可直接在局域网内访问,或需要在客户端的hosts文件里加入hadoop集群的ip地址与对应的主机名,这样就能解决问题了。

4、启动Hadoop集群测,发现三台DataNode只启动成功了两台,未启动成功的那一台日志中出现了下列异常:org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.protocol.UnregisteredD
atanodeException: Data node 192.168.56.102:50010 is attempting to report storage ID DS-834248845-192.168.56.102-50010-1415256060466. Node 192.168.56.103:50010 is expected to serve this storage.

此异常是因为,两台DataNode的storageID出现了冲突,应该是因为我直接备份安装的原因吧。
解决方法:直接将出现异常的那台slaves机器的data目录删除

PS:默认的数据存放目录如下:hdfs-site.xml文件中

dfs.name.dir             /hdfs/namenode
dfs.data.dir             /hdfs/datanode


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值