Контекст Uisng Hive, создание таблицы Hive локально в локальной системе metastore_db вместо кластера, где разместить мой hive-site.xml

Я создал объект Spark Context и попытался получить текст из текстового файла на сервере hadoop (не на моем локальном сервере), и мне удалось его получить.

Когда я пытаюсь получить таблицу улья (которая находится на автономном компьютере, кластере), я не смог этого сделать, и когда я создал таблицу улья, она создается локально в metastore_db.

objHiveContext.sql ("создать таблицу yahoo_orc_table (дата STRING, open_price FLOAT, high_price FLOAT, low_price FLOAT, close_price FLOAT, volume INT, adj_price FLOAT) хранится как orc")

Я пробовал настроить хранилище метаданных

objHiveContext.setConf ("hive.metastore.warehouse.dir", "hdfs: // IP-адрес сервера: HiveportNum / apps / hive / inventory")

&& также objHiveContext.hql ("SET hive.metastore.warehouse.dir = hdfs: // serverIp: portNumber / apps / hive / inventory")

Я даже поместил xml сайта-улья в папку conf машины искры,

Как заставить мое приложение scala связываться с hive-site.xml и получать информацию о хранилище метаданных из этого xml и где мне разместить свой Hive-site.xml

Я поместил его в свое приложение, поскольку везде, где предлагается добавить в ClassPath, я добавил и вижу, что это чуть выше файла mypom.xml, но все же мое приложение scala находится в локальном режиме

Таблицы (yahoo_orc_table) создаются локально в D: \ user \ hive \ inventory


person sudhir    schedule 18.12.2015    source источник
comment
это может вам помочь - stackoverflow.com/questions/34034488/   -  person Sumit    schedule 21.12.2015


Ответы (2)


Единственное место, где он должен быть, - это каталог spark conf. Если вы поместили его туда, но все еще не работает, это означает, что проблема в другом месте, возможно, в содержимом hive-site.xml.

person Roberto Congiu    schedule 21.12.2015
comment
Спасибо, проблема заключалась в размещении hive-site.xml в пути к классам ранее, я поместил его в проект выше pom.xml, поэтому я удалил оттуда и поместил в папку src / main / java (maven). При подключении к хранилищу метаданных я столкнулся с проблемой ParseDriver: команда синтаксического анализа: показать таблицы INFO ParseDriver: завершен синтаксический анализ Хранилище метаданных: попытка подключиться к хранилищу метаданных с использованием URI thrift: //server.com: 9083 INFO JniBasedUnixGroupsMapping: Ошибка при получении групп для: Имя пользователя не может быть найдено. ПРЕДУПРЕЖДЕНИЕ. UserGroupInformation: для пользователя нет доступных групп. Хранилище метаданных: подключено к хранилищу метаданных. - person sudhir; 22.12.2015

Эта проблема была решена на Spark2, после помещения xml-файла hive-site в папку conf машины spark, вы можете использовать:

  import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.master("local[2]")
.appName("interfacing spark sql to hive metastore without configuration file")
.config("hive.metastore.uris", "thrift://host:port") // replace with your hivemetastore service's thrift url
.enableHiveSupport() // don't forget to enable hive support
.getOrCreate()

spark.sql("create table yahoo_orc_table (date STRING, open_price FLOAT, high_price FLOAT, low_price FLOAT, close_price FLOAT, volume INT, adj_price FLOAT) stored as orc")

этот код создает таблицу yahoo_orc_table в кусте кластера.

person A. BENCHAMA    schedule 07.09.2017