您好,登錄后才能下訂單哦!
執行如下命令,發現報錯
[hdfs@cdhm1 ~]$ hadoop distcp ftp://ftp01:ftppasswd@132.110.64.186/test hdfs:///user/data Error: java.net.SocketException: 網絡不可達 at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at org.apache.commons.net.SocketClient.connect(SocketClient.java:171) at org.apache.commons.net.SocketClient.connect(SocketClient.java:192) at org.apache.hadoop.fs.ftp.FTPFileSystem.connect(FTPFileSystem.java:133) at org.apache.hadoop.fs.ftp.FTPFileSystem.getFileStatus(FTPFileSystem.java:405) at org.apache.hadoop.tools.mapred.CopyMapper.map(CopyMapper.java:218) at org.apache.hadoop.tools.mapred.CopyMapper.map(CopyMapper.java:50) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1671) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
這是為什么呢?命令應該的正確的。
查網絡,正常,ftp也能正常傳輸。
防火墻,selinux都已經關閉,但就是執行報錯。
百思不得其解。
查了好多資料,才發現:
原來,hadoop官方不提供ftp接口!
只有個人開發的工具,感覺安裝挺麻煩,也許還會有bug,參考資料鏈接:
http://www.linuxidc.com/Linux/2013-01/78302.htm
我就沒安裝了,現在是先把文件從ftp下載到本地,在通過
[hdfs@cdhm1 ~]$ hadoop fs -put test /user/data
上傳到hadoop中,雖然麻煩點,但勝在穩定,后期也可通過腳本來簡化步驟。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。