因为工作需求,需要我这边实现一个大文件上传到HDFS的功能,因为本机无法连接公司内网的集群,无奈只好自己动手搭建一个单节点的Hadoop来满足工作的需求。下面简单介绍下安装过程中遇到的坑
我的机器是阿里云的最低配
安装文件:hadoop-2.6.0.tar.gz
安装过程也不赘述,请参考:http://www.powerxing.com/install-hadoop-in-centos/
按部就班的安装完成之后,执行以下命令:
cd /usr/local/hadoop/sbin
sh start-all.sh
jps
一个都不能少
我第一次安装的时候发现DataNode节点没有起来,查看日志报错如下
主要是namenode的clusterID 和datanode 的clusterID 不一致导致
解决方法:
cd /tmp/hadoop-hadoop/dfs/data/current
vi VERSION
将datanode 的clusterID更改为 namenode的clusterID 保存退出 重启即可
解决完这个问题之后,我在本机尝试通过Java API连接 发现报错 failed on connection exception
查了一下解决的方法,大致如下
首先 telnet serever port
我发现我无法telnet通hadoop服务的端口
然后就到hadoop 的/usr/local/hadoop/etc/hadoop/core-site.xml 下
将图中的地址改为服务的外网地址 如此问题就得到解决了
在连接到hdfs之后, 没有写权限
执行命令 hadoop fs -chmod 777 /user/hadoop
后面的/user/hadoop这个路径为HDFS中的文件路
之后问题解决