AnsweredAssumed Answered

java.lang.NumberFormatException when accessing HBase table via REST?

Question asked by reedv on May 9, 2018
Latest reply on May 21, 2018 by maprcommunity

Used apache Hue to create an hbase table in some HDFS location /path/to/my/hbasetable. However, I am having problems trying to access it in any way other than through Hue. In Hue, I simply navigate to the table using the hbase data browser, but when I try to confirm that the table exists from the command line an error is thrown:

[me@mapr001 example]$ curl -I -H \
"Accept: text/mxl" \
"http://node001:8080/etl/internal/example/raw-ingest/version-1/file-metastore/schema"

HTTP/1.1 500 java.lang.NumberFormatException: For input string: "raw-ingest"
Content-Type: text/html; charset=iso-8859-1
Cache-Control: must-revalidate,no-cache,no-store
Content-Length: 9374

And get a similar error when trying to access a sample row (added to the table in Hue)

[me@mapr001 example]$ curl -vi -X GET -H "Accept: text/mxl" "http://mapr001:8080/etl/internal/example/raw-ingest/version-1/file-metastore/customId001/cf:mainfamily"

* About to connect() to mapr001 port 8080 (#0)
*   Trying 172.18.4.100...
* Connected to mapr001 (172.18.4.100) port 8080 (#0)
> GET /etl/internal/example/raw-ingest/version-1/file-metastore/ede3233777492e4a00442b61c7035820a55f16e669daaa29fc6baecf09b397f8X1525813886Xv1/cf:lineage HTTP/1.1
> User-Agent: curl/7.29.0
> Host: mapr001:8080
> Accept: text/mxl
>
< HTTP/1.1 500 java.lang.NumberFormatException: For input string: "raw-ingest"
HTTP/1.1 500 java.lang.NumberFormatException: For input string: "raw-ingest"
< Content-Type: text/html; charset=iso-8859-1
Content-Type: text/html; charset=iso-8859-1
< Cache-Control: must-revalidate,no-cache,no-store
Cache-Control: must-revalidate,no-cache,no-store
< Content-Length: 9457
Content-Length: 9457
<
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 500 java.lang.NumberFormatException: For input string: "raw-ingest"</title>
</head>
<body><h2>HTTP ERROR 500</h2>
<p>Problem accessing /etl/internal/example/raw-ingest/version-1/file-metastore/ede3233777492e4a00442b61c7035820a55f16e669daaa29fc6baecf09b397f8X1525813886Xv1/cf:lineage. Reason:
<pre>    java.lang.NumberFormatException: For input string: "raw-ingest"</pre></p><h3>Caused by:</h3><pre>java.lang.IllegalArgumentException: java.lang.NumberFormatException: For input string: "raw-ingest"
        at org.apache.hadoop.hbase.rest.RowSpec.parseTimestamp(RowSpec.java:170)
        at org.apache.hadoop.hbase.rest.RowSpec.&lt;init&gt;(RowSpec.java:62)
....

(where the hbase table is called "file-metastore" and the rest of the preceding path starts from the HDFS root) you can see some exception gets raised complaining about some part of the path. Never used hbase until now, is hbase expecting to start at some preset root directory (ie. the hbase.rootdir config in the hbase-site.xml) or something? If anyone knows what is going on here and how I can fix it, advice would be appreciated. Thanks.

Outcomes