Details
-
Bug
-
Status: In Progress
-
Major
-
Resolution: Unresolved
-
0.6.0
-
None
-
None
-
SUSE Linux Enterprise Server 10 SP2 (i586) - Kernel 2.6.16.60-0.21-smp (3)
Hadoop 0.20.1
Hive 0.6.0
-
Avoiding System.exit () for killing the MR Process , instead kill the task ( which are not required to be executed )
Description
Hive process is exiting on executing the below queries in the same order as mentioned
1) CREATE TABLE SAMPLETABLE(IP STRING , showtime BIGINT ) partitioned by (ds string,ipz int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\040'
2) ALTER TABLE SAMPLETABLE add Partition(ds='sf') location '/user/hive/warehouse' Partition(ipz=100) location '/user/hive/warehouse'
After the second query execution , the hive throws the below exception and exiting the process
10:09:03 ERROR exec.DDLTask: FAILED: Error in metadata: table is partitioned but partition spec is not specified or tab:
{ipz=100}org.apache.hadoop.hive.ql.metadata.HiveException: table is partitioned but partition spec is not specified or tab: {ipz=100}
at org.apache.hadoop.hive.ql.metadata.Table.isValidSpec(Table.java:341)
at org.apache.hadoop.hive.ql.metadata.Hive.getPartition(Hive.java:902)
at org.apache.hadoop.hive.ql.exec.DDLTask.addPartition(DDLTask.java:282)
at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:191)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:107)
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:55)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:633)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:506)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:384)
at org.apache.hadoop.hive.service.HiveServer$HiveServerHandler.execute(HiveServer.java:114)
at org.apache.hadoop.hive.service.ThriftHive$Processor$execute.process(ThriftHive.java:378)
at org.apache.hadoop.hive.service.ThriftHive$Processor.process(ThriftHive.java:366)
at org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:252)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
As the "alter" query is incorrect the exception was thrown, ideally it should be "ALTER TABLE SAMPLETABLE add Partition(ds='sf',ipz=100) location '/user/hive/warehouse'".
It is not good to exit the HIVE process when the query is incorrect.