[ 
https://issues.apache.org/jira/browse/HIVE-21186?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sankar Hariappan updated HIVE-21186:
------------------------------------
    Fix Version/s: 4.0.0

> External tables replication throws NPE if 
> hive.repl.replica.external.table.base.dir is not fully qualified HDFS path.
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-21186
>                 URL: https://issues.apache.org/jira/browse/HIVE-21186
>             Project: Hive
>          Issue Type: Bug
>          Components: repl
>    Affects Versions: 4.0.0
>            Reporter: Sankar Hariappan
>            Assignee: Sankar Hariappan
>            Priority: Major
>              Labels: DR, pull-request-available, replication
>             Fix For: 4.0.0
>
>         Attachments: HIVE-21186.01.patch
>
>
> REPL DUMP is fine. Load seems to be throwing exception:
> {code}
> 2019-01-29 09:25:12,671 ERROR HiveServer2-Background-Pool: Thread-4864: 
> ql.Driver (SessionState.java:printError(1129)) - FAILED: Execution Error, 
> return code 40000 from org.apache.hadoop.hive.ql.exec.repl.ReplLoadTask. 
> java.lang.NullPointerException
> 2019-01-29 09:25:12,671 INFO HiveServer2-Background-Pool: Thread-4864: 
> ql.Driver (Driver.java:execute(1661)) - task failed with
> org.apache.hadoop.hive.ql.parse.SemanticException: 
> java.lang.NullPointerException
> at 
> org.apache.hadoop.hive.ql.exec.repl.bootstrap.load.table.LoadTable.tasks(LoadTable.java:154)
> at 
> org.apache.hadoop.hive.ql.exec.repl.ReplLoadTask.executeBootStrapLoad(ReplLoadTask.java:141)
> at 
> org.apache.hadoop.hive.ql.exec.repl.ReplLoadTask.execute(ReplLoadTask.java:82)
> at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:177)
> at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:93)
> at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1777)
> at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1511)
> at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1308)
> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1175)
> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1170)
> at 
> org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:197)
> at 
> org.apache.hive.service.cli.operation.SQLOperation.access$300(SQLOperation.java:76)
> at 
> org.apache.hive.service.cli.operation.SQLOperation$2$1.run(SQLOperation.java:255)
> 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:1869)
> at 
> org.apache.hive.service.cli.operation.SQLOperation$2.run(SQLOperation.java:273)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NullPointerException
> at 
> org.apache.hadoop.hive.ql.exec.repl.bootstrap.load.util.PathUtils.getExternalTmpPath(PathUtils.java:35)
> at 
> org.apache.hadoop.hive.ql.exec.repl.bootstrap.load.table.LoadTable.loadTableTask(LoadTable.java:245)
> at 
> org.apache.hadoop.hive.ql.exec.repl.bootstrap.load.table.LoadTable.newTableTasks(LoadTable.java:189)
> at 
> org.apache.hadoop.hive.ql.exec.repl.bootstrap.load.table.LoadTable.tasks(LoadTable.java:136)
> ... 23 more
> {code}
> REPL Load statement: 
> {code}
> REPL LOAD `testdb1_tgt` FROM 
> 'hdfs://ctr-e139-1542663976389-56533-01-000011.hwx.site:8020/apps/hive/repl/c9476207-8179-4db7-b947-ba67c950a340'
>  WITH 
> ('hive.query.id'='testHive1_3dd5e281-89ef-4054-850e-8a34386fc2c8','hive.exec.parallel'='true','hive.repl.replica.external.table.base.dir'='/tmp/someNewloc/','hive.repl.include.external.tables'='true','mapreduce.map.java.opts'='-Xmx640m','hive.distcp.privileged.doAs'='beacon','distcp.options.pugpb'='')
> {code}
> This is an issue with Hive unable to handle path without schema/authority 
> input for "hive.repl.replica.external.table.base.dir".
> Here the input was 
> 'hive.repl.replica.external.table.base.dir'='/tmp/someNewloc/','.
> If we set a fully qualified HDFS path (such as 
> hdfs://<host>:<port:/tmp/someNewloc/), then it works fine.
> Need to fix it in Hive to accept path without schema/authority and obtain it 
> from local cluster.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to