hadoop - Cassandra + Solr/Hadoop/Spark - 选择合适的工具

标签 hadoop solr cassandra analytics apache-spark

我目前正在研究如何存储和分析每行最多 1000 列的基于时间的丰富数据。目前,Datastax Enterprise 提供的 Cassandra 和 Solr、Hadoop 或 Spark 似乎基本可以满足我的要求。但细节决定成败。

在 1000 列中,大约 60 列用于类似实时的查询(网络前端、用户发送表单并期望快速响应)。这些查询或多或少是 GROUPBY 语句,其中计算了次数或出现次数。

由于 Cassandra 本身不提供所需的分析功能(没有 GROUPBY),我只剩下这些替代方案:

  • 通过 Cassandra 粗略查询并在自写代码中过滤结果集
  • 使用 Solr 索引数据并运行 facet.pivot 查询
  • 使用 Hadoop 或 Spark 并运行查询

第一种方法似乎很麻烦且容易出错……Solr 确实具有一些分析功能,但如果没有多字段分组,我就会陷入困境。我不知道这是一种好的方法还是高效的方法……最后但并非最不重要的是 Hadoop 和 Spark,前者已知不是实时查询的最佳选择,后者相当新,可能还没有准备好生产。

那么该走哪条路呢?这里没有一个适合所有人的方法,但在我采用一种方法之前,我想获得一些反馈。也许我想的太复杂了,或者我的期望太高了 :S

提前致谢

阿曼

最佳答案

在我现在工作的地方,我们有一组类似的技术要求,解决方案是 Cassandra-Solr-Spark,完全按照这个顺序。

因此,如果一个查询可以被 Cassandra 索引“覆盖”——很好,如果不能——它就会被 Solr 覆盖。对于测试和不经常查询 - Spark(Scala,由于它的旧版本而没有 SparkSQL——它是一家银行,从干邑白兰地到软件,一切都应该经过测试和成熟)。

总的来说,我同意这个解决方案,尽管有时我觉得一些客户的请求根本不应该被认真对待,这样可以让我们免于大量奇怪的查询:)

关于hadoop - Cassandra + Solr/Hadoop/Spark - 选择合适的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22745266/

相关文章:

hadoop - nifi ConvertRecord JSON 到 CSV 只得到一条记录?

hadoop - Hadoop Distcp 是否在 block 级别进行复制?

lucene - 在 Azure 和 Lucene.NET 上构建分布式索引。我应该学习 Solr 和 Hadoop 吗?

cassandra - 如何在 DataStax Enterprise 上使用 Stargate 获取数据

apache-spark - Spark magic 输出提交器设置无法识别

solr - 如何在SOLR中搜索包含关键字,.的所有字段?

Solr 分层方面 : how to get all 2nd-level values for the top N 1st-level values

cassandra - 如何使用 datastax 驱动程序 session 在 cassandra 中创建带有 order by 的 cql 查询?

Cassandra 为工业数据传感器节省时间序列

mongodb - 使用 MongoDB Hadoop 驱动程序创建 Hive 表