我刚刚开始学习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。
答案 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