База данных Hive Only Список баз данных по умолчанию - PullRequest
0 голосов
/ 02 июля 2018

Когда я пытаюсь перечислить все базы данных кустов через Spark (1.6)

scala> val tdf = sqlContext.sql("SHOW DATABASES");
tdf: org.apache.spark.sql.DataFrame = [result: string]
scala> tdf.show
+-------+
| result|
+-------+
|default|
+-------+

Когда я пытаюсь перечислить все базы данных кустов через оболочку куста

hive> show databases;
OK
default
Time taken: 0.621 seconds, Fetched: 1 row(s)

Хотя в моем улье, на самом деле, у меня уже есть много баз данных. Я скучаю по какой-то конфигурации на моем кластере Cloudera? Или, может быть, есть какая-то проблема с моим магазином метастазов в улье?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Поскольку оболочка Hive также отображает только базу данных default, можно проверить конфигурацию метастазы Hive.

Для начала, вы можете войти в базу данных, имеющую метасторское хранилище, и выполнить этот запрос, который должен содержать список Hive баз данных. Пример запроса для MySQL базы данных:

mysql> SELECT NAME, DB_LOCATION_URI FROM hive.DBS;

Затем вы можете проверить и обновить hive-site.xml, как показано ниже. Расположение этого файла на CDH обычно на /usr/lib/hive/conf/hive-site.xml, а на HDP обычно на /usr/hdp/current/hive-client/conf/hive-site.xml.

Ссылка на документацию по настройке метастаза:

а) https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin#AdminManualMetastoreAdmin-RemoteMetastoreDatabase

b) (CDH) https://www.cloudera.com/documentation/enterprise/5-6-x/topics/cdh_ig_hive_metastore_configure.html (См. Раздел: 4. Настройте службу Metastore для связи с базой данных MySQL )

Пример конфигурации:

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true</value>
</property>

<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hive</value>
</property>
0 голосов
/ 02 июля 2018

используйте HiveContext для извлечения данных из улья. установить hive.metastore.uris на

код искры -

System.setProperty("hive.metastore.uris","thrift://hostserver:9083")
val hivecontext = new HiveContext(sparkContext)
val tdf = hivecontext.sql("SHOW DATABASES");

искровая оболочка

spark-shell --driver-java-options "-Dhive.metastore.uris=thrift://hostserver:9083"
...