避免以编程方式启动使用创建的上下文的 HiveThriftServer2

2024-02-29

在 Spark 2.0.0 中,我们尝试使用 ThriftServer 从 Spark 临时表中查询数据。

首先,我们创建了启用了 Hive 支持的 SparkSession。 目前,我们使用 sqlContext 启动 ThriftServer,如下所示:

HiveThriftServer2.startWithContext(spark.sqlContext());

我们有带有注册临时表“spark_temp_table”的 Spark 流:

StreamingQuery streamingQuery = streamedData.writeStream()
                                             .format("memory")
                                             .queryName("spark_temp_table")
                                             .start();

使用 beeline 我们可以看到临时表(运行 SHOW TABLES);

当我们想用这种方法运行第二个作业(使用第二个 SparkSession)时,我们必须使用不同的端口启动第二个 ThriftServer。

我在这里有两个问题:

  1. 有没有办法让一个端口上的一台 Thrift 服务器能够访问不同 Spark 会话中的所有临时表?

  2. HiveThriftServer2.startWithContext(spark.sqlContext());注释为@DeveloperApi。有没有办法以编程方式启动带有上下文而不是代码中的 Thrift 服务器?
    我看到有配置--conf spark.sql.hive.thriftServer.singleSession=true在启动时传递给 ThriftServer (sbin/start-thriftserver.sh),但我不明白如何为作业定义它。我尝试在sparkSession builder中设置此配置属性,但beeline没有显示临时表。


有没有办法让一个端口上的一台 Thrift 服务器能够访问不同 Spark 会话中的所有临时表?

No. ThriftServer使用特定的会话,临时表只能在该会话内访问。这就是为什么:

beeline 没有显示临时表。

当你启动独立服务器时sbin/start-thriftserver.sh.

spark.sql.hive.thriftServer.singleSession并不意味着您可以获得多个服务器的单个会话。它对所有连接使用相同的会话单个 Thrift 服务器。可能的用例:

  • 你启动thrift服务器。
  • client1 连接到该服务器并创建临时表foo.
  • client2 连接到该服务器并读取foo
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

避免以编程方式启动使用创建的上下文的 HiveThriftServer2 的相关文章

  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti
  • Spark:并行转换多个数据帧

    了解如何在并行转换多个数据帧时实现最佳并行性 我有一系列路径 val paths Array path1 path2 我从每个路径加载数据帧 然后转换并写入目标路径 paths foreach path gt val df spark re
  • 列对象不可调用 Spark

    我尝试安装 Spark 并运行教程中给出的命令 但出现以下错误 https spark apache org docs latest quick start html https spark apache org docs latest q
  • 如何从spark管道逻辑模型中提取变量权重?

    我目前正在尝试学习 Spark Pipeline Spark 1 6 0 我将数据集 训练和测试 导入为 oas sql DataFrame 对象 执行以下代码后 生成的模型是oas ml tuning CrossValidatorMode
  • 通过过滤对 Pyspark Dataframe 进行分组

    我有一个数据框如下 cust id req req met 1 r1 1 1 r2 0 1 r2 1 2 r1 1 3 r1 1 3 r2 1 4 r1 0 5 r1 1 5 r2 0 5 r1 1 我必须观察客户 看看他们有多少要求 看看
  • 在 Hive 中获取数据的交集

    我在配置单元中有以下数据 userid cityid 1 15 2 15 1 7 3 15 2 8 3 9 3 7 我只想保留具有 cityid 15 和 cityid 7 的用户 ID 在我的示例中 它将是用户 ID 1 和 3 我试过
  • 猪参考

    我正在学习 Hadoop Pig 并且我总是坚持引用元素 请查找下面的示例 groupwordcount group chararray words bag of tokenTuples from line token chararray
  • 如何读取一次流数据集并输出到多个接收器?

    我有 Spark 结构化流作业 它从 S3 读取数据 转换数据 然后将其存储到一个 S3 接收器和一个 Elasticsearch 接收器 目前 我正在做readStream一次然后writeStream format start 两次 这
  • Spark SQL 失败,因为“常量池已超过 JVM 限制 0xFFFF”

    我在 EMR 4 6 0 Spark 1 6 1 上运行此代码 val sqlContext SQLContext getOrCreate sc val inputRDD sqlContext read json input try inp
  • 带有安全 Kafka 抛出的 Spark 结构化流:无权访问组异常

    为了在我的项目中使用结构化流 我正在 hortonworks 2 6 3 环境上测试 Spark 2 2 0 和 Kafka 0 10 1 与 Kerberos 的集成 我正在运行下面的示例代码来检查集成 我能够在 Spark 本地模式下的
  • Scala:什么是 CompactBuffer?

    我试图弄清楚 CompactBuffer 的含义 和迭代器一样吗 请解释其中的差异 根据 Spark 的文档 它是 ArrayBuffer 的替代方案 可以提供更好的性能 因为它分配的内存更少 以下是 CompactBuffer 类文档的摘
  • 为 Presto 和 AWS S3 设置独立 Hive Metastore 服务

    我工作的环境中使用 S3 服务作为数据湖 但没有 AWS Athena 我正在尝试设置 Presto 以便能够查询 S3 中的数据 并且我知道我需要通过 Hive Metastore 服务将数据结构定义为 Hive 表 我正在 Docker
  • 使用 Hiveql 循环

    我正在尝试合并 2 个数据集 例如 A 和 B 数据集 A 有一个变量 Flag 它有 2 个值 我并没有只是将两个数据合并在一起 而是尝试根据 标志 变量合并两个数据集 合并代码如下 create table new data as se
  • IntelliJ:线程“主”java.lang.NoClassDefFoundError中的异常:org/apache/spark/sql/types/DataType

    附言 有一个类似的问题here https stackoverflow com questions 40287289 java lang noclassdeffounderror org apache spark logging 但那是在
  • Spark 有没有办法捕获执行器终止异常?

    在执行我的 Spark 程序期间 有时 其原因对我来说仍然是个谜 yarn 会杀死容器 执行器 并给出超出内存限制的消息 我的程序确实恢复了 但 Spark 通过生成一个新容器重新执行任务 但是 在我的程序中 任务还会在磁盘上创建一些中间文
  • 错误:无法找到或加载主类 org.apache.spark.launcher.Main [重复]

    这个问题在这里已经有答案了 如果有人能帮我解决以下路径问题 我将不胜感激 我非常怀疑这与缺少路径设置有关 但不知道如何修复它 rxie ubuntu Downloads spark echo PATH usr bin java usr lo
  • 根据 pyspark 中的条件从数据框中删除行

    我有一个包含两列的数据框 col1 col2 22 12 2 1 2 1 5 52 1 2 62 9 77 33 3 我想创建一个新的数据框 它只需要行 col1 的值 gt col2 的值 就像注释一样col1 很长类型和col2 有双
  • Spark 中的 StandardScaler 未按预期工作

    知道为什么 Spark 会这样做吗StandardScaler 根据定义StandardScaler StandardScaler 将一组特征标准化为均值为零 标准差为 1 withStd 标志将数据缩放为 单位标准差 而标志 withMe
  • Spark 2.2 无法将 df 写入 parquet

    我正在构建一个聚类算法 我需要存储模型以供将来加载 我有一个具有以下架构的数据框 val schema new StructType add StructField uniqueId LongType add StructField tim
  • Spark scala 模拟 Spark.implicits 用于单元测试

    当尝试使用 Spark 和 Scala 简化单元测试时 我使用 scala test 和mockito scala 以及mockito Sugar 这只是让你做这样的事情 val sparkSessionMock mock SparkSes

随机推荐