Spark案例之根据ip地址计算归属地二

本文深入探讨了从单机版程序到Spark集群应用的转变过程,详细解析了Spark程序的运行流程,包括Driver、Executor的角色与通信机制,以及如何利用Spark处理大数据计算任务,如根据IP地址计算归属地。

之前的是单机版的根据ip地址计算归属地,当数据量小的时候还可以,但是在大数据实际生产中是不行的,必须将它改造成一个Spark程序,然后在Spark集群上运行

Spark程序和单机版的程序不一样,下面来仔细分析一下Spark程序的运行流程

首先是一个Spark集群,集群中有Master和Worker,启动Master和Worker之后,Worker会和Master建立连接并向Master发送心跳,这时候提交一个SparkSubmit,也就是Driver给Master,然后Master会向Spark进行通信,让Worker启动Executor,然后Executor就会和Driver就行通信了, 根据ip地址计算出归属地这个Spark程序是写在Driver端的,但是执行计算是在Execoutor端,也就是说Driver端只告诉执行逻辑,并不参与任何的计算和存储,在Driver端创建了RDD之后,一旦出发执行就会创建Task,然后Driver会通过网络发送到Executor端,然后会在Executor端实现根据ip地址计算出归属地的结果,但是如果ip地址的规则文件不是放在hdfs中的,而是放在Driver端的机器上的,那么Executor端计算的时候就拿不到这个ip地址规则文件,这个时候就引出了Spark中的广播变量了,Driver通过网络将ip地址规则发送个每个Executor上,Executor上的多个Task通过这个ip地址规则来进行匹配,匹配结束之后会生成许多小文件,然后将相同分区的文件聚合到一起,最后存储到Mysql中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值