pig自动连接默认的hdfs,如何?

rslzwgfq  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(318)

我刚刚开始学习hadoop和pig(从上两天开始!)为了我未来的一个项目。
在实验中,我安装了hadoop(hdfs)作为默认设置localhost:9000)如伪分布模式和pig(map-reduce模式)。
当我通过键入./bin/pig命令初始化pig时,它启动了grunt命令行,我得到了一条消息:pig连接了hdfs(localhost:9000),之后我可以通过pig成功地访问hdfs。
我希望为pig执行一些手动配置以访问hdfs(根据各种互联网文章)。
我的问题是,pig从何处确定了默认的hdfs配置(localhost:9000)? 我查了一下Pig舍,但没发现任何东西。我需要这个信息,因为我可能会改变默认的hdfs配置在未来。
顺便说一句,hadoop\u home和pig\u home是在我的os path变量中定义的。

gcuhipw9

gcuhipw91#

pig可以通过3种方式连接到底层HDF
1-pig使用hadoop\u home查找要运行的hadoop客户端。hadoop\u home应该已经在bash\u profile export hadoop\u home=~/myhadoop/hadoop-2.5.2中设置好了
2-或者可能已经设置了hadoop\u conf\u dir,其中包含用于hadoop配置导出的xml文件hadoop\u conf\u dir=$hadoop\u home/etc/hadoop/
3-如果没有设置,您也可以通过更改pig\u home/conf dir下的pig.properties来连接到底层hdfs

w6lpcovy

w6lpcovy2#

在安装pig(我假设是v0.10.0)时,您必须告诉它将如何连接到 HDFS . 我不知道您是如何做到这一点的,但通常是通过将hadoop conf dir路径添加到 PIG_CLASSPATH 环境变量。您还可以设置 HADOOP_CONF_DIR 也。
如果您正在启动gruntshell pig,它将定位hadoop配置xmls的目录,并取 fs.default.name (core site.xml)和 mapred.job.tracker (mapred site.xml),即:namenode和jobtracker的位置。
作为参考,您可以看看pig shell脚本,了解env是如何工作的。收集并评估变量。

相关问题