我正在使用Cassandra来存储我的数据和hive来处理我的数据。 我有5台机器,我已经设置了cassandra和2台机器,我用作分析节点(hive运行的地方) 所以我想问一下,hive是仅仅在两台机器上进行map reduce(分析节点)并将数据带到那里,或者它将进程/计算移动到5个cassandra节点并处理/计算这些机器上的数据。(我所知道的)在hadoop中,进程移动到数据而不是数据处理)。
答案 0 :(得分:17)
如果你有兴趣与Hadoop和Cassandra结婚 - 第一个链接应该是DataStax公司围绕这个概念建立的。 http://www.datastax.com/
他们建立并支持hadoop,HDFS替换为cassandra。
据我所知 - 他们确实有数据位置:http://blog.octo.com/en/introduction-to-datastax-brisk-an-hadoop-and-cassandra-distribution/
关于Hadoop& amp;答案很好如果您对cassandra运行MapReduce,则为Cassandra数据位置
Cassandra and MapReduce - minimal setup requirements
关于你的问题 - 有一个交易:
a)如果您在单独的节点上运行Hadoop / Hive,则会丢失数据位置,因此您的数据吞吐量会受到网络带宽的限制。
b)如果你在与cassandra运行相同的节点上运行hadoop / Hive - 你可以获得数据位置,但是hive查询后面的MapReduce处理可能会阻塞你的网络(和其他资源),从而影响你从cassandra的服务质量。
如果你的cassandra集群的性能至关重要,我的建议是拥有单独的配置单元节点。
如果你的cassandra主要用作数据存储而不处理实时请求 - 那么在每个节点上运行配置单元将提高性能和硬件利用率。