使用Hadoop配置pig关系

时间:2014-05-23 14:39:34

标签: hadoop apache-pig

我很难理解Hadoop和Pig之间的关系。 我理解Pig的目的是隐藏脚本语言Pig Latin背后的MapReduce模式。

我不明白Hadoop和Pig是如何联系在一起的。到目前为止,唯一的安装程序似乎假设pig与主hadoop节点在同一台机器上运行。 实际上,它使用hadoop配置文件。

这是因为pig只将脚本转换成mapreduce代码并将它们发送到hadoop吗?

如果是这样的话,我怎么能配置Pig以便将脚本发送到远程服务器?

如果没有,这是否意味着我们总是需要在猪身上运行hadoop?

1 个答案:

答案 0 :(得分:5)

猪可以两种模式运行:

  1. 本地模式。在此模式下,根本不使用Hadoop群集。所有进程都在单个JVM中运行,文件从本地文件系统中读取。要以本地模式运行Pig,请使用以下命令:

    pig -x local 
    
  2. 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
    
  3. 因此,您可以将Pig安装到任何计算机并连接到远程群集。 Pig包含Hadoop客户端,因此您无需安装Hadoop即可使用Pig。