关于docker部署flink集成hadoop的yarn,请教个问题
flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
这里我是分开部署的,单独启动的flink和hadoop
hadoop配置文件
yarn-site.xml
hdfs-site.xml
core-site.xml
启动服务
启动命令
telnet端口8032是通的
flink
flink配置文件
启动命令
关于docker部署flink集成hadoop的yarn,请教个问题
flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
这里我是分开部署的,单独启动的flink和hadoop
hadoop配置文件
yarn-site.xml
hdfs-site.xml
core-site.xml
启动服务
启动命令
telnet端口8032是通的
flink
flink配置文件
启动命令
引自免费微信小程序:皆我百晓生
针对您在部署Flink集成Hadoop YARN过程中遇到的问题,根据您提供的日志信息、配置文件以及启动命令,我推测问题可能出在以下几个方面。以下是我为您整理的详细排查与解决步骤:
YARN ResourceManager地址配置:
在yarn-site.xml
中,您将yarn.resourcemanager.hostname
设置为hadoop-master
,但在启动Flink时,您使用了IP地址172.18.0.2
作为resourceManagerAddress
。请确保两者保持一致。若hadoop-master
是主机名且能被正确解析为IP地址(即172.18.0.2
),则无需更改;否则,请将Flink配置中的resourceManagerAddress
改为hadoop-master
。
Flink配置文件路径映射:
您在启动Flink JobManager的Docker容器时,挂载了/flink/conf/config.yaml
到/opt/flink/conf/config.yaml
,但您未提供config.yaml
的具体内容。请确保Flink配置文件中resourceManagerAddress
和resourceManagerPort
与YARN ResourceManager的实际地址和端口相匹配。如果使用的是config.yaml
而非flink-conf.yaml
,请确保Flink容器内部能够识别并正确读取此配置文件。
网络隔离与连接问题:
您提到telnet 192.168.137.136 8032
是通的,但日志中显示Flink试图连接的ResourceManager地址却是0.0.0.0:8032
。这可能是由于网络配置不正确导致的。确保Flink容器与YARN集群处于同一网络(您已使用--net hadoop
参数),并确保Flink容器内的应用能正确解析hadoop-master
或172.18.0.2
。
Hadoop Classpath设置:
您在启动Flink JobManager时设置了环境变量HADOOP_CLASSPATH=hadoop classpath
,但此处可能存在语法错误。请确认Hadoop的类路径是否正确设置,可以尝试修改为如下形式:
-e HADOOP_CLASSPATH=$(hadoop classpath)
Flink与Hadoop版本兼容性:
确保您使用的Flink版本与Hadoop版本兼容。您提到使用的是flink:1.19.0-scala_2.12
镜像,并挂载了flink-shaded-hadoop-2-uber-2.8.3-10.0.jar
。请查阅Flink官方文档,确认该版本是否支持您所使用的Hadoop版本(从日志判断可能是Hadoop 2.x系列)。
根据上述分析,您可以按照以下方式调整您的启动命令:
docker run \
-itd \
--net hadoop \
--name=jobmanager \
--privileged=true \
--hostname=jobmanager \
--restart always \
--link master:hadoop \
-p 8081:8081 \
-e HADOOP_CONF_DIR=/hadoop/etc/hadoop \
-e FLINK_PROPERTIES="jobmanager.rpc.address:jobmanager" \
-e HADOOP_CLASSPATH=$(hadoop classpath) \
-v/flink/conf/config.yaml:/opt/flink/conf/config.yaml \
-v/flink/lib/flink-shaded-hadoop-2-uber-2.8.3-10.0.jar:/opt/flink/lib/flink-shaded-hadoop-2-uber-2.8.3-10.0.jar \
flink:1.19.0-scala_2.12 jobmanager
同时,请确保config.yaml
中的resourceManagerAddress
和resourceManagerPort
配置正确,与YARN ResourceManager实际地址和端口一致。
执行调整后的启动命令后,再尝试启动Flink YARN会话,观察日志输出,看是否解决了连接问题。如果问题仍然存在,请继续检查网络配置、防火墙规则等可能影响通信的因素。
希望以上建议能帮助您解决当前问题。如果您有进一步的疑问或需要更详细的指导,请随时告诉我。