2015-04-02 115 views
6

将SQL脚本作为输入接受转换为SQL的速度更快/更容易:Spark SQL作为Hive高延迟查询或Phoenix的速度层出现?如果是这样,怎么样?我需要在数据上做很多upserts/joining/grouping。 [hbase]Apache Phoenix vs Hive-Spark

在Cassandra CQL之上是否有任何替代方案来支持上面提到的(以实时方式加入/分组)?

我很可能会被绑定到Spark,因为我想利用MLlib。但处理数据应该是我的选择?

感谢, kraster

回答

1

http://phoenix-hbase.blogspot.com/ 我更多的则确保凤凰城的HBase的运行速度更快。

这里是示例查询和PC测试要求 查询:从10M和100M行的表中选择count(1)。数据是5个窄列。 (HBase堆:10GB,处理器:6核@ 3.3GHz Xeon) enter image description here 因为Phoenix使用HBASE客户端接口加载所有查询,并且使用查询引擎只为map任务映射sql任务

+0

问题是关于Hive-Spark。这个图表没有提到Hive是否使用MR或Spark。这似乎是与Hive MR而不是Spark的比较 – sinu 2016-02-15 09:23:39

2

你有几个选项(从我的知识)

  1. Apache的凤凰是低延迟和中等规模的表(1M一个不错的选择 - 有许多列的表的100M行,但要小心! )处理。菲尼克斯的优点在于它非常容易上手。我的公司已经建立了一个HBase集群(使用kerberos)。要使用Phoenix,我需要的只是HMaster URL,Hbase-site.xml和一个keytab,以使操作顺利进行。非常快速的读取和写入是体面的(它对我来说比较慢,因为我需要动态地做,所以我强制使用Java客户端API而不是批量加载)

  2. Hive with Spark也很棒。我不确定菲尼克斯表现有多出色。由于Spark在内存中执行大部分操作,因此我认为它应该很快。不过,我可以告诉你,如果你想将SQL访问公开为某种类型的API,使用spark会变得非常困难。

  3. 的Presto是一个伟大的产品,提供了与SQL接口星火般的处理能力,使您可以从许多来源(蜂巢,卡桑德拉,MySQL的..等)

希望这-CONNECT间数据帮助。