我正在构建一个 docker 映像以在本地运行 zeppelin 或 spark-shell,以针对使用 YARN 的生产 Hadoop 集群。编辑:环境是 macOS
我可以很好地执行作业或 spark-shell,但是当我尝试访问 YARN 上的Tracking URL同时作业正在运行时,它会将 YARN-UI 挂起 10 分钟。YARN 仍在工作,如果我通过 ssh 连接,我可以执行 yarn 命令。
如果我不访问 SparkUI(直接或通过 YARN),则不会发生任何事情。作业被执行并且 YARN-UI 没有被挂起。
更多信息:
本地,在 Docker 上:Spark 2.1.2、Hadoop 2.6.0-cdh5.4.3
生产:Spark 2.1.0、Hadoop 2.6.0-cdh5.4.3
如果我在本地执行它(--master local[*]),它可以工作,我可以通过 4040 连接到 SparkUI。
火花配置:
spark.driver.bindAddress 172.17.0.2 #docker_eth0_ip spark.driver.host 192.168.XXX.XXX #local_ip spark.driver.port 5001 spark.ui.port 4040 spark.blockManager.port 5003
是的,ApplicationMaster 和节点对我的本地 SparkUI 或驱动程序具有可见性(telnet 测试)
正如我所说,我可以执行作业,然后 docker 公开端口并且它的绑定正在工作。一些日志证明了这一点:
INFO ApplicationMaster: Driver now available: 192.168.XXX.XXX:5001 INFO TransportClientFactory: Successfully created connection to /192.168.XXX.XXX:5001 after 65 ms (0 ms spent in bootstraps) INFO ApplicationMaster$AMEndpoint: Add WebUI Filter. AddWebUIFilter(org.apache.hadoop.yarn.server.webproxy.amfilter.AmIpFilter,Map(PROXY_HOSTS -> jobtracker.hadoop, PROXY_URI_BASES -> http://jobtracker.hadoop:8088/proxy/application_000_000),/proxy/application_000_000)
一些想法或我可以在哪里查看正在发生的事情?