记一次Spark集群查询速度变慢的问题调查

现象:针对某张表(下文中用A表代替)的查询速度慢了6s

 

 

 

简单介绍一下系统的架构:Spark + Tachyon + glusterfs+mesos,其中glusterfs负责tachyon数据的持久化,Sparktachyon上加载数据,mesos负责Spark任务调度

 

通过对比分析Spark:4040页面提供的任务执行信息发现,A表的Spark任务中,出现了Locality LevelANY的,这导致后三个任务的起始时间延迟6s,如图.

 

 

简单介绍一下SparkLocality Level

   PROCESS_LOCAL: 是指读取缓存在本地节点的数据

 NODE_LOCAL: 是指读取本地节点硬盘数据

   ANY: 是指读取非本地节点数据

 运行速度上由快到慢 PROCESS_LOCAL > NODE_LOCAL > ANY

 

1.5版本的Spark中引入了两个新的级别NO_PREF RACK_LOCAL

http://spark.apache.org/docs/latest/tuning.html#data-locality

 

书归正传,以上可以分析出,A表是由于Spark任务中出现了读取非本地节点数据导致的。接下来去Tachyonweb页面中看看能否查出蛛丝马迹,进入到A表的Tachyon文件目录层,

发现有的文件分布在node56上,如下图

 

 

原因:由此想起了,在数据导入后我们对mesos集群进行了重新划分,node56只被划分为mesos-master

这就导致node56上的数据需要被其它的mesos-slave跨节点copy数据,由此产生了Locality Level中的any

导致查询速度显著变慢

 

注意: 对集群规模和角色的划分一定要在调整前,考虑到各个方面

 

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 31.2 KB
  • 大小: 90.3 KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhao_rock_2016

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值