Apache spark Spark Thrift server与Apache Thirft的关系

Apache spark Spark Thrift server与Apache Thirft的关系,apache-spark,Apache Spark,我读到哪个告诉服务器与哪个是d二进制通信协议有关。Spark Thrift server是配置单元的接口,但是Spark Thrift server如何使用Apache Thrift通过二进制协议/rpc与配置单元通信?Spark Thrift server是Spark的配置单元兼容接口 这意味着,它创建了HiveServer2的实现,您可以使用beeline进行连接,但是几乎所有的计算都将使用Spark而不是Hive进行计算 在以前的版本中,查询解析器来自配置单元。目前Spark Thrift

我读到哪个告诉服务器与哪个是d二进制通信协议有关。Spark Thrift server是配置单元的接口,但是Spark Thrift server如何使用Apache Thrift通过二进制协议/rpc与配置单元通信?

Spark Thrift server是Spark的配置单元兼容接口

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

在以前的版本中,查询解析器来自配置单元。目前Spark Thrift Server使用Spark查询解析器

Apache Thrift是一个开发RPC远程过程调用的框架,因此有许多实现使用Thrift。卡桑德拉也使用节俭,现在它被卡桑德拉本地协议所取代

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


有关更多详细信息,请参见@RussS

,您可以使用以下命令在AWS EMR上启动Spark Thrifts服务器-sudo/usr/lib/Spark/sbin/start-thriftserver.sh--master scread 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 Server,也可以通过单击Yarn Resource Manager上“org.apache.Spark.sql.hive.thriftserver.HiveThriftServer2”作业的应用程序主链接来监视EMR群集上的查询:“Spark thrift Server是到hive的接口”>它是蜂巢堆栈的部分替换。Thrift协议在HiveServer2(或Impala或Spark)服务和JDBC/ODBC/DBI客户端之间使用。Thrift协议也用于“SQL”服务(或旧配置单元CLI)和配置单元元存储。@Samson Scharfrichter我是否可以使用
Spark Thrift
完全代替配置单元,但使用Spark Api?风险自负。另一种选择是使用Spark上的Hive(即Spark作为“执行引擎”而不是TEZ或MapReduce),风险由您自己承担。@Samson Scharfrichter thx,我明白了,还有一个问题-命令是否
启动thriftserver.sh
启动Hive server?阅读@Russ的帖子:Spark Thrift与Apache Thrift(rpc框架)有何关系?如前所述-Spark使用Apache Thrift用于什么目的Spark Thrift需要Apache Thrift?老实说-我不知道。Hive接口与Thrift兼容,因此Spark也必须与Thrfit兼容,才能与Hive相比-复杂的链:)有一点历史-当Google公开其ProtocolBuffer二进制消息格式they没有打开他们的专用PB服务器。当Facebook公开他们的Thrift二进制消息格式时,他们还提供了一个开箱即用的Thrift服务器。HDFS和HBase选择了带有自定义服务器实现和许多性能调整的PB。Hive选择了Thrift,就像现在一样。