Я пытаюсь записать данные в HDFS из структурированного потокового кода в Scala.
Но я не могу этого сделать из-за ошибки, которую не смог понять
В моем случае использования я читаю данные из темы Кафки, которую я хочу написать на HDFS в формате паркета. Все в моем сценарии работает хорошо без ошибок до сих пор.
Для этого я использую кластер Hadoop для разработки с 1 наменодом и 3 датододами.
В какой бы конфигурации я ни пытался, у меня одна и та же ошибка (2 узла данных, настройка одного узла и т. Д.)
вот ошибка:
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /test/metadata could only be replicated to 0 nodes instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are excluded in this operation.
вот код, который я использую для записи данных:
val query = lbcAutomationCastDf
.writeStream
.outputMode("append")
.format("parquet")
.queryName("lbcautomation")
.partitionBy("date_year", "date_month", "date_day")
.option("checkpointLocation", "hdfs://NAMENODE_IP:8020/test/")
.option("path", "hdfs://NAMENODE_I:8020/test/")
.start()
.awaitTermination()
Код spark scala работает правильно, потому что я могу записать данные на локальный диск сервера без каких-либо ошибок.
Я уже пытался отформатировать кластер hadoop, он ничего не меняет
Вы когда-нибудь имели дело с этим делом?
ОБНОВЛЕНИЯ :
- Ручная передача файла в HDFS на кластере, работа без проблем