Apache Phoenix vs Hive-Spark

时间:2015-04-02 05:31:47

标签: cassandra hive apache-spark hbase phoenix

什么更快/更容易转换为SQL,接受SQL脚本作为输入:Spark SQL是Hive高延迟查询或Phoenix的一层速度?如果是这样,怎么样?我需要对数据进行大量的upserts / join / grouping。 [HBase的]

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

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

谢谢, kraster

2 个答案:

答案 0 :(得分:2)

http://phoenix-hbase.blogspot.com/ 我更确定在Hbase上使用Phoenix会更快。

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

答案 1 :(得分:2)

你有几个选择(据我所知)

  1. Apache phoenix是低延迟和中型表(1M - 100M行,但要注意具有多列的表!)处理的不错选择。凤凰的一大优点是它很容易上手。我公司已经建立了HBase集群(使用kerberos)。要使用Phoenix,我需要的只是HMaster URL,Hbase-site.xml和一个用于实现操作的keytab。非常快速的读取和写入是不错的(对我来说它较慢,因为我需要动态地执行它,因此我强制使用Java客户端API而不是批量加载)

  2. 使用Spark的Hive也很棒。我不确定它在凤凰城的表现有多棒。由于Spark在内存中做了大部分事情,我认为它应该很快。但是,我可以告诉你,如果你想将SQL访问作为某种API公开,使用spark变得非常困难。

  3. Presto是一款出色的产品,提供类似Spark的处理能力和SQL接口,允许您从多个来源(Hive,Cassandra,MySQL ..等)连接数据

  4. 希望这有帮助。