Hive数据库仅列出默认数据库

时间:2018-07-02 01:41:46

标签: apache-spark hadoop hive cloudera cloudera-manager

当我尝试通过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 :(得分:2)

使用HiveContext从配置单元中获取数据。将def get_queryset(self): return Blog.objects.filter(date__lte=timezone.now()).order_by('-date').annotate( count_a=Count('blogger__posts__title'), count_b=Count('blogger__posts__likes')).annotate( score=Sum(F('count_a') + F('count_b'), output_field=FloatField())) 设置为

火花代码-

hive.metastore.uris

火花壳

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

答案 1 :(得分:0)

由于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

有关配置元存储的文档参考:

a)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>