Код возврата Impyla 1 из org.apache.hadoop.hive.ql.exec.mr.MapRedTask при запросе HiveServer2
Я использую Impyla для запроса некоторых результатов от HIVE, однако я столкнулся с этой проблемой:
Из импыла:
impala.error.OperationalError: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
и из HiveServer2:
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = hduser_20180827031927_fdb148b0-725b-434c-a0f8-98b6843d4348
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Defaulting to jobconf value of: 1
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>
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
и мой исходный код:
from impala.dbapi import connect
import sys
dbName = sys.argv[1:][0]
query = sys.argv[1:][1]
conn = connect(host='192.168.0.10', port=10000, database=dbName , auth_mechanism='NOSASL' , use_ssl=True)
cursor = conn.cursor()
cursor.execute(query, configuration={'hive.exec.reducers.bytes.per.reducer': '100000', 'hive.auto.convert.join.noconditionaltask':'false','mapreduce.job.reduces':'1','hive.auto.convert.join':'false'})
returnData = []
for row in cursor:
returnData.append(row[0])
pprint(returnData)
как вы видите, я добавил много конфигураций, но это не работает
2 ответа
Из вашей ошибки нет способа узнать, что случилось.
Я не уверен, чтобы включить ведение журнала отладки в Impyla, поэтому вам нужно перейти к пользовательскому интерфейсу YARN, чтобы найти запрос.
Если YARN не запущен, я думаю, вы получите более описательную ошибку, такую как "невозможно отправить задание", хотя, возможно, эта ошибка не передается из HiveServer
Я столкнулся с той же проблемой. После просмотра тысяч страниц в Google я понял, что сообщение об ошибке, которое вернула impyla, не помогло, поэтому я начал проверять журналы улья. В файле hive-site.xml я поискал ключевое слово "log" и, к счастью, нашел этот параметр:
hive.server2.logging.operation.log.location
поэтому я пошел в этот каталог и нашел сообщение журнала, созданное моим кодом impyla. Сообщение об ошибке было следующим:
ERROR : Job Submission failed with exception 'org.apache.hadoop.security.AccessControlException(Permission denied: user=APP, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
На этом этапе все было ясно, имя пользователя, которое я передал в моем коде impyla, не имело разрешения на выполнение запроса, поэтому я сменил имя пользователя на другое, и мир вернулся к миру :)