分享

Spark读Hive表慢?

Hi,路过的大神

我用Spark 1.6 去读一个Hive表,一天的数据:1.1T左右。
scala代码如下:
[mw_shl_code=scala,true]val sql = "cache table tmp_tab as select * from db_name.tab_name where prt_dt='yyyy-MM-dd'"
sqlContext.sql(sql)[/mw_shl_code]

spark 参数如下:
[mw_shl_code=bash,true]spark-shell --master yarn-master --driver-memory 4g \
--executor-memory 6g
--num-executors 300 \
--conf spark.default.parallelism=600 \
--conf spark.sql.shuffle.partitions=600[/mw_shl_code]

初始化的tasks是这样的:(0 + 0) / 7787

花了30分钟左右,请问如何优化呢?



已有(3)人评论

跳转到指定楼层
bioger_hit 发表于 2019-6-3 20:35:17
本帖最后由 bioger_hit 于 2019-6-3 20:36 编辑

并行并不是越多越好,合理分配。
excutor memory和core的个数需要根据集群的来调整,确保集群硬件资源不要有空闲。

回复

使用道具 举报

Danny_nd4du 发表于 2019-6-3 20:57:09
bioger_hit 发表于 2019-6-3 20:35
并行并不是越多越好,合理分配。
excutor memory和core的个数需要根据集群的来调整,确保集群硬件资源不要 ...

大部分都是MR job,内存来讲是够用的。目前的情况是在资源相对充足的情况下,读表很慢。
回复

使用道具 举报

s060403072 发表于 2019-6-4 06:04:32
Danny_nd4du 发表于 2019-6-3 20:57
大部分都是MR job,内存来讲是够用的。目前的情况是在资源相对充足的情况下,读表很慢。

1.看看是否数据倾斜
2.内存充足,这个其实说明另外一个问题。内存没有使用充分使用,空闲很多。所以需要充分利用利用起来。可以提供下配置文件,提交job所使用的信息,集群内存,core等信息。这样才能调优。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条