java.lang.NumberFormatException при доступе к таблице HBase во вложенных папках? - PullRequest
0 голосов
/ 09 мая 2018

Использовал apache Hue для создания таблицы hbase в каком-то месте HDFS / path / to / my / hbasetable. Однако у меня возникают проблемы при попытке доступа к нему любым способом, кроме как через Хюэ. В Hue я просто перехожу к таблице с помощью браузера данных hbase, но когда я пытаюсь подтвердить, что таблица существует из командной строки, выдается ошибка:

[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

И получить аналогичную ошибку при попытке доступа к строке образца (добавлено в таблицу в Hue)

<code>[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"

Вызвано:

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)
....‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍
</code>

(где таблица hbase называется "file-metastore", а остальная часть предыдущего пути начинается с корня HDFS), вы можете увидеть, как возникает некоторое исключение, жалующееся на некоторую часть пути. До сих пор никогда не использовал hbase, но я подозреваю, что есть более глубокая проблема, чем входная строка. Ожидается ли запуск hbase с какого-либо предустановленного корневого каталога (например, конфигурации hbase.rootdir в hbase-site.xml) или с чего-то еще? Если кто-нибудь знает, что здесь происходит и как я могу это исправить, совет был бы оценен. Спасибо.

1 Ответ

0 голосов
/ 19 мая 2018

API REST ожидал, что запрос будет иметь вид

"http://<restserver>:<port>/<tablename>/schema"

но поскольку я указывал таблицу в качестве пути к таблице (используя / символов), она интерпретировалась и была буквальной / s, а не была частью имени (см. косые черты в переменных URL-адресов). ) (никогда не использовал REST API, прежде чем я не знал, что это вещь). Изменение строки запроса с

"http://node001:8080/etl/internal/example/raw-ingest/version-1/file-metastore/schema/"

к одному с / s, закодированным как %2f s

"http://mapr001:8080/%2fetl%2finternal%2fexample%2fraw-ingest%2fversion-1%2ffilemetastore/schema/"

решил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...