因为工作需求,需要我这边实现一个大文件上传到HDFS的功能,因为本机无法连接公司内网的集群,无奈只好自己动手搭建一个单节点的Hadoop来满足工作的需求。下面简单介绍下安装过程中遇到的坑我的机器是阿里云的最低配
安装文件:hadoop-2.6.0.tar.gz安装过程也不赘述,请参考:http://www.powerxing.com/install-hadoop-in-centos/按部就班的安装完成之后,执行以下命令:cd /usr/local/hadoop/sbinsh start-all.shjps
一个都不能少我第一次安装的时候发现DataNode节点没有起来,查看日志报错如下
主要是namenode的clusterID 和datanode 的clusterID 不一致导致解决方法:cd /tmp/hadoop-hadoop/dfs/data/currentvi 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中的文件路之后问题解决
转载于:https://www.cnblogs.com/nixiaocang/p/6493221.html
相关资源:java操作Hadoop源码之HDFS Java API操作-创建目录