Search code examples
exceptionhbaserelative-pathtalendbigdata

java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: for Hbase in Talend


I have been trying to fetch the data from a Hbase table using HbaseInput component in Big data Batch.Like below. enter image description here

I have not performed any transformation in the tMap, just trying to read the data from Hbase table.I have checked all the connections, they are connected fine. So, finally i built a job, copied it and ran in the cluster. The job gave me the below exceptions,

[WARN ]: org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper - Possibly transient ZooKeeper, quorum=zk:5181, exception=org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/hbaseid
Running job: job_1472265299867_10046
 map 0% reduce 0%
Task Id : attempt_1472265299867_10046_m_000001_0, Status : FAILED
Error: java.lang.RuntimeException: Error in configuring object
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:109)
        at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:75)
        at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:133)
        at org.talend.hadoop.mapred.lib.DelegatingInputFormat.getRecordReader(DelegatingInputFormat.java:58)
        at org.apache.hadoop.mapred.MapTask$TrackedRecordReader.<init>(MapTask.java:172)
        at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:414)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:347)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168)
        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:1566)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:106)
        ... 11 more
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: namespace1:table_name
        at local_project.hbasepilot_0_1.HbasePilot$tHBaseInput_1InputFormat.configure(HbasePilot.java:308)
        ... 16 more
Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: namespace1:table_name
        at org.apache.hadoop.fs.Path.initialize(Path.java:218)
        at org.apache.hadoop.fs.Path.<init>(Path.java:184)
        at org.apache.hadoop.fs.Path.<init>(Path.java:93)
        at com.mapr.fs.hbase.MapRTableMappingRules.makePath(MapRTableMappingRules.java:296)
        at com.mapr.fs.hbase.MapRTableMappingRules.getTablePath(MapRTableMappingRules.java:277)
        at com.mapr.fs.hbase.MapRTableMappingRules.getMaprTablePath(MapRTableMappingRules.java:248)
        at com.mapr.fs.hbase.MapRTableMappingRules.isMapRTable(MapRTableMappingRules.java:201)
        at org.apache.hadoop.hbase.client.mapr.BaseTableMappingRules.isMapRTable(BaseTableMappingRules.java:96)
        at org.apache.hadoop.hbase.client.HTable.initIfMapRTable(HTable.java:440)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:204)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:172)
        at local_project.hbasepilot_0_1.HbasePilot$tHBaseInput_1InputFormat.configure(HbasePilot.java:306)
        ... 16 more
Caused by: java.net.URISyntaxException: Relative path in absolute URI: namespace1:table_name
        at java.net.URI.checkPath(URI.java:1823)
        at java.net.URI.<init>(URI.java:745)
        at org.apache.hadoop.fs.Path.initialize(Path.java:215)
        ... 27 more

 map 50% reduce 0%
 map 100% reduce 0%
Job complete: job_1472265299867_10046
Counters: 34
        File System Counters
                FILE: Number of bytes read=0
                FILE: Number of bytes written=188744
                FILE: Number of read operations=0
                FILE: Number of large read operations=0
                FILE: Number of write operations=0
                MAPRFS: Number of bytes read=652
                MAPRFS: Number of bytes written=100535043
                MAPRFS: Number of read operations=34
                MAPRFS: Number of large read operations=0
                MAPRFS: Number of write operations=12998
        Job Counters
                Failed map tasks=1
                Killed map tasks=1
                Launched map tasks=4
                Other local map tasks=1
                Rack-local map tasks=3
                Total time spent by all maps in occupied slots (ms)=8052096
                Total time spent by all reduces in occupied slots (ms)=0
                Total time spent by all map tasks (ms)=4026048
                Total vcore-seconds taken by all map tasks=4026048
                Total megabyte-seconds taken by all map tasks=8245346304
                DISK_MILLIS_MAPS=2013025
        Map-Reduce Framework
                Map input records=4299826
                Map output records=4299826
                Input split bytes=652
                Spilled Records=0
                Failed Shuffles=0
                Merged Map outputs=0
                GC time elapsed (ms)=43365
                CPU time spent (ms)=3716080
                Physical memory (bytes) snapshot=2017206272
                Virtual memory (bytes) snapshot=7506382848
                Total committed heap usage (bytes)=2491416576
        File Input Format Counters
                Bytes Read=0
        File Output Format Counters
                Bytes Written=100535043

Here is the table name, enter image description here

It has written the row key, which i have hard coded in the component. And rest of the fields are empty. Yes, i have data in the table, it has millions of rows. I think talend is not able to fetch the data from my table, it is not communicating with it, as the exception says "Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI:namespace1:table_name"

**Is this the right way to specify the table name?

Why am i not picking the data from the table?**


Solution

  • You are using MAPR distro, and it's a little bit different then other Hadoop distro.

    In talend, you can go to advanced setting of the tHbaseInput component and set the following propetries :

    hbase.table.namespace.mappings
    

    or check the Set table Namspace mappings box and put your mapping to the table. See here.