spark MapOutputTrackerMaster

最近用了一个RowNumber() over()函数 进行三张4000万数据的关联筛选,建表语句如下:

create table CiCustomerPortrait2 as SELECT ROW_NUMBER() OVER() as id,* from (select t_7.phone_no,t_7.L1301,t_7.L1431,t_7.L1449,t_7.L1489,t_8.L1713,t_92.L1879,t_92.L1907 from DW_COC_LABEL_INTERNET_D_20151123 t_7 inner join DW_COC_LABEL_INTERNET_M_201510 t_8 on t_7.phone_no = t_8.phone_no  inner join DW_COC_LABEL_BITEMP_M_201510 t_92 on t_7.phone_no = t_92.phone_no  ) a 一方面由于多表关联(每个表4000W以上数据)一方面窗口函数的原因异常吃内存。

spark-env.sh参数如下:(default我就不贴了)

给了18个executor,每个executor有12G内存,每台服务器启动3个core,那么每个core就是4G内存。但执行过程中,一直卡在这里:

查询相关资料。

Shuffle的数据如何拉取过来

作业提交的时候,DAGScheduler会把Shuffle的过程切分成map和reduce两个Stage(之前一直被我叫做shuffle前和shuffle后),map的中间结果是写入到本地硬盘的,而不是内存,所以对磁盘的读写要求非常高,(最好是固态硬盘比较快,本人亲自尝试,同样的性能参数下,固态硬盘会比普通磁盘快10倍。)默认是一个map的中间结果文件是M*R(M=map数量,R=reduce的数量),设置了spark.shuffle.consolidateFiles为true之后是R个文件,根据bucketId把要分到同一个reduce的结果写入到一个文件中。MapOutputTrackerWorker向MapOutputTrackerMaster获取shuffle相关的map结果信息。把map结果信息构造成BlockManagerId --> Array(BlockId, size)的映射关系,通过BlockManager的getMultiple批量拉取block。

当过了N久执行过去了后,将生成好的文件拷贝到hdfs相应路径下

最终将生成好的文件拷贝到目录下,整个耗时10多分钟。Spark beeline方式连接有个缺陷,如果你一个job执行的时间过长,就会卡在那里,即便执行完也卡在那里,这样项目中用jdbc连接的时候,程序也不会退出,一直等待着结束,造成程序无法继续向下执行。这个还要调整各方面参数想办法优化执行效率。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xingoo, 一个梦想做发明家的程序员

Spark监控官方文档学习笔记

任务的监控和使用 有几种方式监控spark应用:Web UI,指标和外部方法 Web接口 每个SparkContext都会启动一个web UI,默认是40...

3389
来自专栏Hadoop实操

如何实现CDH元数据库MySQL的主主互备

在前面Fayson讲过《如何实现CDH元数据库MySQL的主备》,而本篇文章介绍如何实现MySQL的双活方式,为后面基于Keepalived实现MySQL高可用...

5178
来自专栏Hadoop实操

CENTOS7.2安装CDH5.10和Kudu1.2(一)

本文档描述CENTOS7.2操作系统部署CDH企业版的过程。Cloudera企业级数据中心的安装主要分为4个步骤:

4166
来自专栏张泽旭的专栏

hadoop集群安装

分布式安装 修改IP地址和主机名(主机名可以不用修改) hadoop1.com 192.168.213.146 192.168.213.255 255.255....

1392
来自专栏禅林阆苑

利用NextCloud配置私有云 【原创】

利用NextCloud配置私有云 Write By CS逍遥剑仙 我的主页: www.csxiaoyao.com GitHub: github...

2.4K8
来自专栏ChaMd5安全团队

MHN中心服务器搭建与树莓派蜜罐部署

MHN中心服务器搭建 ? 0x00 介绍 MHN(Modern Honey Network),是一个用于管理和收集蜜罐数据的中心服务器。通过MHN,可以实现快...

5557
来自专栏菩提树下的杨过

hadoop: hive 1.2.0 在mac机上的安装与配置

环境:mac OS X Yosemite + hadoop 2.6.0 + hive 1.2.0 + jdk 1.7.0_79 前提:hadoop必须先安装,且...

3108
来自专栏Hadoop实操

重庆某项目生产集群扩容问题总结及复盘

本文主要讲述重庆某项目生产集群扩容项目问题总结及复盘。其中部分问题之前有写过相关文档,可参考我之前写的文章《CDH集群安装YARN无法正常启动及解决办法》、《H...

1581
来自专栏Hadoop实操

2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproje...

3.2K9
来自专栏乐沙弥的世界

RMAN 备份详解

RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话

1712

扫码关注云+社区

领取腾讯云代金券