我一直在 Sap Spark 控制器以及 Base Spark 服务器的 Vora 和 Hive 中运行一些测试。Controller 和 Spark Thrift 服务器具有相同的配置。
12列
10M行表
680Mb
Spark Server 和 SAP Controller 都以 --master YARN 和相同数量的执行器、执行器内存和内核启动。控制器和 Thrift 服务器位于 Hadoop 集群中的同一台服务器上,我运行一个测试关闭该控制器/Thriftserver,然后启动另一个进行测试。
下面的所有数字都来自Thrift Server Job Completion Time或SAP Controller Job Completion Time,我不等待结果在 HANA 或 Beeline 或 Spark-Shell 中显示。
结果:
Spark-Shell -> Spark Thriftserver -> Hive
Select Column 返回时间:13s
计数返回时间:1.2s
Spark-Shell -> Spark Thriftserver -> Vora
Select Column 返回时间:5s
计数返回时间:100ms
Hana -> Sap Controller -> Hive
Select Column 返回时间:45s
计数返回时间:4s
Hana -> Sap Controller -> Vora
Select Column 返回时间:24s
计数返回时间:2.1s
Beeline -> Spark Thriftserver -> Hive
Select Column 返回时间:35s
计数返回时间:1.9s
Beeline -> Spark Thriftserver -> Vora
Select Column 返回时间:55s
计数返回时间:1.2s
是否有任何重要的性能调优技巧可以帮助控制器?我可以从 Hive 中以比 Vora 中的 Controller 更快的速度进行选择,这一事实很有趣。