记录docker开发hadoop,解决bug Datanode denied communication with namenode because hostname cannot be
生活随笔
收集整理的這篇文章主要介紹了
记录docker开发hadoop,解决bug Datanode denied communication with namenode because hostname cannot be
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
使用docker快速開(kāi)發(fā)了一個(gè)單節(jié)點(diǎn)的hadoop
首先去docker hub上搜索hadoop
使用hadoop3.1.3的TAG即可,分別拉去datanode和namenode的鏡像到本地
官方提供了修改配置文件的方法:
拉取完成后分別執(zhí)行如下命令:
docker run -d \ --name hadoopmaster \ --hostname hadoopmaster \ -e CLUSTER_NAME=xxx \ #該鏡像需要填寫(xiě)cluster_name才能創(chuàng)建 -e CORE_CONF_fs_defaultFS=hdfs://hadoopmaster:8020 \ #修改core-site.xml 的配置項(xiàng)(這里要和datanode對(duì)應(yīng)一樣,才能讓datanode注冊(cè)到該namenode上) -e HDFS_CONF_dfs_namenode_datanode_registration_ip___hostname___check=false \ (此添加項(xiàng)改為false,否則會(huì)報(bào)Datanode denied communication with namenode because hostname cannot xxx 的異常) -e CORE_CONF_hadoop_tmp_dir=/hadoop/dfs/data -v -e HDFS_CONF_dfs_permissions_enabled=false \(將權(quán)限關(guān)閉,否則hbase連接時(shí)會(huì)報(bào)寫(xiě)入權(quán)限問(wèn)題) /home/xxx/hadoop1/name:/hadoop/dfs/data \ -P -p 8020:8020 你的imageID(namenode) docker run -d --name datanode01 --hostname datanode01 --link hadoopmaster(必須加上才能通信到上面創(chuàng)建的鏡像) -e CORE_CONF_fs_defaultFS=hdfs://hadoopmaster:8020 -e CORE_CONF_hadoop_tmp_dir=/hadoop/dfs/data \ -e HDFS_CONF_dfs_namenode_datanode_registration_ip___hostname___check=false \ -e HDFS_CONF_dfs_permissions_enabled=false \(將權(quán)限關(guān)閉,否則hbase連接時(shí)會(huì)報(bào)寫(xiě)入權(quán)限問(wèn)題) \ -v /home/xxx/hadoop1/data1:/hadoop/dfs/data -P 你的imageID(datanode)注:最開(kāi)始啟動(dòng)時(shí)會(huì)報(bào)出域名解析問(wèn)題(通過(guò)docker logs 鏡像id查看)
由于配置hadoop沒(méi)有使用host+hostname的配置方式,所以hadoop無(wú)法解析DataNode,從而注冊(cè)出了問(wèn)題。
解決方法是在hdfs-site.xml中添加,也就是上面的響應(yīng)-e 修改配置參數(shù)
這里還要注意一點(diǎn)沒(méi)有改workers文件是因?yàn)橹苯訂螁?dòng),不是群起,只要fs_defaultFS一樣即可以注冊(cè)上
總結(jié)
以上是生活随笔為你收集整理的记录docker开发hadoop,解决bug Datanode denied communication with namenode because hostname cannot be的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: tomcat 4.0头文件及maven导
- 下一篇: hbase启动报错Permission