Created on 07-03-2017 02:27 PM - edited 08-17-2019 05:11 PM
I have a small one node hdp2.6 cluster (8 CPUs, 32GB ram), and I cannot run more than 1 query at a time, although I was pretty sure that I configures the relevant settings to allow more than one container.
The relevant configs are:
yarn-site/yarn.nodemanager.resource.memory-mb = 27660
yarn-site/yarn.scheduler.minimum-allocation-mb = 5532
yarn-site/yarn.scheduler.maximum-allocation-mb = 27660
mapred-site/mapreduce.map.memory.mb = 5532
mapred-site/mapreduce.reduce.memory.mb = 11064
mapred-site/mapreduce.map.java.opts = -Xmx4425m
mapred-site/mapreduce.reduce.java.opts = -Xmx8851m
mapred-site/yarn.app.mapreduce.am.resource.mb = 11059
mapred-site/yarn.app.mapreduce.am.command-opts = -Xmx8851m -Dhdp.version=${hdp.version}
hive-site/hive.execution.engine = tez
hive-site/hive.tez.container.size = 5532
hive-site/hive.auto.convert.join.noconditionaltask.size = 1546859315
tez-site/tez.runtime.unordered.output.buffer.size-mb = 414
tez-interactive-site/tez.am.resource.memory.mb = 5532
tez-site/tez.am.resource.memory.mb = 5532
tez-site/tez.task.resource.memory.mb = 5532
tez-site/tez.runtime.io.sort.mb = 1351
hive-site/hive.tez.java.opts = -server -Xmx4425m -Djava.net.preferIPv4Stack=true -XX:NewRatio=8 -XX:+UseNUMA -XX:+UseParallelGC -XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps
capacity-scheduler/yarn.scheduler.capacity.resource-calculator = org.apache.hadoop.yarn.util.resource.DominantResourceCalculatororg.apache.hadoop.yarn.util.resource.DominantResourceCalculator
yarn-site/yarn.nodemanager.resource.cpu-vcores = 6
yarn-site/yarn.scheduler.maximum-allocation-vcores = 6
mapred-site/mapreduce.map.output.compress = true
hive-site/hive.exec.compress.intermediate = true
hive-site/hive.exec.compress.output = true
hive-interactive-env/enable_hive_interactive = false
Which if I understand it well, gives 5GB per container.
If I run a hive query, it will use 5GB, 1 core, leaving about 15GB and 5 cores for the rest. I do not understand why the next query cannot start at the same time.
Any help would be much welcome.
Created 07-09-2020 04:21 AM
In Mapreduce the Reducer output would wait after all ten Mapper is finished. We recommend to use Tez.
Created 07-09-2020 04:00 AM
Can you try running 2 queries simultaneously and check?
Created on 07-09-2020 04:08 AM - edited 07-09-2020 04:10 AM
yes, here is the screenshot:
query 1 (green) is started and query 2 (yellow) waits until all the jobs of query one are done
Created 07-09-2020 04:13 AM
I have checked the screenshot. This is not application concurrency. Reducer phases1 is waiting for all the mappers to get finished. DAG is decided by the optimizer.
Are you using MAPREDUCE or Tez as an execution engine?
Created 07-09-2020 04:16 AM
I suppose to run TEZ, because I found all the configurations for TEZ ...
But I'm bloody new in this ... So, supposedly I 'm irgnorant too.
Thanks for your fast responses!
Created 07-09-2020 04:21 AM
In Mapreduce the Reducer output would wait after all ten Mapper is finished. We recommend to use Tez.
Created on 07-09-2020 04:31 AM - edited 07-09-2020 04:32 AM
In my hive-config (Ambari) are plenty of tez-parameters - so I supposed it is TEZ. I did not found a parameter as 'use tez' or 'use mapreduce' ...
hive.convert.join.bucket.mapjoin.tez is False - may for this ?
My queries are running from beeline
Created 07-09-2020 05:02 AM
This is decided by the optimiser.
Until Mappers are finished for that query,Reducers would not be stated.
Created 07-09-2020 05:14 AM
I'm searching now the correct information for the framework, where I found yarn and NOT yarn-tez in the mapred-site-xml ...
I'm totally new to this architecture, so I have to try - I did not find a docu apllicable to our installation (hdp 3.0.1 on powerpc) with ambari.
But thanks a lot, at least I understand, that we are NOT using TEZ ...
Created 07-09-2020 05:18 AM
Thank you for the update. Tez fixes this kind of issue.
Created 07-09-2020 05:45 AM
Unfortunately I'm still stick with the activation of tez under hive.
setting the properties:
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn-tez</value>
</property>
hive-site.xml
<property>
<name>hive.execution.engine</name>
<value>tez</value>
</property>
adding in my beeline query
set hive.execution.engine=tez; ## in the query (now it is faster!)
still is always running only ONE of the two, still saying Starting task [Stage-1:MAPRED] in parallel
😞