1

我刚刚开始为我未来的一个项目学习 Hadoop 和 PIG(从前两天开始!)。

对于实验,我安装了 Hadoop(默认 localhost:9000 上的 HDFS)作为伪分布式模式和 PIG(map-reduce 模式)。

当我通过输入 ./bin/pig 命令初始化 PIG 时,它启动了 GRUNT 命令行,我收到消息表明 pig 与 HDFS (localhost:9000) 连接,后来我可以通过 pig 成功访问 HDFS。

我期待为 PIG 执行一些手动配置以访问 HDFS(根据各种互联网文章)。

我的问题是,PIG 从哪里识别出默认的 HDFS 配置(localhost:9000)?我检查了 pig.properties,但我没有在那里找到任何东西。我需要这些信息,因为我将来可能会更改默认的 HDFS 配置。

顺便说一句,我在我的 OS PATH 变量中定义了 HADOOP_HOME 和 PIG_HOME。

4

2 回答 2

1

安装 Pig(我假设是 v0.10.0)时,您必须告诉它如何连接到HDFS. 我不知道你是怎么做到的,但通常这是通过将 hadoop conf dir 路径添加到PIG_CLASSPATH环境变量来完成的。您也可以设置HADOOP_CONF_DIR

如果您正在启动 grunt shell,Pig 将定位 Hadoop 配置 XML 的目录,并获取fs.default.name(core-site.xml) 和mapred.job.tracker(mapred-site.xml) 的值,即:Namenode 和 JobTracker 的位置。

作为参考,您可以查看 Pig shell 脚本以了解 env. 变量被收集和评估。

于 2012-11-18T09:15:01.640 回答
0

PIG 可以通过 3 种方式连接到底层 HDFS

1- Pig 使用 HADOOP_HOME 来查找要运行的 HADOOP 客户端。您的 HADOOP_HOME 应该已经在您的 bash_profile export HADOOP_HOME=~/myHadoop/hadoop-2.5.2 中设置

2-否则您的 HADOOP_CONF_DIR 可能已经设置,其中包含用于 hadoop 配置导出 HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop/ 的 xml 文件

3-如果未设置这些,您还可以通过更改 PIG_HOME/conf 目录下的 pig.properties 连接到底层 hdfs

于 2016-01-22T11:36:48.700 回答