2015-12-07 3 views
0

У меня есть таблицы Hive, которые указывают на файлы JSON в качестве содержимого, и для этих таблиц требуется JSON SerDe jar (от here) для запроса таблиц. В машине (или VM) хостинг моего Hadoop дистрибутива, я могу просто выполнить в улье или Beeline CLI:Добавление Hive SerDe jar на сервере SparkSQL Thrift

ADD JAR /<local-path>/json-serde-1.0.jar; 

, а затем я в состоянии выполнять запросы SELECT, на моей Hive таблиц.

Мне нужно использовать эти таблицы Hive в качестве источников данных для моего стола (установленного в Windows, моей главной машине), поэтому я запускаю сервер Thrift в Spark.

Для таблиц Hive, которые не содержат JSON (и не требует SerDe), Tableau может легко соединять и читать таблицы.

Когда дело доходит до таблиц Hive, которые содержат данные в формате JSON, однако, похоже, Tableau не может найти банку Hive JSON SerDe, и я получаю следующее сообщение об ошибке:

'java.lang.RuntimeException: MetaException(message:java.lang.ClassNotFoundException Class org.openx.data.jsonserde.JsonSerDe not found)'. 

Как добавить Улей JSON SerDe, чтобы Tableau мог читать таблицы Hive JSON?

ответ

1

Я предполагаю, что вы используете jdbc для подключения таблицы к улью.

При использовании оболочки улья куст связывает все необходимые библиотеки (включая SerDe) с клиентом hive и создает банку, которая распространяется и выполняется в кластере. К сожалению, сервер jdbc этого не делает, поэтому вам придется вручную установить и настроить SerDe на всех узлах и поместить его на путь класса всех узлов карты/уменьшения (скопируйте банку на все узлы и добавьте что-то вроде HADOOP_CLASSSPATH=$HADOOP_CLASSPATH:/location/of/your/serde.jar). После этого может потребоваться перезапустить пряжу. Это довольно неудобно, но так работает драйвер jdbc.

https://issues.apache.org/jira/browse/HIVE-5275

+0

Благодарим за помощь. Я использую ODBC. В частности, драйвер Simba Spark ODBC от Databricks. Является ли процесс одинаковым для ODBC? – menorah84

+0

Да, это должна быть та же процедура. –

Смежные вопросы