Как подключиться через airflow к hdfs, развернутой в docker?
Я развернул этот проект https://github.com/Marcel-Jan/docker-hadoop-spark
Выполнил инструкцию "Quick Start Spark (PySpark)" в readme и получил датафрейм, все как надо
Мне нужно сделать тоже самое, но через airflow. Я подключаюсь к спарк сессии и все ок:
spark = (SparkSession
.builder
# .master('local')
.master("spark://127.0.0.1:7077")
.appName("Test")
.getOrCreate())
Но когда пытаюсь достучаться до hadoop, получаю ошибку
Call From SPB-379/127.0.1.1 to namenode:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
Я понимаю что airflow не видит ip "namenode" и пробовал выполнить такую команду, чтобы получить полный адрес хадупа- docker inspect и вывод
"Networks": {
"docker-hadoop-spark_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"namenode",
"namenode",
"8a06dd5cca57"
],
"NetworkID": "f57164de9f26ef3a1a33c4ee46b24903c0824009ecfeda06f7f45ba9206f6a0a",
"EndpointID": "6bf662634c9ef925dc435d8a28364b045ef8b572e22f5c5316257ada2a52cc0d",
"Gateway": "172.19.0.1",
"IPAddress": "172.19.0.9",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:13:00:09",
"DriverOpts": null
}
Но этот ipaddress тоже выдает ошибку. Я не уверен, что двигаюсь в правильном направлении, поэтому буду рад любому фидбеку:)
Ответы (1 шт):
Каким образом развернут Airflow? Если также в контейнере для Docker и находится в той же сети, что и контейнеры с Hadoop, то последний должен быть виден по имени (namenode).