Olivier Van Laere created PIG-4403:
--------------------------------------

             Summary: Combining -Dpig.additional.jars.uris with -useHCatalog 
breaks due to combination with colon instead of comma
                 Key: PIG-4403
                 URL: https://issues.apache.org/jira/browse/PIG-4403
             Project: Pig
          Issue Type: Bug
    Affects Versions: 0.14.0
         Environment: Apache Pig version 0.14.0.2.2.0.0-2041 (rexported) 
compiled Nov 19 2014, 15:24:46
Hortonworks HDP 2.2.0.0-2041
            Reporter: Olivier Van Laere


When adding a JSON serde parser as additional jar on running pig with HCatalog:

{noformat}
pig -useHCatalog 
-Dpig.additional.jars.uris=file:///usr/lib/hive/lib/json-serde-1.3.1-SNAPSHOT-jar-with-dependencies.jar
{noformat}

Pig crashes on 
{noformat}
ERROR 2999: Unexpected internal error. java.net.URISyntaxException: Relative 
path in absolute URI: hive-hcatalog-pig-adapter-0.14.0.2.2.0.0-2041.jar:file:
{noformat}

{noformat}
2015-01-30 18:21:23,848 [main] INFO  org.apache.pig.Main - Apache Pig version 
0.14.0.2.2.0.0-2041 (rexported) compiled Nov 19 2014, 15:24:46
2015-01-30 18:21:23,848 [main] INFO  org.apache.pig.Main - Logging error 
messages to: /home/olivier/bsft_ds/data/pig.2015-01-30_18-21-22.log
2015-01-30 18:21:24,748 [main] INFO  org.apache.pig.impl.util.Utils - Default 
bootup file /home/olivier/.pigbootup not found
2015-01-30 18:21:24,967 [main] INFO  
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to 
hadoop file system at: hdfs://aws-usw2a-p-hw-master11.blueshift.vpc:8020
2015-01-30 18:21:26,214 [main] ERROR org.apache.pig.Main - ERROR 2999: 
Unexpected internal error. java.net.URISyntaxException: Relative path in 
absolute URI: hive-hcatalog-pig-adapter-0.14.0.2.2.0.0-2041.jar:file:
----------------------------
ERROR 2999: Unexpected internal error. java.net.URISyntaxException: Relative 
path in absolute URI: hive-hcatalog-pig-adapter-0.14.0.2.2.0.0-2041.jar:file:

java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path 
in absolute URI: hive-hcatalog-pig-adapter-0.14.0.2.2.0.0-2041.jar:file:
        at org.apache.hadoop.fs.Path.initialize(Path.java:206)
        at org.apache.hadoop.fs.Path.<init>(Path.java:172)
        at org.apache.hadoop.fs.Path.<init>(Path.java:94)
        at org.apache.hadoop.fs.Globber.glob(Globber.java:211)
        at org.apache.hadoop.fs.FileSystem.globStatus(FileSystem.java:1625)
        at 
org.apache.pig.impl.io.FileLocalizer.fetchFilesInternal(FileLocalizer.java:816)
        at 
org.apache.pig.impl.io.FileLocalizer.fetchFiles(FileLocalizer.java:767)
        at org.apache.pig.PigServer.registerJar(PigServer.java:558)
        at org.apache.pig.PigServer.addJarsFromProperties(PigServer.java:265)
        at org.apache.pig.PigServer.<init>(PigServer.java:231)
        at org.apache.pig.PigServer.<init>(PigServer.java:214)
        at org.apache.pig.tools.grunt.Grunt.<init>(Grunt.java:46)
        at org.apache.pig.Main.run(Main.java:487)
        at org.apache.pig.Main.main(Main.java:170)
        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.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.net.URISyntaxException: Relative path in absolute URI: 
hive-hcatalog-pig-adapter-0.14.0.2.2.0.0-2041.jar:file:
        at java.net.URI.checkPath(URI.java:1804)
        at java.net.URI.<init>(URI.java:752)
        at org.apache.hadoop.fs.Path.initialize(Path.java:203)
        ... 19 more
================================================================================
{noformat}

Checking with -printDebugCmd I can see that the command looks like:

{noformat}
-Dpig.additional.jars.uris=file:///usr/hdp/2.2.0.0-2041/hive/lib/hive-metastore-0.14.0.2.2.0.0-2041.jar,file:///usr/hdp/2.2.0.0-2041/hive/lib/libthrift-0.9.0.jar,file:///usr/hdp/2.2.0.0-2041/hive/lib/hive-exec-0.14.0.2.2.0.0-2041.jar,file:///usr/hdp/2.2.0.0-2041/hive/lib/libfb303-0.9.0.jar,file:///usr/hdp/2.2.0.0-2041/hive/lib/jdo-api-3.0.1.jar,file://,file://,file:///usr/hdp/2.2.0.0-2041/hive/lib/hive-hbase-handler-0.14.0.2.2.0.0-2041.jar,file:///usr/hdp/2.2.0.0-2041/hive-hcatalog/share/hcatalog/hive-hcatalog-core-0.14.0.2.2.0.0-2041.jar,file://,file:///usr/hdp/2.2.0.0-2041/hive-hcatalog/share/hcatalog/hive-hcatalog-pig-adapter-0.14.0.2.2.0.0-2041.jar:file:/usr/lib/hive/lib/json-serde-1.3.1-SNAPSHOT-jar-with-dependencies.jar
 
{noformat}

So it seems that 0.14 combines the -useHCatalog jars (comma separated), with 
-Dpig.additional.jars.uris (also comma separated) using a colon, and thus 
breaks the Jar classpath.

Running with either only -useHCatalg or -Dpig.additional.jars.uris does not 
result in any issues.

Could it be that 0.14 contains legacy code that combines these multiple flags 
with a symbol that breaks the path?




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to