0

Я только что обновил версию hive до версии 2.1.0 как для hive-exec, так и для hive-jdbc.Исключение запроса на сбор кустов - Ошибка при компиляции оператора: FAILED: ArrayIndexOutOfBoundsException null

Но из-за этого некоторые запросы начались с того, что ранее работала нормально.

Исключение -

Exception in thread "main" org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ArrayIndexOutOfBoundsException null 
    at org.apache.hive.jdbc.Utils.verifySuccess(Utils.java:264) 
    at org.apache.hive.jdbc.Utils.verifySuccessWithInfo(Utils.java:250) 
    at org.apache.hive.jdbc.HiveStatement.runAsyncOnServer(HiveStatement.java:309) 
    at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:250) 
    at com.XXX.YYY.executors.HiveQueryExecutor.executeQueriesInternal(HiveQueryExecutor.java:234) 
    at com.XXX.YYY.executors.HiveQueryExecutor.executeQueriesMetricsEnabled(HiveQueryExecutor.java:184) 
    at com.XXX.YYY.executors.HiveQueryExecutor.main(HiveQueryExecutor.java:500) 
Caused by: org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: ArrayIndexOutOfBoundsException null 
    at org.apache.hive.service.cli.operation.Operation.toSQLException(Operation.java:387) 
    at org.apache.hive.service.cli.operation.SQLOperation.prepare(SQLOperation.java:186) 
    at org.apache.hive.service.cli.operation.SQLOperation.runInternal(SQLOperation.java:269) 
    at org.apache.hive.service.cli.operation.Operation.run(Operation.java:324) 
    at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementInternal(HiveSessionImpl.java:460) 
    at org.apache.hive.service.cli.session.HiveSessionImpl.executeStatementAsync(HiveSessionImpl.java:447) 
    at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:78) 
    at org.apache.hive.service.cli.session.HiveSessionProxy.access$000(HiveSessionProxy.java:36) 
    at org.apache.hive.service.cli.session.HiveSessionProxy$1.run(HiveSessionProxy.java:63) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:422) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657) 
    at org.apache.hive.service.cli.session.HiveSessionProxy.invoke(HiveSessionProxy.java:59) 
    at com.sun.proxy.$Proxy33.executeStatementAsync(Unknown Source) 
    at org.apache.hive.service.cli.CLIService.executeStatementAsync(CLIService.java:294) 
    at org.apache.hive.service.cli.thrift.ThriftCLIService.ExecuteStatement(ThriftCLIService.java:497) 
    at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1437) 
    at org.apache.hive.service.rpc.thrift.TCLIService$Processor$ExecuteStatement.getResult(TCLIService.java:1422) 
    at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) 
    at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) 
    at org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:56) 
    at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:286) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ArrayIndexOutOfBoundsException: null 

запросов, что я побежал -

INSERT OVERWRITE TABLE base_performance_order_20160916 
SELECT 
* 
FROM 
(
select 
coalesce(traffic_feed.sku,commerce_feed.sku) AS sku, 
concat(coalesce(traffic_feed.feed_date,commerce_feed.feed_date),' ','00:00:00') AS transaction_date, 
commerce_feed.units AS gross_units, 
commerce_feed.orders AS gross_orders, 
commerce_feed.revenue AS gross_revenue, 
NULL AS gross_cost, 
NULL AS gross_subsidized_cost, 
NULL AS gross_shipping_cost, 
NULL AS gross_variable_cost, 
NULL AS gross_shipping_charges, 
traffic_feed.pageViews AS page_views, 
traffic_feed.uniqueVisitors AS unique_visits, 
0 AS channel_id, 
concat(coalesce(traffic_feed.feed_date,commerce_feed.feed_date),' ','00:00:00') AS feed_date, 
from_unixtime(unix_timestamp()) AS creation_date 
from traffic_feed 
full outer join commerce_feed on coalesce(traffic_feed.sku)=commerce_feed.sku AND coalesce(traffic_feed.feed_date)=commerce_feed.feed_date 
) tb 
WHERE sku is not NULL and transaction_date is not NULL and channel_id is not NULL and feed_date is not NULL and creation_date is not NULL 

Это работает хорошо, когда я выполнил этот запрос без установки каких-либо улей переменных.

Но когда я устанавливаю ниже Hive Свойства конфигурации -

Это началось неудачу с упомянутыми выше исключениями.

вопросы-

  1. Какие ульев Свойства конфигурации, что я набор создает проблему (я модернизировал версию улья и Hadoop только)?
+0

Можете ли вы попробовать отключить свойство объединения слияния сортировки –

+0

@KSNidhin Это то, что я тоже пробовал, и это сработало. – devsda

+0

@KSNidhin Есть ли последствия этого? Какая польза от этих свойств? – devsda

ответ

1

Попробуйте отключить свойство объединения слияния сортировки, которое является промежуточным решением.

Поскольку вы включили свойство merge join merge как true, это будет по умолчанию считать io.sort.mb как 2047 МБ, и это может привести к исключению Arrayindexoutofbound. Поэтому, когда вы устанавливаете свойство merge join merge, рекомендуется установить свойство sort.io.mb также с оптимальным значением в зависимости от вашего размера набора данных, используемого в запросе.

Чтобы узнать, сколько данных занимает размер запроса, вы можете объяснить запрос: пояснить , который показывает, сколько объема данных рассматривается в каждом подзапросе и этапах.

Надеюсь, это поможет.

+0

Я столкнулся с другой проблемой. Не могли бы вы помочь мне в этом? http://stackoverflow.com/questions/39547001/why-hive-staging-file-is-missing-in-aws-emr – devsda

+0

Если возможно, можем ли мы общаться? – devsda

 Смежные вопросы

  • Нет связанных вопросов^_^