【问题标题】:How Spark Thrift server is related to Apache ThirftSpark Thrift 服务器与 Apache Thrift 的关系
【发布时间】:2018-01-21 21:24:16
【问题描述】:

我读到post on quora 告诉Spark Thrift 服务器与Apache Thrift 有关,这是d 二进制通信协议。 Spark Thrift server 是 Hive 的接口,但是 Spark Thrift server 是如何使用 Apache Thrift 通过二进制协议/rpc 与 Hive 通信的呢?

【问题讨论】:

  • “Spark Thrift 服务器是 Hive 的接口” > 它是 Hive 堆栈的部分替代。 Thrift 协议用于 HiveServer2(或 Impala,或 Spark)服务和 JDBC/ODBC/DBI 客户端之间。 Thrift 协议也用于“SQL”服务(或旧版 Hive CLI)和 Hive Metastore 之间。
  • @Samson Scharfrichter 我可以完全使用 Spark Thrift 代替 Hive 但使用 Spark Api 吗?
  • 风险自负。另一种选择是使用 Hive-on-Spark(即 Spark 作为“执行引擎”而不是 TEZ 或 MapReduce),风险自负。
  • @Samson Scharfrichter thx,我明白了,还有一个问题 - 命令 start-thriftserver.sh 是否启动 Hive 服务器?

标签: apache-spark


【解决方案1】:

Spark Thrift Server 是用于 Spark 的 Hive 兼容接口。

这意味着,它创建了HiveServer2 的实现,你可以连接到beeline,但是几乎所有的计算都将使用 Spark 而不是 Hive 进行计算。

在以前的版本中,查询解析器来自 Hive。目前 Spark Thrift Server 可与 Spark 查询解析器配合使用。

Apache Thrift 是一个开发 RPC(远程过程调用)的框架,因此有很多使用 Thrift 的实现。 Cassandra 也使用了 Thrift,现在它被 Cassandra 原生协议所取代。

所以,Apache Thrift 是开发 RPC 的框架,Spark Thrift Server 是 Hive 协议的实现,但它使用 Spark 作为计算框架。

更多详情,请查看@RussS 的this link

【讨论】:

  • Spark Thrift 与 Apache Thrift(rpc 框架)有什么关系?
  • 如前所述 - Spark 使用 Apache Thrift
  • 为了什么目的 Spark Thrift 需要 Apache Thrift?
  • 说实话 - 我不知道。 Hive 接口与 Thrift 兼容,因此 Spark 还必须与 Thrfit 兼容才能与 Hive 兼容 - 复杂链:)
  • 一段历史——当谷歌开源他们的 ProtocolBuffer 二进制消息格式时,他们没有打开他们专用的 PB 服务器。当 Facebook 开源他们的 Thrift 二进制消息格式时,他们还提供了一个开箱即用的 Thrift 服务器。 HDFS 和 HBase 选择了带有自定义服务器实现和大量性能调整的 PB。 Hive 按原样选择了 Thrift。
【解决方案2】:

您可以使用以下命令在 AWS EMR 上启动 Spark thrift 服务器 - sudo /usr/lib/spark/sbin/start-thriftserver.sh --master yarn-client

在 EMR 上,Spark thrift Server 的默认端口是 10001

在使用直线进行火花时,在 EMR 上使用以下命令

/usr/lib/spark/bin/beeline -u 'jdbc:hive2://:10001/default' -e "显示数据库;"

默认情况下,Hive thrift Server 始终在 EMR 上启动并运行,而不是 Spark thrift Server

您还可以使用 ODBC/JDBC 将任何应用程序连接到 Spark thrift 服务器,还可以通过单击“org.apache.spark.sql.hive.thriftserver.HiveThriftServer2”作业的 Application Master 链接来监控 EMR 集群上的查询在纱线资源管理器上:EMR 上的 8088

【讨论】:

    猜你喜欢
    • 2018-08-19
    • 1970-01-01
    • 2014-02-26
    • 2015-10-27
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 2018-06-08
    • 1970-01-01
    相关资源
    最近更新 更多