在搭建了Hadoop集群后,可以用shell命令进行文件的新建和上传,自己在上传的时候遇到了问题如下:
21/06/09 15:16:41 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.net.NoRouteToHostEx
put: File /test/test2.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).
java.net.NoRouteToHostException: No route to host
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:1537)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1313)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1266)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:449)
16/07/27 01:29:26 INFO hdfs.DFSClient: Abandoning BP-555863411-172.16.95.100-
........
There are 2 datanode(s) running and 2 node(s) are excluded in this operation.
主要解决方案:
在namenode和datanode上分别运行
[root@hadoop2 ~]# service firewalld stop
运行结果:
Redirecting to /bin/systemctl stop firewalld.service
然后就可以成功上传文本文件了
1.在集群上新建一个文件:
[root@hadoop1 ~]hadoop fs -mkdir /test/```
2.在本地书写一个文本文件:
[root@hadoop1 ~]cd /home/data/test2/
[root@hadoop1 ~]vim test2.txt
打开文本文件:
hadoop
hdfs
hadoop
按esc退出,输入:wq保存;
3.将文本文件上传到集群上:
[root@hadoop1 ~]hadoop fs -put /home/data/test2/test2.txt /test/
4.查看主节点50070端口,查看数据文件是否上传成功;
已经上传上去,接下来进行初级RDD编程完成词频统计。
有问题在下方留言讨论哦~