我在玩集群上的一些数据,想做一些聚合——没什么太复杂的,但比求和更复杂的是,很少有连接和计数差异。我已经用scala在hive和spark中实现了这个聚合,并希望比较执行时间。
当我从gateway提交脚本时,linux时间函数给我的实时时间比我期望的sys时间小。但我不确定该选哪一个作为比较。可能只是使用sys.time并运行两个查询几次?在这种情况下,我是可以接受的还是完全不懂?
我在玩集群上的一些数据,想做一些聚合——没什么太复杂的,但比求和更复杂的是,很少有连接和计数差异。我已经用scala在hive和spark中实现了这个聚合,并希望比较执行时间。
当我从gateway提交脚本时,linux时间函数给我的实时时间比我期望的sys时间小。但我不确定该选哪一个作为比较。可能只是使用sys.time并运行两个查询几次?在这种情况下,我是可以接受的还是完全不懂?
1条答案
按热度按时间kqlmhetl1#
实时的。从性能基准的Angular 来看,您只关心在查询完成之前需要多长时间(人工时间),您可以查看结果,而不关心应用程序内部正在启动多少进程。
注意,我会非常小心地进行性能基准测试,因为spark和hive都有大量可调的配置旋钮,这些旋钮会极大地影响性能。请参阅这里的一些示例,这些示例通过矢量化、数据格式选择、数据bucketing和数据排序来改变配置单元的性能。
“普遍共识”是spark比tez上的hive更快,但是hive可以更好地处理不适合内存的巨大数据集(我不打算引用一个来源,因为我很懒,做一些谷歌搜索)