优化之前
,es查询圈人,入hive 可能需要2h+的时间,如下为读了800M数据的时间,已经40min了,读完估计2h+
优化以后:
这里设置了scoll.size为1000,插入完成只要40分钟,主要的瓶颈在写入hive这块,速度提高了3倍还要多1.只查询需要入库的字段,减少网络io,如下es.read.field.include设置以后,返回的字段都没了,所以网络io减少了、、
val rdd: RDD[(String, collection.Map[String, AnyRef])] = ss.sparkContext.esRDD("t_dmp_idfa_bundle_country_array_tbl_1", query, Map("es.read.field.include" -> "null"))
2.设置es参数,设置每次查询返回的条数,默认是50跳,设置成10000条以后,速度明显加快了
conf.set("es.batch.size.bytes", "50mb")conf.set("es.batch.size.entries", "10000")
conf.set("es.scroll.size", "10000")