2013-02-17 100 views
1

我正在研究BI流程,它将从cassandra读取数据,使用Map Reduce创建摘要并将其写回不同的键空间。在多节点Cassandra集群上运行猪

从单个节点开始,一切正常,但是当移动到多节点时,我不确定是否完全理解拓扑和配置。

我有一个3节点的设置。每个都有一个Cassandra节点(版本1.1.9),数据节点和任务跟踪器(版本0.20.2 + 923.421-CDH3U5)。 NameNode和作业跟踪器位于不同的服务器上。在这一点上,我正尝试从DataNode服务器运行Pig脚本。

我不确定的事情是猪参数PIG_INITIAL_ADDRESS。我假设查询将在所有Cassandra节点上运行,每个任务跟踪器只会查询本地Cassandra节点,并且reducer将处理任何重复项。基于这个假设,我认为PIG_INITIAL_ADDRESS应该是localhost。但在运行猪脚本时失败:

java.io.IOException异常:无法连接到服务器localhost:9160个

我的问题是 - 应该在初始地址是卡桑德拉节点中的任何一个,并且从Cassandra密钥分区完成群集上的分割映射(我将得到我需要的分布)? 如果我在哪里使用java map reduce,我还需要提供初始地址吗? 目前的实施是否假定猪正在从Cassandra节点运行?

回答

1

PIG_INITIAL_ADDRESS是环中Cassandra节点之一的地址。为了让Hadoop作业从Cassandra读取数据或将数据写入Cassandra,它只需要设置一些属性。这些属性也可以在作业属性中设置,也可以在您运行作业的服务器上的默认Hadoop配置中进行设置。除此之外,就像向求职者提交工作一样。

欲了解更多信息,我会看看在cassandra源下载example/pig下的自述文件。那里也有很多解释。

+0

谢谢杰里米!我查看了自述文件,这几乎是我已阅读的基础知识。我没有使用mange来运行集群,但仍然没有根据cassandra发行版获得集群上的地图分布...但是只是假设它是一种有用的魔法:) – 2013-02-22 08:37:09

相关问题