问题标签 [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 投票
0 回答
602 浏览

apache-spark - HiveThriftServer2 仅与 hive 1.2.1 jar 兼容

我正在使用以下命令在 Spark 应用程序中启动 HiveThriftServer:HiveThriftServer2 .startWithContext(session.sqlContext());

我可以看到我需要在类路径中包含 hive-jdbc-1.2.1.spark2、hive-exec-1.2.1.spark2、hive-metastore-1.2.1.spark2 jar 来启动它。

到目前为止一切顺利,它启动了,我可以在 Spark UI 中看到“JDBC/ODBC”选项卡。

现在,在客户端(我需要连接到该服务器以访问数据),我有更高级的 JARS 版本,如 hive-jdbc-2.1.1 等。当我尝试使用以下代码连接到服务器时,我得到一个例外:

异常:原因:org.apache.thrift.TApplicationException:必填字段“client_protocol”未设置!结构:TOpenSessionReq(client_protocol:null, configuration:{use:database=default}) at org.apache.thrift.TApplicationException.read(TApplicationException.java:111) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java: 79) 在 org.apache.hive.service.rpc.thrift.TCLIService$Client.OpenSession(TCLIService.java: 155) 在 org.apache.hive.jdbc.HiveConnection.openSession(HiveConnection.java:576)

如果我使用相同版本的 JARS 作为服务器,它的工作原理。

现在我有两个选择: 1. 将服务器端的 JARS 更改为较新的版本 (2.1.1),但随后服务器无法启动(实际上它抱怨 ClassNotFound 问题)。HiveThriftServer2 类来自 spark-hive-thriftserver jar,如果我查看它的 pom.xml,它具有 1.2.1 jars 的依赖关系,这很明显服务器不会在 2.1.1 版本上启动

  1. 我在客户端更改了版本,但我没有更改 JAR 版本的选项,因为 App 服务器中的其他应用程序依赖于这些版本。

谁能建议任何可能的方法来解决这个问题?(理想情况下,较新版本的 jas 应该具有向后兼容性)

0 投票
1 回答
224 浏览

apache-spark - Cassandra 和 Spark Thrift 服务器集成

我正在尝试集成 Cassandra 和 Spark Thrift 服务器。我按照这里的步骤

在直线控制台中注册 cassandara 表时出现以下错误。

下面是我运行的查询

我错过了什么吗?

0 投票
1 回答
278 浏览

apache-spark - 通过 Spark 中的 FAIR 调度实现并发

我的环境:我正在尝试通过 Spark Thrift 服务器连接 Cassandra。然后我在 Hive Metastore 中创建一个包含 Cassandra 表数据的元表。在 Web 应用程序中,我通过 JDBC 驱动程序连接到 Meta-table。我为 Spark Thrift Server 启用了公平调度。

问题:当我通过 JMeter 对 100 个用户执行 300 秒的并发负载测试时,我得到初始请求的亚秒级响应时间(比如前 30 秒)。然后响应时间逐渐增加(如 2 到 3 秒)。当我检查 Spark UI 时,所有作业的执行时间都小于 100 毫秒。我还注意到收到请求时,作业和任务处于待处理阶段。所以我假设即使任务需要几秒钟的时间来执行,它们也会被调度程序延迟提交。如何解决作业提交中的这种延迟?

以下是我的配置详细信息,工作人员数量 - 2 每个工作人员的执行程序数量 - 1 每个执行程序的核心数量 - 14 工作人员的总核心 - 每个执行程序的 30 内存 - 20Gb 工作人员的总内存 - 106Gb

Fair Schedule XML 中的配置

我在 Spark Standalone 模式下执行。

0 投票
1 回答
1157 浏览

authentication - 身份验证和授权 Spark Thrift Server

我正在使用 HDP 2.5.0。我尝试使用教程实现 Spark Thrift Server 授权:

带有 LLAP 测试驱动器的 Apache Spark 细粒度安全性

当我使用用户名登录(没有密码)并执行 HiveQL 时,它工作正常。但是在允许访问授权系统之前,我找不到任何方法来验证用户身份。

0 投票
0 回答
302 浏览

java - Spark故障检测-为什么datanode不向主机(驱动程序)发送心跳

众所周知,心跳是周期性发送的信号,用于指示节点正常运行或与系统的其他部分同步

在我们的系统中,我们有 5 台工作机器,而执行在其中 3 台上运行

我们的系统包括5台datanodes机器(workers)和3台master机器,hadoop版本是2.6.4,所有机器都是redhat机器版本7.x

和节俭服务器安装在第一台 master1 机器上(驱动程序在 master1 中)

在 Spark 中,心跳是执行程序(从工作机器)发送到驱动程序的消息。(master1 机器)消息由案例类 org.apache.spark.Heartbeat 表示

