首页 文章

在多节点Cassandra集群上运行猪

提问于
浏览
1

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

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

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

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

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

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

1 回答

  • 1

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

    有关更多信息,我会查看在examples / pig下的cassandra源代码下载的自述文件 . 那里也有很多解释 .

相关问题