1

我正在研究 BI 流程,该流程将从 cassandra 读取数据,使用 Map Reduce 创建摘要并写回不同的键空间。

从单个节点开始,一切都按我的预期工作,但是当移动到多节点时,我不确定我是否完全理解拓扑和配置。

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

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

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

我的问题是 - 初始地址是否应该是 Cassandra 节点中的任何一个,并且在集群上拆分地图是从 Cassandra 密钥分区完成的(我会得到我需要的分布)吗?如果我在哪里使用 java map reduce,我还需要提供初始地址吗?当前的实现是否假设 pig 是从 Cassandra 节点运行的?

4

1 回答 1

1

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

有关更多信息,我会查看示例/pig 下的 cassandra 源代码下载中的自述文件。里面也有很多解释。

于 2013-02-21T17:34:16.603 回答