然后驱动程序通过 org.apache.spark.HeartbeatReceiver#receiveAndReply(context: RpcCallContext) 方法接收消息。司机:

heartbeats 的主要目的在于检查给定节点是否还活着(从 worker 机器到 master1 机器)

驱动程序通过向自身发送 ExpireDeadHosts 消息以固定时间间隔(在 spark.network.timeoutInterval 条目中定义)对其进行验证。处理消息后,驱动程序会检查最近没有心跳的执行程序。

直到现在我解释了这个概念

我们注意到 executor 发送的消息无法传递给驱动程序,并且从 yarn 日志中我们可以看到该警告

我的问题是 - 驱动程序(master1 机器)没有从工人机器获得心跳的原因可能是什么?

0 投票
0 回答
150 浏览

apache-spark - 如何在不调用 Hive 执行引擎的任何部分的情况下使用 SparkSQL 及其执行引擎来查询 Hive 数据库和表?

我创建了可以从 Hive CLI 和/或beeline CLI 和/或 Spark (2.3.1) WITH 运行的 select 和 join 语句enableHiveSupport=TRUE。(注意:我的 API 使用 SparkR)

使用直线连接和写入需要 30 分钟,但使用 Spark 连接和写入enableHiveSupport=TRUE需要 3.5 小时。这要么意味着 Spark 和它的连接器是垃圾,要么我没有按照我应该的方式使用 spark……而且我读到的关于 Spark 的“自切片面包以来最好的东西”评论的所有内容都意味着我可能没有正确使用它。

我想从 Hive 表中读取,但我不希望 Hive 做任何事情。我想对每月数据运行连接,对每条记录的每月增量运行回归,然后将我的最终斜率/beta 输出到实木复合地板中的输出表,如果需要,可以从 Hive 读取......最好以与我已经对用作 Hive 输入数据的表进行了分区。

这是一些代码,应要求......但我认为你不会学到任何东西。您不会通过大数据查询获得可重现的结果。

0 投票
2 回答
495 浏览

apache-spark - Spark Thrift 服务器在通过 JDBC 传输之前将完整数据集加载到内存中

Spark Thrift 服务器尝试在通过 JDBC 传输之前将完整数据集加载到内存中,在 JDBC 客户端上我收到错误:

查询:从表中选择 *。是否可以为 Thrift Server 启用流模式之类的功能?主要目标 - 使用 SparkSQL 通过 JDBC 连接授予从 Pentaho ETL 到 Hadoop 集群的访问权限。但是如果 Thrift Server 应该在传输之前将完整的数据集加载到内存中,这种方法将不起作用。

0 投票
0 回答
214 浏览

database - 写入 SQL 数据库 - ConnectionException - PySpark

我正在尝试将数据框写入 OmniSci 的数据库,基本上是一个 GPU 支持的 SQL 数据库。尝试这样做时收到一个奇怪的错误:

并收到此错误:

Py4JJavaError:调用 o309.save 时出错。:java.sql.SQLException:连接失败 - org.apache.thrift.transport.TTransportException:java.net.ConnectException:com.mapd.jdbc.MapDConnection 处的连接超时(连接超时)。(MapDConnection.java:113)在 com.mapd.jdbc.MapDDriver.connect(MapDDriver.java:55) 在 org.apache.spark.sql.execution.datasources.jdbc.DriverWrapper.connect(DriverWrapper.scala:45) 在 org.apache.spark.sql .execution.datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$1.apply(JdbcUtils.scala:63) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$$anonfun$createConnectionFactory$1.apply(JdbcUtils. scala:54) 在 org.apache.spark 的 org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:63)。

有人有想法吗?我已 ping 通服务器并确认端口已打开

0 投票
1 回答
748 浏览

apache-spark - 在 Windows 10 中启动 Spark Thrift 服务器

我正在尝试使用启动 Spark Thrift Server

D:\spark\spark-2.3.2-bin-hadoop2.7\bin>spark-class org.apache.spark.deploy.SparkSubmit --class org.apache.spark.sql.hive.thriftserver.HiveThriftServer2 spark-internal

在cmd中。

但是,在我到达下面的行之后, cmd 永远挂起。有谁知道原因?感谢您的任何建议。

INFO ThriftCLIService:98 - 使用 5...500 个工作线程在端口 10000 上启动 ThriftBinaryCLIService

0 投票
1 回答
512 浏览

amazon-web-services - 如何在 AWS EMR 集群中托管的 spark 中监控 hive thrift 服务器的运行状况?

我们使用 JDBC 连接到 spark EMR 集群上的 hive thrift 服务器。我们遇到了一些临时性的问题,即 Thrift 服务器崩溃并需要手动重启。

我们想知道是否有任何 [希望是简单的] 方法可以让我们监控 thrift 服务器的健康状况?至少,我们希望在它出现故障时得到警报。拥有其他服务器健康指标也很好。