繁体   English   中英

如何在CDH 5.4.4上从Spark查询Hive

[英]how to query Hive from Spark on CDH 5.4.4

我正在运行CDH 5.4.4(捆绑了Spark 1.3.0),并想将Hive表读入Spark数据帧。

查看文档,它建议我们可以执行以下操作:

from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
results = sqlContext.sql("SHOW TABLES").collect()

...假设Spark是在设置-Phive-Phive-thriftserver标志-Phive-thriftserver

我不确定Cloudera的构建是否设置了这些标志。

当我运行代码段时,它返回以下错误:

15/07/10 16:54:10 WARN HiveMetaStore: Retrying creating default database after error: Error creating transactional connection factory
  javax.jdo.JDOFatalInternalException: Error creating transactional connection factory

我有两个问题:

  1. Cloudera的Spark版本是否设置了hivehive-thriftserver标志?
  2. 如何从Spark查询Hive?

更新

这几乎可以工作:

我创建了从$SPARK_HOME/conf/hive-site.xml的符号链接,即

ln -s /etc/hive/conf.cloudera.hive/hive-site.xml $SPARK_HOME/conf/hive-site.xml

然后,我重新启动了Spark服务,并能够访问Hive。 不幸的是,符号链接在重启后无法幸免。

从hive conf复制hive-site.xml到spark conf.dist,如下所示,

sudo cp /etc/impala/conf.dist/hive-site.xml /etc/spark/conf.dist/

现在尝试您能够从pyspark读取配置单元数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM