Hadoop之Pig安装

Pig可以看做是Hadoop的客户端软件,使用Pig Latin语言可以实现排序、过滤、求和、分组等操作。

Pig的安装步骤:

一、去Pig的官方网站下载。http://pig.apache.org/releases.html#14+April%2C+2014%3A+release+0.12.1+available

这里我选择的是14 October, 2013: release 0.12.0 available 这个版本。将pig-0.12.0.tar.gz 下载到本地中。

二、将Pig放在了/usr/local 文件目录下(我个人),解压

解压命令:tar zxvf pig-0.12.0.tar.gz 解压完成后会出现pig-0.12.0文件目录。我将其改名为pig。

重命名命令:mv pig-0.12.0 pig

三、设置环境变量

编辑/root目录下的.bash_profile文件(隐藏文件,需要使用ls -a 命令查看)

修改PATH。改为PATH=$PATH:/usr/local/pig/bin:$HOME/bin  (红色部分是我增加的)

如果没有设置JAVA_HOME环境变量,这里也要增加 JAVA_HOME=/usr (java存放目录的上级目录)

新增PIG_CLASSPATH=/usr/local/hadoop/conf/ (PIG_CLASSPATH后面指向的是Hadoop的安装目录下的配置文件目录)

export PAHT

export JAVA_HOME

export PIG_CLASSPATH

四、验证变量是否设置成功

验证命令:set

查看JAVA_HOME 和PAHT

paht路径中要确保有Hadoop的安装目录和pig的安装目录

五、本地模式运行

命令:pig -x local

出现grunt> 表示配置成功!

六、修改etc/hosts文件

将ip与主机名对应

七、mapreduce工作模式

运行命令:pig

出现grunt> 表示配置成功!

可能出现的问题:

ERROR 1066: Unable to open iterator for alias A

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias A
at org.apache.pig.PigServer.openIterator(PigServer.java:912)
at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:752)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:372)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:228)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:203)
at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:66)
at org.apache.pig.Main.run(Main.java:542)
at org.apache.pig.Main.main(Main.java:156)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.hadoop.util.RunJar.main(RunJar.java:160)
Caused by: org.apache.pig.backend.datastorage.DataStorageException: ERROR 0: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /tmp/temp41009746. Name node is in safe mode.
The reported blocks is only 30 but the threshold is 0.9990 and the total blocks 31. Safe mode will be turned off automatically.

解决方法:很有可能是namenode处于安全模式。使用命令: hadoop dfsadmin -safemode leave 关闭安全模式。

原文地址:https://www.cnblogs.com/6tian/p/3754733.html