2013-02-12 75 views
8

我正在使用Cassandra来存储我的数据和配置单元以处理我的数据。 我有5台机器上设置了cassandra和2台机器作为分析节点(其中配置单元运行) 因此,我想问的是,是否在两台机器(分析节点)上配置了映射减少并将数据带到那里或它将进程/计算移动到5个cassandra节点,并在这些机器上处理/计算数据(我知道在hadoop中,进程转移到数据而不是数据进行处理)。cassandra数据库上的Hadoop

回答

16

如果您有兴趣与Hadoop和Cassandra结婚 - 第一个链接应该是围绕这个概念构建的DataStax公司。 http://www.datastax.com/ 他们用HDFS替换cassandra来构建和支持hadoop。 在尽我的理解 - 他们有数据局部性:http://blog.octo.com/en/introduction-to-datastax-brisk-an-hadoop-and-cassandra-distribution/

有一个关于Hadoop的& Cassandra的数据局部性好的答案,如果你运行的MapReduce对Cassandra的 Cassandra and MapReduce - minimal setup requirements

关于你的问题 - 有一个tradeof : a)如果在单独的节点上运行Hadoop/Hive,则会丢失数据本地及其数据吞吐量,这受限于网络带宽。 b)如果您在与cassandra运行相同的节点上运行hadoop/Hive - 您可以获取数据位置,但在hive查询后面执行MapReduce处理可能会阻塞您的网络(以及其他资源),从而影响cassandra的服务质量。

如果您的cassandra集群的性能至关重要,我的建议是将单独的配置单元节点。
如果您的cassandra主要用作数据存储并且不处理实时请求 - 那么在每个节点上运行配置单元将提高性能和硬件利用率。

+0

非常感谢您的帮助 – 2013-02-12 11:15:48