我很难理解Hadoop和Pig之间的关系。 我理解Pig的目的是隐藏脚本语言Pig Latin背后的MapReduce模式。
我不明白Hadoop和Pig是如何联系在一起的。到目前为止,唯一的安装程序似乎假设pig与主hadoop节点在同一台机器上运行。 实际上,它使用hadoop配置文件。
这是因为pig只将脚本转换成mapreduce代码并将它们发送到hadoop吗?
如果是这样的话,我怎么能配置Pig以便将脚本发送到远程服务器?
如果没有,这是否意味着我们总是需要在猪身上运行hadoop?
答案 0 :(得分:5)
猪可以两种模式运行:
本地模式。在此模式下,根本不使用Hadoop群集。所有进程都在单个JVM中运行,文件从本地文件系统中读取。要以本地模式运行Pig,请使用以下命令:
pig -x local
MapReduce模式。在此模式下,Pig将脚本转换为MapReduce作业并在Hadoop集群上运行它们。这是默认模式。
群集可以是本地的也可以是远程的。 Pig使用HADOOP_MAPRED_HOME环境变量在本地计算机上查找Hadoop安装(请参阅Installing Pig)。
如果要连接到远程群集,则应在pig.properties文件中指定群集参数。 MRv1的示例:
fs.default.name=hdfs://namenode_address:8020/
mapred.job.tracker=jobtracker_address:8021
您还可以在命令行中指定远程群集地址:
pig -fs namenode_address:8020 -jt jobtracker_address:8021
因此,您可以将Pig安装到任何计算机并连接到远程群集。 Pig包含Hadoop客户端,因此您无需安装Hadoop即可使用Pig。