Как решить InvalidResourceRequestException для улья на тез
Я получил InvalidResourceRequestException, когда я вставляю строку в таблицу кустов.
создать таблицу test (id int, name string);
set hive.execution.engine = tez;
вставить в таблицу тестовые значения (3, "Томь");
Память запроса на вставку = -1, vCores = 1;
Получил тип ресурса =[memory-mb] < 0 или больше максимально допустимого выделения
2019-05-06 02:43:55,095 [INFO] [TaskSchedulerEventHandlerThread] |rm.YarnTaskSchedulerService|: Allocation request for task: attempt_1557081630366_0001_1_00_000000_0 with request: Capability[<memory:-1, vCores:1>]Priority[5]AllocationRequestId[0]ExecutionTypeRequest[{Execution Type: GUARANTEED, Enforce Execution Type: false}]Resource Profile[null] host: ftp2 rack: null
2019-05-06 02:43:55,150 [ERROR] [AMRM Heartbeater thread] |impl.AMRMClientAsyncImpl|: Exception on heartbeat
org.apache.hadoop.yarn.exceptions.InvalidResourceRequestException: Invalid resource request, requested resource type=[memory-mb] < 0 or greater than maximum allowed allocation. Requested resource=<memory:-1, vCores:1>, maximum allowed allocation=<memory:44786, vCores:50>, please note that maximum allowed allocation is calculated by scheduler based on maximum resource of registered NodeManagers, which might be less than configured maximum allocation=<memory:90000, vCores:50>
at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.throwInvalidResourceException(SchedulerUtils.java:397)
at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.checkResourceRequestAgainstAvailableResource(SchedulerUtils.java:338)
at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.validateResourceRequest(SchedulerUtils.java:288)
at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.normalizeAndValidateRequest(SchedulerUtils.java:259)
at org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerUtils.normalizeAndvalidateRequest(SchedulerUtils.java:274)
at org.apache.hadoop.yarn.server.resourcemanager.RMServerUtils.normalizeAndValidateRequests(RMServerUtils.java:250)
at org.apache.hadoop.yarn.server.resourcemanager.DefaultAMSProcessor.allocate(DefaultAMSProcessor.java:231)
at org.apache.hadoop.yarn.server.resourcemanager.scheduler.constraint.processor.DisabledPlacementProcessor.allocate(DisabledPlacementProcessor.java:75)
at org.apache.hadoop.yarn.server.resourcemanager.AMSProcessingChain.allocate(AMSProcessingChain.java:92)
Пряжа-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>ftp0</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>5</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.resource.detect-hardware-capabilities</name>
<value>true</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>90000</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>50</value>
</property>
</configuration>
тез-site.xml
<configuration>
<property>
<name>tez.lib.uris</name>
<value>${fs.defaultFS}/user/tez/tez-0.9.2.tar.gz</value>
</property>
<property>
<name>tez.container.max.java.heap.fraction</name>
<value>0.3</value>
</property>
</configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn-tez</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/root/hadoop/hadoop-3.1.2</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/root/hadoop/hadoop-3.1.2</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/root/hadoop/hadoop-3.1.2</value>
</property>
</configuration>
Я могу запустить tez-example.tar правильно, но улей на tez получил ошибку.
Моя хадооп экосистема
1 главный узел, 2 узла данных
- Centos 6.1
- 100 баранов
- 80 ядро
- Hadoop-3.1.2
- Улей-3.1.1
- тез-0.9.2
Как решить это исключение, любой конфиг, который я установил неправильно?
Заранее спасибо.