1.Hadoop本地开发,9000端口拒绝访问
解决
将hosts中的主机名hadoop001指向内网ip如192.168.0.3
而不是127.0.0.1
原理参考博客: https://blog.youkuaiyun.com/yjc_1111/article/details/53817750
[hadoop@hadoop001 data]$ vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 127.0.0.1 hadoop001
192.168.0.3 hadoop001
2.外网无法访问云主机HDFS文件系统&外网无法访问云主机datanode
报错:
Failed to connect to /127.0.0.1:50010 for block BP-***, add to deadNodes and continue.
解决办法:
在hdfs-site.xml中增加dfs.datanode.use.datanode.hostname属性,表示datanode之间的通信也通过域名方式。
在本地hdfs-site.xml中添加
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>true</value>
</property>
参考博文:https://my.oschina.net/gordonnemo/blog/3017724
3.京东云修改Hostname,Centos7修改Hostname
使用命令 hostnamectl set-hostname 主机名主机名来修改,修改完毕后重新 SHELL 登录即可。
# 修改hostname并退出
[root@JD ~]# hostnamectl set-hostname hadoop001
[root@JD ~]# exit
logout
# 再次登陆可以发现修改成功
Welcome to JDCLOUD Elastic Compute Service
[root@hadoop001 ~]#
参考:https://blog.youkuaiyun.com/SUDDEV/article/details/100069638
4.各版本winutils.exe和hadoop.dll下载
GitHub: https://github.com/4ttty/winutils
下载解压,并将解压的bin目录配置到本地的%HADOOP_HOME%变量
如果还报错再手动加载dll
static {
System.load("D:/Hadoop/hadoop-2.7.3/bin/hadoop.dll");
}