Danny_nd4du 发表于 2019-6-3 19:42:32

Spark读Hive表慢?

Hi,路过的大神

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

spark 参数如下:
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

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

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



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等信息。这样才能调优。
页: [1]
查看完整版本: Spark读Hive表慢?