问题标签 [spark-thriftserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
323 浏览

thrift - 为什么我的 Spark Thrift 服务器使用 HTTP 很慢?

我的组织设置了一个配置为使用 SSL over HTTP 的 Spark Thrift 服务器。目的是使 Power BI 能够通过 Spark 安全地检索数据。但是,简单地检索模式信息可能需要 10 分钟,前 1000 行数据还需要 10 多分钟!

显然,这是行不通的,所以我们开始了消除过程。我们捕获了大量数据和其他细节,但我认为我们的发现可以归结为:

  1. Wireshark 用于 Power BI 计算机。这表明 Power BI 大部分时间都在等待数据包:而不是客户端的处理
  2. 我们使用管理 UI 来获取 Power BI 向 spark thrift 服务器发出的确切命令:客户端的命令效率不高,但并非不合理
  3. Beeline 用于(在同一集群中的另一台机器上)连接并执行与 Power BI 完全相同的命令:执行速度很快。
  4. 使用 Simba ODBC 驱动程序(在工作站上)连接并执行一个简单的 SELECT * 命令:执行速度很慢(每检索行 1 秒)。
  5. 在 Thrift 服务器上使用了 TCP 转储。这表明大部分时间都花在等待 thrift 服务器发送数据包上:对于 #1,这不是网络延迟问题。
  6. 我们将服务器配置更改为“标准”或二进制协议,与 Power BI 连接:执行速度非常快!
  7. 我们将服务器配置恢复为“HTTP”,但没有 SSL:执行速度很慢

这些信息是否指向我的消除过程中的任何漏洞或我们遗漏的明显潜在问题?

所以这似乎指向一个问题,特别是使用 HTTP(通过端口 10001)?

0 投票
1 回答
70 浏览

sqlite - 从 SAP BO 到 Spark Thrift Server 的 SYNTHJOIN 查询

当前架构:

在我们当前的架构中,我们使用 Hadoop 文件系统以 Parquet 文件格式存储我们的报告数据,我们是 Spark Thrift 服务器,通过 SQL 接口 (JDBC/ODBC) 公开这些数据。使用此界面,SAP BO 被配置为为报告提取数据。

BO 版本:SAP BO 4.2 SP07

火花版本:2.1.0

当前行为:

我们的一份报告生成了一个中等级别的查询,其中包含 28 个连接(显示在查询面板中)。

但是当报表在 Webi 中运行时,我们看到在 Spark 中触发了一个不同的查询(核心逻辑相同),每个字段、表和连接都添加了复杂而长的字符串别名(下面是两列的片段)。

问题:

  1. 我可以理解为什么在查询中添加长别名的原因吗?
  2. 由于 Spark 2.1.0 仅支持 64k 字节的查询值 ( https://issues.apache.org/jira/browse/SPARK-19796 ),因此基于此查询生成的查询跨越了 64K 值。所以火花工作越来越失败。我们希望减少并保持这些别名简单明了,以避免这个 64K 障碍。请建议我们在 SAP BO 中缺少的任何配置?
  3. 我们还注意到 SAP BO 正在生成一个冗长的子查询而不是简单的连接查询,SAP BO 中是否有任何配置可以将查询面板中显示的查询触发到数据库而不是爆炸查询?
0 投票
1 回答
118 浏览

apache-spark - 在 spark thrift server 中运行 sql 时控制执行器的数量

我有一个 spark thrift 服务器,用户可以将 spark sql 提交到这个服务器。

我希望我可以控制将用于运行用户的 sql 的 executor 的数量。也就是说,我不希望 executor 尽可能多(稍后提交的 sql 可能要等待)

我会问这是否可能。

0 投票
0 回答
60 浏览

sql - thrift 服务器客户端上的 SQL 查询问题

我已经对 2 个表 memberstable (service_id,created_date) 和 member_servicestable (id 和 user_id) 执行了连接,因为它们是相同的,所以连接是在注册的 id 和 id 上进行的。我想使用连接获取服务 ID 的用户 ID 总数。我创建了一个名为 users 的视图并执行了这个查询。我得到了我想要的。

但是我需要使用连接获得相同的结果,我遇到了一些错误,例如分组表达式序列为空,而不是聚合函数。

创建视图用户的代码:

0 投票
1 回答
560 浏览

hive - 在外部 Hive 表 (Hive 2.3.6) 上执行 MSCK REPAIR TABLE 时出错

我使用类似于以下的语句基于 S3 中的分区 Parquet 文件创建了一个外部 Hive 表:

该表已创建并运行DESCRIBE TABLE default.person显示:

但是,当我使用直线查询表时,它返回零记录。我想我需要刷新 Hive Metastore 中的分区信息。

所以我运行MSCK REPAIR TABLE default.person但失败并出现以下错误:

我是否走在正确的道路上,为什么会发生此错误?

Hive 版本是 2.3.6。

0 投票
1 回答
147 浏览

apache-spark - 为什么 getKerberosTransport 需要 3 部分 kerborse 原则?

早上好/下午/晚上好!

Spark 2.4.x,带有 Hive 1.2.1

源代码在这里:https ://github.com/apache/spark/blob/master/sql/hive-thriftserver/v1.2/src/main/java/org/apache/hive/service/auth/KerberosSaslHelper.java

现在的问题:

有谁知道为什么 spark thrift 服务器需要 3 部分 kerberos 原理?

Spark thrift 服务器通过提交一个长时间运行的作业来工作,这不需要 3 部分 kerberos 原则。

启动一个监听端口的服务,不需要 3 部分的 kerberos 原理(就像 spark 作业历史一样),对吧?

所以想知道为什么这段代码检查原理是否有 3 个部分......

谢谢!

0 投票
0 回答
446 浏览

apache-spark - Kubernetes 部署失败并出现 CrashLoopBackOff

嗨,我正在使用此链接中提供的 yaml 文件

并修改它以在我的云中的 kubernetes 集群上启动 Spark Thrift Server。

但是,得到以下错误。

我的 spark-thriftserver.yaml 如下所示:

知道是什么导致了这个错误 :Back-off restarting failed container: 和可能的修复吗?我的 YAML 配置有什么问题吗?

这是 kubectl describe pod/deployment 的输出:

这是 Dockerfile

0 投票
0 回答
94 浏览

spark-thriftserver - Thrift Server 上的应用程序主机和驱动程序之间的超时

我们正在运行一个 spark thrift 服务器,配置如下。thrift driver 和 application master 被防火墙隔开,并且这两者之间的所有端口都是开放的。问题是 2 小时 11 分钟后应用程序服务器将死机,因为它无法连接到 thrift 驱动程序。那么哪些端口需要使用 thrift driver 和 application master 通信呢?我知道 thrift 是基于 RPC 协议的,它是 TCP 还是 UDP?

2hr11 分钟实际上是 net.ipv4.tcp_keepalive_time=7200 的值,这是 Linux 操作系统的默认值。

我可以将此值提高到更高,因为它也会影响其他应用程序。因此,如果我清楚地了解 TS 将如何通信,那么我很容易配置防火墙

0 投票
0 回答
180 浏览

apache-spark - 使用 Apache Superset 或 Redash 的 Spark Thrift 服务器中的 NullPointerException

在将 Redash 或 Superset 等 BI 工具连接到 Spark Thriftserver(这两个工具都使用 PyHive)后,我得到了 NullPointerException。Apache Zeppelin 对于使用 STS 的查询工作得很好,我永远无法在那里重现错误(Zeppelin 使用 org.apache.hive.jdbc.HiveDriver)。

这会将 STS 发送到只有重新启动才能恢复的状态。所有客户端的查询都将失败(Zeppelin、beeline、Redash、Superset)。它似乎主要发生在自动获取架构时(这不太有效,正确获取数据库名称,表名错误)。在浏览 PyHive 代码时,我遇到了 PyHive <-> STS 之间的一些不兼容问题(例如thisthis)。Redash/Superset 和 STS 之间的连接有效,我可以进行查询,直到 Thriftserver 进入损坏状态。

我理解为什么模式刷新不起作用(并且可能可以解决它),但我不明白为什么 Thriftserver 进入一个不可恢复的、损坏的状态并出现 NullPointerException。

我的设置:

  • Kubernetes
  • Delta Lake,数据格式为 delta
  • Hive 元存储
  • 启动 Spark Thriftserver 的 Spark Cluster:(start-thriftserver.sh --total-executor-cores 3 --driver-memory 3G --executor-memory 1536M --hiveconf hive.server2.thrift.port 10000 --hiveconf hive.server2.thrift.max.worker.threads 2000 --hiveconf hive.server2.thrift.bind.host my-host 我也尝试过spark.sql.thriftServer.incrementalCollect=false,但没有任何影响。)
  • Redash / Apache Superset 连接到 STS
0 投票
0 回答
70 浏览

apache-spark - 如何自定义日志火花节俭服务器日志

我们正在尝试使用由 spark thrift 服务器生成的日志。我们在工作中使用 EMR。目前我们可以通过 spark UI 查看这些日志。但是当集群终止时,这些日志不可用。

我们主要需要日志中的查询及其持续时间

除了 UI 之外,我们还有什么地方可以获取这些 thrift 服务器日志?或者我们可以自定义日志节俭服务器日志吗?

请帮忙

提前致谢