Hadoop Cassandras映射减少支持
我最近遇到了一个案例,Cassandra非常适合使用每个事件类型的自定义TTL存储基于时间的事件(另一个解决方案是将其保存在hadoop中并手动记账(TTL和其他东西,这是一个非常复杂的想法)或切换到hbase)。 问题是没有Datastax Enterprise edition,cassandra MapReduce支持的开箱即用性有多好 看起来他们在卡桑德拉斯投资了很多,但我问自己,如果正常的猪 CassandraLoader是主动维护的,实际上是可伸缩的(因为它似乎只不过是在切片中的行上进行迭代)。Hadoop Cassandras映射减少支持,hadoop,mapreduce,cassandra,apache-pig,Hadoop,Mapreduce,Cassandra,Apache Pig,我最近遇到了一个案例,Cassandra非常适合使用每个事件类型的自定义TTL存储基于时间的事件(另一个解决方案是将其保存在hadoop中并手动记账(TTL和其他东西,这是一个非常复杂的想法)或切换到hbase)。 问题是没有Datastax Enterprise edition,cassandra MapReduce支持的开箱即用性有多好 看起来他们在卡桑德拉斯投资了很多,但我问自己,如果正常的猪 CassandraLoader是主动维护的,实际上是可伸缩的(因为它似乎只不过是在切片中的行上进
这是否适用于100百万行?为什么不使用hbase?Hbase更适合于timeseries数据。在启用WAL的情况下,您可以轻松地在非常小的集群上放置数十亿行,在小的3node集群上(高达50MB/s)每秒可以获得500k行。 卡桑德拉有几个缺陷:
您可以使用random partitioner映射/减少,但是您得到的键当然是随机顺序的。您可能希望在cassandra中使用CL=1,这样在执行map/reduce时就不必每次读取2个节点的数据,而应该读取本地数据。不过我还没有使用Pig。这是因为我已经在项目中使用了cassandra,并不想引入新技术……这很好。如果可以一直处理所有数据-这应该可以,但如果数据会增长,我建议重新考虑使用更适合mapreduce工作负载存储。这是什么废话?许多(大多数?)Cassandra集群非常好地支持数十亿行。您提到了修复,但这当然也是分布式的。Cassandra确实不鼓励您的数据模型依赖全局排序,但这并不是一个很大的缺点,特别是Cassandra内置了对列索引的支持(在map/reduce中也支持).对Cassandra的Pig支持使用列FamilyInputFormat和-OutputFormat。因此,无论你在hadoop中能做什么或不能做什么,都可以很好地映射到你在cna中能做什么,而在Cassandra和Pig中不能做什么。使用随机分区器真的很快吗?我猜它就是这样做的我曾经尝试手动迭代一个1亿行CF,但它在发送第一个RangeSicleQuery后从未真正启动。该链接看起来不像map/reduce,因为map/reduce实现了映射器和Reducer之类的东西…我需要很快再次设置它,并且没有我以前项目中的代码…是的,它很快,因为它们都在运行并行…启动速度很慢,就像hadoop一样,因为它向每个任务跟踪器交付代码。“hadoop”和“fast”并没有真正结合在一起。这就是顺序扫描的本质。但是C*扫描比HBase快,如果这让你感觉更好的话:我理解Hadoop和批处理的本质。我只是尝试在cassandra中的所有行(100000.000.000行)上迭代一个cassandra cf(随机分区器),这花了很长时间,我放弃了。我只是在问自己,通过hadoop实现的MapReduce是否使用相同的机制。