eclipse远程连接Hadoop遇到的一些问题

eclipse远程连接Hadoop遇到的一些问题


网上的教程很多,但是大部分并不详细,省略了很多过程,导致配置不成功。目前看到的最好的一篇配置博客是最详细云服务器Centos7下搭建Hadoop伪分布式集群(防各种坑)

在这里对这篇博客进行一些补充(也算是自己踩的几个坑)

环境:hadoop-2.7.5、jdk-1.8、阿里云服务器、伪分布式、eclipse远程连接

1.JDK版本

写下本文的时候,Apache官网已经可以下载jdk14了.如果使用该版本的jdk,那么在配置好Hadoop相关文件后,对HDFS进行操作,如:
hdfs dfs -ls /
这样的查看命令,会出现各种warning.虽然不影响使用,但是每次运行命令的时候看起来会很烦,所以最好还是使用JDK8吧。

2.DataNode无法启动

在运行start-dfs.sh后,发现NameNode和SecondaryNameNode都启动了,但是DataNode却启动不了。

这是因为DataNode与NameNode的clusterID不同导致的该问题。需要将./hadoop/tmp/dfs/name/current/VERSION中NameNode的clusterID复制到./hadoop/tmp/dfs/data/current/VERSION中的clusterID,再次启动,就可以看到DataNode也启动了。

也可以将./hadoop/tmp/dfs中的文件都删除(name、data等)然后hadoop namenode -format再启动.

ps.这些错误信息是可以在log中看到的,log的位置在./hadoop/tmp/dfs下的.log文件。也可以在远程使用浏览器(使用ip+50070端口号连接)在Utilities-Logs中可以阅读这些log文件。

3.NameNode的位置

需要注意的是,在配置core-site.xml时,

<name>fs.defaultFS</name> 
	<value>hdfs://yourname:9000</value>
</property>

这里的yourname是阿里云的私网ip,不可以设置成localhost或127.0.0.1.

4.上传或下载的文件为0kb

这有很多原因。

a.最详细云服务器Centos7下搭建Hadoop伪分布式集群(防各种坑)中描述了一种,此处不再赘述.

b.防火墙没有开放.这里的防火墙,不仅仅要开放NameNode节点的防火墙,更需要开放DataNode节点的防火墙.因为客户端在访问NameNode后,NameNode会返回相应的DataNode节点的地址,如果DataNode节点的地址没有开放的话,则客户端无法访问到DataNode节点.

c.本机无法解析DataNode节点的地址.由于NameNode返回的是DataNode节点的私网ip,所以客户端是无法解析该ip的.为了解决这个问题,首先需要在配置hdfs-site.xml的时候,如下设置(参考博客中已经这样配置了)

<property>
      <name>dfs.client.use.datanode.hostname</name>
      <value>true</value>
</property>

这样的话,NameNode返回给客户端的ip就不是私网ip,而是DataNode节点的主机名.此时,需要在客户端中配置C:\Windows\System32\drivers\etc\hosts中添加一行为:
DataNode公网ip地址 DataNode主机名
配置好了后,重启电脑或命令行里用

ipconfig /displaydns
ipconfig /flushdns

刷新所有dns内容.这样就可以让客户端解析出DataNode的公网ip并访问了.

d.端口没有开放.客户端访问NameNode是通过访问NameNode节点的9000端口,但是在于DataNode进行传输的时候,访问的是DataNode节点的50010端口.如果是在阿里云上,需要设置50010的白名单,否则也将无法上传/下载文件.

其他问题可以通过log或者wireshark抓包自行分析.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值