Я пробовал разные docker изображений для контейнеров Had oop, но ни один из них не работает, когда я пытаюсь записать файлы в HDFS. Я всегда получаю сообщение об ошибке:
Вызвано: org. apache .had oop .ip c .RemoteException (java .io.IOException): File / t / _porary / 0 / _porary / try_20200528153700_0001_m_000006_7 / part-00006-34c8bc6d-68a3-4177-bfbf-5f225b28c157-c000.snappy.parquet можно было реплицировать только на 0 узлов вместо minReplication (= 1). В этой операции запущено 3 узла данных, и 3 узла (узлов) исключены.
Что я пробовал до сих пор?
- Форматированный Namenode, как указано в аналогичных вопросы.
- Открыты необходимые порты, 8088, 50070, 9000, 50010.
- В Datanode уже достаточно места.
- Обновлен файл хоста, 127.0.0.1 сопоставлено с именем контейнера .
Я запускаю приложение на своем локальном компьютере, Docker контейнеры также работают на локальном.
После создания базового c Dataframe, я пытаюсь написать .
df.write.save('hdfs://hadoop-master:9000/t', format='parquet', mode='append'
Потребовалось почти 2 минуты, затем выдает ошибку.
WebUI в порядке. Я могу поместить файл в HDFS с командами в контейнере.
Мне кажется, что проблема с сетью / подключением, но я не мог выяснить.