完美解決python針對hdfs上傳和下載的問題
當我們使用python的hdfs包進行上傳和下載文件的時候,總會出現如下問題
requests.packages.urllib3.exceptions.NewConnectionError:<requests.packages.urllib3.connection.HTTPConnection object at 0x7fe87cc37c50>: Failed to establish a new connection: [Errno -2] Name or service not known
其實這主要是由于沒有將各個集群節點的ip映射到/etc/hosts文件中
修改/etc/hosts文件,將各個集群節點ip映射加上即可,如博主所示
vim /etc/hosts192.168.20.174 hadoop04192.168.20.173 hadoop03192.168.20.172 hadoop02192.168.20.171 hadoop01
補充知識:python上傳文件到hadoop異常問題
使用庫:pyhdfs
調用方法:
pyhdfs.HdfsClient(ip,port,user).copy_from_local()
pyhdfs.HdfsClient(ip,port,user).copy_to_local()
異常現象1如下圖:
異常現象2如下圖:
異常現象3如下圖:
原因分析:可以看出,以上都是連接成功了,但是上傳或者下載失敗了,造成這種現象的原因是
我這里連接的是name節點,端口50070,當調用copy_from_local()時,name節點會主動去連接data節點進行數據讀寫操作,而data節點端口50075沒有開啟,造成data節點連接超時,拋出異常
解決辦法:開啟data節點端口
以上這篇完美解決python針對hdfs上傳和下載的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。
相關文章:
