一、Sqoop数据采集参数优化
默认情况下Sqoop采集数据只会生成一个map任务,采集性能会比较低,我们可以通过splitBy指定一个数字类型的列,再去修改num-mappers的值,这样就可以提高采集性能了,一般可以将num-mappers设置为5~10个。
二、集群Queue队列优化
针对大数据集群的资源可以分为多个队列,可以分为一个online队列,online表示线上的意思,这里面会执行线上的任务,还有一个offline队列,这个里面执行离线任务
针对我们的数仓任务可以在离线队列中执行,不影响线上资源队列中任务的执行。
否则可能会由于数仓每天凌晨集中启动很多任务造成资源抢占,影响线上任务的稳定性。
三、避免任务启动时间过于集中
不要把所有的任务都配置在00:30开始启动
可以规划在00:30~5:00之间,对任务进行分流,因为集群资源是一定的,同时启动太多任务会造成资源抢占,抢不到资源的任务还是 要等待。
大部分离线任务只要保证能在早上9点之前执行完毕,不影响业务人员上班的时候看数据指标就可以了。
四、Hive on Tez
如果要提高hive的计算性能,可以考虑替换底层默认的