apache-spark - Hive 数据库仅列出默认数据库

标签 apache-spark hadoop hive cloudera cloudera-manager

当我尝试通过 Spark (1.6) 列出所有 Hive 数据库时

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

当我尝试通过 hive shell 列出所有 hive 数据库时

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

在我的 hive 中,实际上我已经有了很多数据库。我是否错过了 Cloudera 集群上的某些配置?还是我的 Hive Metastore 有问题?

最佳答案

使用 HiveContext 从配置单元中获取数据。将 hive.metastore.uris 设置为

Spark 代码-

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

Spark 外壳

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

关于apache-spark - Hive 数据库仅列出默认数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51128243/

相关文章:

hadoop - 从另一个运行 Spark 的 Docker 容器写入在 Docker 中运行的 HDFS

apache-spark - 初始作业尚未接受任何资源

Hadoop 和 Stata

hive - 当我们创建没有位置属性的 Hive 外部表时,数据将存储在哪里

hadoop - 启用安全性的 Hive 创建权限

arrays - Hive 表数组列 - 使用 array_index 展开

java - 从 java 以编程方式执行 spark-submit

java - 如何使用 Java 中的结构化流从 Kafka 反序列化记录?

java - 将数据从 Microsoft SQL Server 移动到 Clouer Hadoop 的 Web 应用程序

java - Hadoop在项目中的实际使用