本文主要是介绍单台服务器(非集群节点)向Hadoop集群传输数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
背景:
有一台服务器A和一个hadoop集群B, 集群B的namenode地址为 192.168.0.2,A与B的网络是互通的,但是A不属于这个集群的节点。现在需要从服务器A上把 /data/aaa.txt文件上传到集群hdfs的 /data_tmp目录下
解决方法:
使用 hadoop fs -put /data/aaa.txt hdfs://ip:port/hdfs_path 方法进行上传
1.在服务器A上安装hadoop,解压使用可执行文件即可,无需进行额外配置(注意尽量与集群hadoop大版本一致)
下载地址2.*版本:Index of /hadoop/common/hadoop-2.10.2
下载地址3.*版本:Index of /hadoop/common/hadoop-3.2.4
注意下载hadoop-版本号.tar.gz的几百兆的文件
2.上传至服务器目录 /data/目录,并进行解压
cd /data
tar -zxvf hadoop-2.10.2.tar.gz# 修改文件夹名称
mv hadoop-2.10.2 hadoop
3.执行上述命令
/data/hadoop/bin/hadoop fs -put /data/aaa.txt hdfs://192.168.0.2:9000/data_tmp
注意上述的端口9000是默认端口,可在hadoop的web页面看到端口号
如果报错:put: Connection refused from 192.0.1.3, because it is not in the white list. 是需要把服务器A的IP加到能够访问集群namenode的白名单里面
如果报错:put: Call From 192.168.0.3 to 192.168.0.2:9870 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.oionRefused 这可能是因为用的是9870端口,端口错误,需改为9000或者其他正确的端口
这篇关于单台服务器(非集群节点)向Hadoop集群传输数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!