Snappydata 存储与来自现有 spark 安装的 hive 元存储

Posted

技术标签:

【中文标题】Snappydata 存储与来自现有 spark 安装的 hive 元存储【英文标题】:Snappydata store with hive metastore from existing spark installation 【发布时间】:2018-05-11 13:13:07 【问题描述】:

我在 HDP2.6.2、spark 2.1.1 上使用 snappydata-1.0.1,并且能够从外部 spark 应用程序连接。但是当我通过将 hive-site.xml 添加到 spark conf 来启用 hive 支持时,snappysession 会列出来自 hivemetastore 而不是 snappystore 的表。

SparkConf sparkConf = new SparkConf().setAppName("TEST APP");
JavaSparkContext javaSparkContxt = new JavaSparkContext(sparkConf);
SparkSession sps = new SparkSession.Builder().enableHiveSupport().getOrCreate();
SnappySession snc = new SnappySession(new SparkSession(javaSparkContxt.sc()).sparkContext());
snc.sqlContext().sql("show tables").show();

当 hive-site.xml 不在 sparkconf 中时,上面的代码为我提供了 snappy 存储中的表列表,如果添加了 hive-site.xml。它列出了我来自 hive 元存储的表。

不能在同一个应用程序中使用 hive 元存储和 snappydata 元存储吗? 可以将配置单元表读入数据框并将 snappydata 表读入同一应用程序中的另一个 DF 吗? 提前致谢

【问题讨论】:

【参考方案1】:

因此,问题不在于 hive 元存储。您可以在同一应用程序中使用 Hive 表和 Snappy 表。例如copy hive table into Snappy in-memory。 但是,我们需要测试在 hive-site.xml 中配置的外部 hive 元存储的使用。也许是一个错误。

您应该尝试使用 Snappy 智能连接器。即使用 HDP 中的 Spark 发行版运行您的 Spark,并使用连接器连接到 Snappydata 集群(请参阅文档)。在这里,您似乎正在尝试使用 Snappydata 分发运行您的 Spark 应用程序。

【讨论】:

我正在使用 HDP Spark 分发并使用智能连接器连接到 snappydata。对我来说看起来像一个错误。我遵循了 snappydata 中的文档,并且在没有 hive-site.xml 的情况下按预期工作

以上是关于Snappydata 存储与来自现有 spark 安装的 hive 元存储的主要内容,如果未能解决你的问题,请参考以下文章

SnappyData 上的 Theta Sketch (Yahoo)

关于使用 snappydata/bin> ./spark-shell.sh 脚本启动定位器的问题

SnappyData Spark Scall java.sql.BatchUpdateException

SnappyData snappy-sql PUT INTO 导致错误:spark.sql.execution.id 已设置

SnappyData - 创建 Kafka 流表时出错

来自现有 RDD 的数据框 - Python Spark