7

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

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

我很可能会使用 Spark,因为我想利用 MLlib。但是对于处理应该是我的选择去的数据?

谢谢,克拉斯特

4

2 回答 2

2

http://phoenix-hbase.blogspot.com/ 我更确定 Hbase 上的 Phoenix 会运行得更快。

这是测试查询的示例查询和 PC 要求:从超过 10M 和 100M 行的表中选择 count(1)。数据是 5 个窄列。Region Servers: 4 (HBase heap: 10GB, Processor: 6 cores @ 3.3GHz Xeon) 在此处输入图像描述 因为 Phoenix 使用 HBASE 客户端接口加载所有查询,并且使用查询引擎仅映射 sql 任务用于 HBase 中的 map reduce 任务

于 2015-04-30T11:34:13.130 回答
2

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

  1. Apache phoenix 是低延迟和中型表(1M - 100M 行,但要注意具有许多列的表!)处理的不错选择。phoenix 的一大优点是它非常容易上手。我的公司已经设置了一个 HBase 集群(使用 kerberos)。要使用 Phoenix,我只需要 HMaster URL、Hbase-site.xml 和一个 keytab 来启动操作。非常快速的读写是不错的(它对我来说比较慢,因为我需要动态地做,所以我被迫使用 Java 客户端 API 而不是批量加载)

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

  3. Presto 是一款出色的产品,它通过 SQL 接口提供类似 Spark 的处理能力,允许您互连来自多个来源(Hive、Cassandra、MySQL ..etc)的数据

希望这可以帮助。

于 2015-12-05T02:49:34.390 回答