PIG自动连接默认HDFS,怎么样?

时间:2012-11-18 08:38:58

标签: hadoop apache-pig

我刚刚开始学习Hadoop和PIG(最近两天!),这是我未来的一个项目。

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

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

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

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

BTW,我在OS PATH变量中定义了HADOOP_HOME和PIG_HOME。

2 个答案:

答案 0 :(得分: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。收集和评估变量。

答案 1 :(得分: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配置的xml文件 export HADOOP_CONF_DIR = $ HADOOP_HOME / etc / hadoop /

3 - 如果没有设置这些,你也可以连接到底层的hdfs 通过更改PIG_HOME / conf dir

下的pig.properties