当我尝试通过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集群上的某些配置?也许我的蜂巢元存储库有问题?
答案 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
。
有关配置元存储的文档参考:
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>