[
https://issues.apache.org/jira/browse/HIVE-18086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Olson updated HIVE-18086:
--------------------------------
Description:
First, some background info: A non-native table can be created with partition
columns defined. However, the existence of partition columns for a non-native
table is problematic. Nothing disallows the table creation, and the
documentation [1] does not mention that non-native tables cannot have partition
columns. In fact, it suggests that "PARTITIONED BY" can be specified.
When launching the MR job for any query a {{NullPointerException}} is thrown. A
null path value originates in
{{org.apache.hadoop.hive.ql.exec.Utilities#createDummyFileForEmptyTable(...)}}
because "if this isn't a hive table we can't create an empty file for it" and
is added to the list of input paths that the
{{org.apache.hadoop.hive.ql.exec.mr.ExecDriver}} provides to the
{{FileInputFormat}}, ultimately causing the NPE in the {{Path}} constructor
because the child path is null.
{noformat}
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
java.lang.NullPointerException
at org.apache.hadoop.fs.Path.<init>(Path.java:115)
at
org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:438)
at
org.apache.hadoop.hive.ql.exec.Utilities.setInputPaths(Utilities.java:3550)
at
org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:371)
at
org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:137)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160)
at
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1690)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1449)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1235)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1053)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1043)
at
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:209)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:161)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:372)
at
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:759)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:617)
{noformat}
We encountered this bug using the {{HBaseStorageHandler}}.
[1]
https://cwiki.apache.org/confluence/display/Hive/StorageHandlers#StorageHandlers-DDL
was:
A non-native table can be created with partition columns defined. However, the
existence of partition columns for a non-native table is problematic. Nothing
disallows the table creation, and the documentation [1] does not mention that
non-native tables cannot have partition columns. In fact, it suggests that
"PARTITIONED BY" can be specified.
When launching the MR job for any query a NullPointerException is thrown. A
null path value originates in
{{org.apache.hadoop.hive.ql.exec.Utilities#createDummyFileForEmptyTable(...)}}
because "if this isn't a hive table we can't create an empty file for it" and
is added to the list of input paths that the
{{org.apache.hadoop.hive.ql.exec.mr.ExecDriver}} provides to the
FileInputFormat, ultimately causing the NPE in the Path constructor because the
child path is null.
{noformat}
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
java.lang.NullPointerException
at org.apache.hadoop.fs.Path.<init>(Path.java:115)
at
org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:438)
at
org.apache.hadoop.hive.ql.exec.Utilities.setInputPaths(Utilities.java:3550)
at
org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:371)
at
org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:137)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160)
at
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1690)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1449)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1235)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1053)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1043)
at
org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:209)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:161)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:372)
at
org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:759)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:617)
{noformat}
We encountered this bug using the HBaseStorageHandler.
[1]
https://cwiki.apache.org/confluence/display/Hive/StorageHandlers#StorageHandlers-DDL
> NullPointerException initializing query job when non-native table has
> partition columns
> ---------------------------------------------------------------------------------------
>
> Key: HIVE-18086
> URL: https://issues.apache.org/jira/browse/HIVE-18086
> Project: Hive
> Issue Type: Bug
> Components: Query Processor
> Environment: CDH 5.5.5 on RHEL 6.8
> Reporter: Andrew Olson
>
> First, some background info: A non-native table can be created with partition
> columns defined. However, the existence of partition columns for a non-native
> table is problematic. Nothing disallows the table creation, and the
> documentation [1] does not mention that non-native tables cannot have
> partition columns. In fact, it suggests that "PARTITIONED BY" can be
> specified.
> When launching the MR job for any query a {{NullPointerException}} is thrown.
> A null path value originates in
> {{org.apache.hadoop.hive.ql.exec.Utilities#createDummyFileForEmptyTable(...)}}
> because "if this isn't a hive table we can't create an empty file for it"
> and is added to the list of input paths that the
> {{org.apache.hadoop.hive.ql.exec.mr.ExecDriver}} provides to the
> {{FileInputFormat}}, ultimately causing the NPE in the {{Path}} constructor
> because the child path is null.
> {noformat}
> Total jobs = 1
> Launching Job 1 out of 1
> Number of reduce tasks is set to 0 since there's no reduce operator
> java.lang.NullPointerException
> at org.apache.hadoop.fs.Path.<init>(Path.java:115)
> at
> org.apache.hadoop.mapred.FileInputFormat.setInputPaths(FileInputFormat.java:438)
> at
> org.apache.hadoop.hive.ql.exec.Utilities.setInputPaths(Utilities.java:3550)
> at
> org.apache.hadoop.hive.ql.exec.mr.ExecDriver.execute(ExecDriver.java:371)
> at
> org.apache.hadoop.hive.ql.exec.mr.MapRedTask.execute(MapRedTask.java:137)
> at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:160)
> at
> org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:100)
> at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1690)
> at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1449)
> at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1235)
> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1053)
> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1043)
> at
> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:209)
> at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:161)
> at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:372)
> at
> org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:759)
> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:617)
> {noformat}
> We encountered this bug using the {{HBaseStorageHandler}}.
> [1]
> https://cwiki.apache.org/confluence/display/Hive/StorageHandlers#StorageHandlers-DDL
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)