2016-11-12 123 views
3

什么是通过Spark Streaming处理数据的长期存储(很多写入,很少读取)的更好选择:Parquet,HBase或Cassandra?或者是其他东西?什么是取舍?存储传入流数据的最佳方式是什么?

+0

我会建议都因为它具有数据库功能和中alll数据库它拥有最快写入卡桑德拉。 –

+0

请检查我的答案。希望这会有所帮助! –

回答

1

以我的经验,我们已经使用HBase的数据存储作为火花流数据(我们也有相同的情况下许多写入和读取数),因为我们正在使用Hadoop,HBase的与Hadoop本地集成和效果还不错..

  • 上面我们已经tostore消息的高点击率从安慰过来使用。

  • HBase非常适合做基于范围的扫描。 Casandra以可用性和许多其他事物而闻名...

  • 但是,我也可以在许多项目中观察到一个大趋势,他们只是通过火花流与火花将rawdata存储在分区结构中的hdfs(parquet + avro)中与火花数据帧(SaveMode.Append)并且它们被处理RAWDATA

分区结构的例中HDFS: completion ofbusinessdate/environment/businesssubtype/message type等.... 在这种情况下没有必要为要HBase的或任何其它数据存储

但上述方法中的一个常见问题是当您通过流式传输时,您需要repartion(1)或coleleseFileUtils.copymerge以满足对单个分区文件的块大小要求。除此之外,还可以。

这里有一些东西叫做CAP规范根据哪个决定可以采取。 enter image description here

  1. 一致性(所有节点看到在同一时间相同的数据)。

  2. 可用性(每个请求收到关于它是否成功或失败的响应)。

  3. 分区公差(系统继续 尽管任意分割操作,由于网络故障)

卡桑德拉支持AP。

Hbase支持CP。

请看详细分析,给出here

+0

我的回答有用吗?请随时提问。谢谢! –

相关问题