2016-04-01 14 views
0

私たちはCloudera 5.6を使用しています。 Sentry for Hiveを設定しました。挿入文を発行するたびに、以下の例外を除いて失敗します。しかし、テーブルをチェックすると、行が正しく挿入されます。すべてのアクセス許可をハイブに設定しました。ハイブ挿入 - 例外で失敗しましたテーブルを変更できません。 java.lang.NullPointerException

$$$ insert into beckman values('rinku'); 
INFO : Number of reduce tasks is set to 0 since there's no reduce operator 
INFO : number of splits:1 
INFO : Submitting tokens for job: job_1459405260708_0002 
INFO : The url to track the job: http://xxx.xxx.xxx.xxx:8088/proxy/application_1459405260708_0002/ 
INFO : Starting Job = job_1459405260708_0002, Tracking URL = http://xxx.xxx.xxx.xxx:8088/proxy/application_1459405260708_0002/ 
INFO : Kill Command = /opt/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/lib/hadoop/bin/hadoop job -kill job_1459405260708_0002 
INFO : Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0 
INFO : 2016-03-31 23:20:31,401 Stage-1 map = 0%, reduce = 0% 
INFO : 2016-03-31 23:20:37,788 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 1.4 sec 
INFO : MapReduce Total cumulative CPU time: 1 seconds 400 msec 
INFO : Ended Job = job_1459405260708_0002 
INFO : Stage-4 is selected by condition resolver. 
INFO : Stage-3 is filtered out by condition resolver. 
INFO : Stage-5 is filtered out by condition resolver. 
INFO : Moving data to: hdfs://ip-172-31-0-203.us-west-2.compute.internal:8020/user/hive2/warehouse/test.db/beckman/.hive-staging_hive_2016-03-31_23-20-23_107_7263355827488393299-2/-ext-10000 from hdfs://ip-172-31-0-203.us-west-2.compute.internal:8020/user/hive2/warehouse/test.db/beckman/.hive-staging_hive_2016-03-31_23-20-23_107_7263355827488393299-2/-ext-10002 
INFO : Loading data to table test.beckman from hdfs://ip-172-31-0-203.us-west-2.compute.internal:8020/user/hive2/warehouse/test.db/beckman/.hive-staging_hive_2016-03-31_23-20-23_107_7263355827488393299-2/-ext-10000 
ERROR : Failed with exception Unable to alter table. java.lang.NullPointerException 
org.apache.hadoop.hive.ql.metadata.HiveException: Unable to alter table. java.lang.NullPointerException 
at org.apache.hadoop.hive.ql.metadata.Hive.alterTable(Hive.java:533) 
at org.apache.hadoop.hive.ql.metadata.Hive.alterTable(Hive.java:519) 
at org.apache.hadoop.hive.ql.metadata.Hive.loadTable(Hive.java:1685) 
at org.apache.hadoop.hive.ql.exec.MoveTask.execute(MoveTask.java:312) 
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160) 
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:88) 
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1645) 
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1404) 
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1190) 
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1055) 
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1050) 
at org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:143) 
at org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:69) 
at org.apache.hive.service.cli.operation.SQLOperation$1$1.run(SQLOperation.java:195) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:415) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1707) 
at org.apache.hive.service.cli.operation.SQLOperation$1.run(SQLOperation.java:207) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: MetaException(message:java.lang.NullPointerException) 
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$alter_table_with_cascade_result$alter_table_with_cascade_resultStandardScheme.read(ThriftHiveMetastore.java:42087) 
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$alter_table_with_cascade_result$alter_table_with_cascade_resultStandardScheme.read(ThriftHiveMetastore.java:42064) 
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$alter_table_with_cascade_result.read(ThriftHiveMetastore.java:42006) 
at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78) 
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.recv_alter_table_with_cascade(ThriftHiveMetastore.java:1402) 
at org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Client.alter_table_with_cascade(ThriftHiveMetastore.java:1386) 
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.alter_table(HiveMetaStoreClient.java:340) 
at org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient.alter_table(SessionHiveMetaStoreClient.java:296) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.invoke(RetryingMetaStoreClient.java:91) 
at com.sun.proxy.$Proxy10.alter_table(Unknown Source) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient$SynchronizedHandler.invoke(HiveMetaStoreClient.java:1998) 
at com.sun.proxy.$Proxy10.alter_table(Unknown Source) 
at org.apache.hadoop.hive.ql.metadata.Hive.alterTable(Hive.java:531) 
... 22 more 
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask (state=08S01,code=1) 

答えて

0

データベース名とともにフォーマット/構文でテーブルを変更しようとすると、この問題が気付きました。私は何かのように:"<DATABASE>.<TABLENAME>" ..何とかこれは問題のように見えます。

これを解決するには、実際のクエリを実行する前に明示的にデータベースを記述します。サンプルイラスト:

use sampledb; 
alter employeeTable .... ; // This works 

[以下を使用しないでください]

alter sampledb.employeeTable.... // This doesn't work 
関連する問題