这些将有什么区别和用途?
如何在Spark独立集群中将计算机修复为驱动程序?
ApplicationMaster 通过 spark.driver.host 连接到 spark Driver
spark 驱动程序绑定到客户端机器上的 bindAddress
.config('spark.driver.port','50243')
Run Code Online (Sandbox Code Playgroud)
然后netstat -ano在窗户上
TCP 172.18.1.194:50243 0.0.0.0:0 LISTENING 15332
TCP 172.18.1.194:50243 172.18.7.122:54451 ESTABLISHED 15332
TCP 172.18.1.194:50243 172.18.7.124:37412 ESTABLISHED 15332
TCP 172.18.1.194:50243 172.18.7.142:41887 ESTABLISHED 15332
TCP [::]:4040 [::]:0 LISTENING 15332
Run Code Online (Sandbox Code Playgroud)
集群172.18.7.1xx中的节点与我的开发机器在同一网络中,172.181.1.194因为我的网络掩码是255.255.248.0
.config('spark.driver.host','192.168.132.1')
Run Code Online (Sandbox Code Playgroud)
然后 netstat -ano
TCP 192.168.132.1:58555 0.0.0.0:0 LISTENING 9480
TCP 192.168.132.1:58641 0.0.0.0:0 LISTENING 9480
TCP [::]:4040 [::]:0 LISTENING 9480
Run Code Online (Sandbox Code Playgroud)
但是ApplicationMaster无法连接并报错
Caused by: java.net.NoRouteToHostException: No route to host
Run Code Online (Sandbox Code Playgroud)
因为这个ip是我开发机器上的VM桥
.config('spark.driver.host','172.18.1.194')
.config('spark.driver.bindAddress','192.168.132.1')
Run Code Online (Sandbox Code Playgroud)
然后 netstat -ano
TCP 172.18.1.194:63937 172.18.7.101:8032 ESTABLISHED 17412
TCP 172.18.1.194:63940 172.18.7.102:9000 ESTABLISHED 17412
TCP 172.18.1.194:63952 172.18.7.121:50010 ESTABLISHED 17412
TCP 192.168.132.1:63923 0.0.0.0:0 LISTENING 17412
TCP [::]:4040 [::]:0 LISTENING 17412
Run Code Online (Sandbox Code Playgroud)
在详细解释之前,只有这三个相关的conf变量:
spark.driver.hostspark.driver.portspark.driver.bindAddress有否像变量spark.driver.hostname或spark.local.ip。但有IS称为环境变量SPARK_LOCAL_IP
在解释变量之前,首先我们要了解申请提交过程
电脑的主要作用:
每个应用程序都有一个ApplicationMaster,负责处理来自集群的资源请求和作业(阶段)的状态监控
ApplicationMaster 总是在集群中。
火花驱动器的位置
假设我们正在谈论客户端模式
spark应用可以从开发机提交,开发机既是应用的客户端,也可以是集群的客户端。
spark 应用程序也可以从集群内的节点(主节点或工作节点或只是没有资源管理器角色的特定机器)提交
客户端机器可能与集群不在同一个子网中,这是这些变量试图处理的一种情况。想想您的互联网连接,通常不可能像 google.com 一样从全球任何地方访问您的笔记本电脑。
在申请提交过程开始时,客户端的spark-submit会将必要的文件上传到spark master或yarn,并协商资源请求。这一步客户端连接到集群,集群地址就是客户端尝试连接的目的地址。
然后 ApplicationMaster 在分配的资源上启动。
ApplicationMaster 分配的资源默认是随机的,不能由这些变量控制。如果您对此感到好奇,它由集群的调度程序控制。
然后 ApplicationMaster 尝试将BACK连接到 spark Driver。这是这些 conf 变量生效的地方。
| 归档时间: |
|
| 查看次数: |
4081 次 |
| 最近记录: |