我已经有一个非常耗时的Map Reduce作业在我的集群上运行。当我提交另一个作业时,它停留在以下位置,这表明它正在等待当前正在运行的作业完成:
hive> select distinct(circle) from vf_final_table_orc_format1;
Query ID = hduser_20181022153503_335ffd89-1528-49be-b091-21213d702a03
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 10
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapreduce.job.reduces=<number>
Starting Job = job_1539782606189_0033, Tracking URL = http://secondary:8088/proxy/application_1539782606189_0033/
Kill Command = /home/hduser/hadoop/bin/hadoop job -kill job_1539782606189_0033
我当前正在166GB
的数据上运行mapreduce作业。我的设置包括7 nodes
,其中5
是DN with 32GB RAM
和8.7TB HDD
,而1 NN
和1 SN
有32 GB RAM
和{{1 }}。
我需要调整哪些设置才能并行执行作业?我目前正在使用1.1TB HDD
编辑:现在我的群集仅消耗8-10 GB的RAM,每个节点32 GB。其他HIVE查询,MR Jobs卡住了,正在等待单个作业完成。如何增加内存消耗以促进更多并行执行的作业。这是hadoop 2.5.2 version.
命令的当前输出:
ps
答案 0 :(得分:0)
STEPS
Hive分阶段运行查询计划。 某些阶段取决于其他阶段,在之前的阶段完成之前无法启动。
但是,某些其他阶段可以与其他阶段同时运行。使阶段并行运行可以节省整体作业的运行时间。 要启用阶段的并行执行,请执行以下操作:
set hive.exec.parallel=true;
set hive.exec.parallel.thread.number=8;
并行执行将提高群集利用率。 如果集群的利用率已经很高,那么并行执行对整体性能将无济于事。
让我知道这是否有帮助。