Загрузите удаленные файлы HDFS на мой локальный Mac
Мне нужно загрузить файлы из файловой системы HDFS на мой локальный компьютер Mac:
import os
import pyhdfs
os.environ["http_proxy"] = "http://host:port"
os.environ["https_proxy"] = "http://host:port"
os.environ["no_proxy"] = "host_x,host_y,host_x,machine_name1,machine_name2,machine_name3"
client = pyhdfs.HdfsClient(hosts='host_x,host_y,host_z', user_name='username')
Я получил ожидаемый желаемый результат, запустивclient.get_home_directory()
,client.listdir('/some_remote_hadoop_directory/')
и .client.exists("/some_remote_hadoop_directory/file")
вернулсяTrue
что тоже было хорошим знаком. Тем не менее, командаclient.copy_to_local("/some_remote_hadoop_directory/file", "/my_local_mac_directory/file")
дал мне следующие ошибки:
-
gaierror: [Errno 8] nodename nor servname provided, or not known
-
NewConnectionError: <urllib3.connection.HTTPConnection object at 0x1058b47c0>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known
-
MaxRetryError: HTTPConnectionPool(host='host', port=port): Max retries exceeded with url: some_hadoop_url (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x1058b47c0>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))
-
ConnectionError: HTTPConnectionPool(host='host', port=port): Max retries exceeded with url: some_hadoop_url (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x1058b47c0>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known'))
Затем я проверил в Интернете решение и попробовал его (т.е. изменить/etc/hosts
из /questions/26683283/gaierror-errno-8-imya-uzla-ili-imya-servera-ukazanyi-ili-ne-izvestnyi-v-macos-sierra/26683288#26683288), которым многие поделились на разных платформах. Однако это не сработало для меня. Казалось, что мой Mac может «разговаривать» с удаленной машиной, но не может получить от нее данные. Я повернулся, чтобы настроить свой Mac, включивSystem Preferences -> Sharing -> File Sharing
и изменено на то, что все могут читать и писать, но все равно не удалось. Я знаю, что это должно было быть легко, но до сих пор понятия не имел, чего на самом деле не хватает. Я сделал это как обходной путь для моего предыдущего вопроса: как читать удаленные паркеты HDFS из моего локального PySpark?