Невозможно подключиться к Hadoop NameNode по адресу 192.168.99.100:50070 из-за тайм-аута соединения при попытке прочитатPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно подключиться к Hadoop NameNode по адресу 192.168.99.100:50070 из-за тайм-аута соединения при попытке прочитат

Сообщение Anonymous »

Я столкнулся с ошибкой ConnectTimeout при попытке подключиться к экземпляру Hadoop HDFS, работающему внутри контейнера Docker, из моего скрипта Python. Предполагается, что сценарий читает файл из HDFS с использованием WebHDFS, но время ожидания истекает при попытке установить соединение с NameNode. Вот сообщение об ошибке, которое я вижу:

Код: Выделить всё

requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='192.168.99.100', port=50070): Max retries exceeded with url: /webhdfs/v1/user/hadoop/real_estate_data/Real_Estate_Sales.csv?user.name=modhv&offset=0&op=OPEN (Caused by ConnectTimeoutError(, 'Connection to 192.168.99.100 timed out. (connect timeout=None)'))
Среда:
Python Версия: 3.12
Библиотеки: запросы, urllib3, hdfs, pandas
Образ Docker: suhothayan/hadoop-spark-pig-hive :2.9.2
Версия Docker: 4.37.1
ОС: Windows 11
Предпринятые шаги:
Я запускаю кластер Hadoop внутри контейнера Docker и пытаюсь получить доступ к HDFS через WebHDFS.
Контейнер работает со следующими открытыми портами:
50070 для NameNode
50075 для DataNode
Я подтвердил, что службы Hadoop (NameNode и DataNode) запущены и работают внутри контейнера.
Я использовал IP-адрес Docker 172.17.0.2 и даже localhost в сценарии Python для подключения к HDFS.
При попытке запустить сценарий Python постоянно происходит сбой с ошибкой ConnectTimeoutError.при использовании https://localhost/50070 и https://172.17. 0.2/50070 в браузере все в порядке. Код:

Код: Выделить всё

from hdfs import InsecureClient
import pandas as pd

# Connect to HDFS using the container's IP address
client = InsecureClient('http://localhost:50070')  # Use the container IP

# Correct HDFS file path
hdfs_file_path = '/user/hadoop/real_estate_data/Real_Estate_Sales.csv'

# Read the file from HDFS
with client.read(hdfs_file_path) as reader:
df = pd.read_csv(reader)

# Display the first few rows of the DataFrame
print(df.head())

Сообщение об ошибке:

Код: Выделить всё

requests.exceptions.ConnectTimeout: HTTPConnectionPool(host='192.168.99.100', port=50070): Max retries exceeded with url: /webhdfs/v1/user/hadoop/real_estate_data/Real_Estate_Sales.csv?user.name=modhv&offset=0&op=OPEN (Caused by ConnectTimeoutError(, 'Connection to 192.168.99.100 timed out. (connect timeout=None)'))
Устранение неполадок выполнено:
1. Службы Hadoop: я проверил, что HDFS и YARN работают внутри контейнера Docker.
2. Доступ к портам: порт 50070 и 50075 правильно отображаются и сопоставляются с хост-компьютером через Docker.
3. Брандмауэр: Брандмауэр Windows временно отключен для проверки соединения.
/>4.Тестовое соединение: я пытался получить доступ к веб-интерфейсу NameNode из браузера по адресу http://192.168.99.100:50070, но время ожидания истекло.
5.Сетевой режим Docker: я также проверил сетевой режим контейнера и настроен на мост. Я попытался использовать IP-адрес виртуальной машины Docker (192.168.99.100) для доступа к контейнеру.

Подробнее здесь: https://stackoverflow.com/questions/793 ... nnection-t
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»