pig安装配置以及PigPen插件与eclipse的集成

pig下载

pig版本的选择非常重要!!!
因为pig不同版本支持的hadoop版本不同,很容易因为版本不同导致错误。直接上图说明

这里写图片描述
上图可以看到,官网针对每个pig适用的hadoop版本都做了说明,所以版本选择很重要。

我用的是hadoop1.0.0。按照官网的说法,最新的pig0.17.0都是可以使用的,但是我下载下来安装后,就直接报错,经过一番尝试,最高能用的版本是pig0.12.0。坑爹!!!!
pig官网:http://pig.apache.org/ 进去后,按照下面的步骤:
这里写图片描述
这里写图片描述

进去后就是一些下载的镜像网站,随便选一个,如果发现下载速度太慢就换一个。
这里写图片描述

这里只能看到最新的pig0.16.0和pig0.17.0版本,但是1标记的地方是旧版本的链接
这里写图片描述

点击1处的链接,去下载旧版本。
这里写图片描述

我下载的是pig0.12.0
这里写图片描述
下载完成。

pig安装

解压:

tar -zxvf pig-0.12.0.tar.gz

移动到合适的位置,你自己觉得哪里合适放哪里
我是放在/usr/local下

mv pig-0.12.0 /usr/local/pig-0.12.0

配置环境变量,pig安装的前提是你成功的安装hadoop,当然也可以不安装,pig会使用自己捆绑的hadoop,不过我没试过,我是自己安装了hadoop1.0.0。
pig要配置的环境变量不多,写在/etc/profile或者~/.bashrc中都可以,我是写在~/.bashrc中的,内容如下:

# pig
export PIG_HOME=/usr/local/pig-0.12.0
export PIG_CLASSPATH=$HADOOP_HOME/conf
export PATH=$PATH:$PIG_HOME/bin

PIG_HOME当然就是你的pig的路径了,HADOOP_HOME是你的hadoop的路径。其他的配置就没有了。
完成后,先启动hadoop,输入:

start-all.sh

成功启动hadoop后才能启动pig。输入:

pig

这里写图片描述
出现grunt>的输入提示就表明pig安装并启动成功了。

第一个红色框中指出了你的pig的版本;
第二个红色框指出了错误日志的存放目录(这个位置默认是在~/下,所以最好改一下,不然会有很多日志文件)
修改错误日志的存放路径:打开你的pig目录conf目录下的pig.properties文件。
找到pig.logfile变量,先取消注释,然后后面加上你想要存放错误日志的路径,错误日志能查看错误信息,很适合调试问题。
这里写图片描述

第三个红色框表明了pig连接hadoop的hdfs;
第四个红色框表明了pig连接hadoop的mapreduce。

至此,pig的安装配置和启动都完成了。

eclipse中集成PigPen插件

这里有一个英文的配置教程:https://wiki.apache.org/pig/PigPen

1)先要下载这个插件:https://issues.apache.org/jira/browse/PIG-366
这里写图片描述
选择一个版本下载即可。我用的是0.04的版本,0.7.5和0.7.4我试过了,不能用,只能看到一个图标,所以替换成了0.04的版本。

2)下载完成后,将插件放到eclipse/plugins/下,然后重启eclipse
这里写图片描述
若能看到PigPen的选项,说明插件成功导入了。

修改Pig jar location项,点击Browse,在你的pig目录下找到pig-x.x.x.jar

点击“New”添加key:ConfigurationPath ; value:你的pig的conf目录路径

点击“Apply”,点击“ok”。

添加了插件后,eclipse的工具栏会多出来三个按钮:
这里写图片描述

3)新建一个project(最简单的project)
这里写图片描述
然后新建一个文件,以.pig作为后缀
添加如下内容:

records = load 'PigData/testsmall' using PigStorage(',')
as(year:chararray,temperature:int,quality:int);
dump records;

保存。
这里写图片描述

到这里就出现问题了,点击那三个按钮的第一个按钮:
这里写图片描述
点击第二个按钮:

这里写图片描述
这里提示ConfigurationPath没有配置,但是我确实已经配置过了,不知道为什么会报错,而且Failed to create DataStorage也不知道是什么错误,网上的资料太少了。
点击第三个按钮:

Launching the job!
Using the configuration from /usr/local/pig-0.12.0/conf
2017-10-27 16:49:31,683 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://localhost:9000
java.lang.RuntimeException: Failed to create DataStorage
    at org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:74)
    at org.apache.pig.backend.hadoop.datastorage.HDataStorage.<init>(HDataStorage.java:57)
    at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:184)
    at org.apache.pig.backend.hadoop.executionengine.HExecutionEngine.init(HExecutionEngine.java:132)
    at org.apache.pig.impl.PigContext.connect(PigContext.java:172)
    at org.apache.pig.PigServer.<init>(PigServer.java:137)
    at org.apache.pig.tools.grunt.Grunt.<init>(Grunt.java:43)
    at org.apache.pig.Main.main(Main.java:241)
Caused by: java.io.IOException: Call failed on local exception
    at org.apache.hadoop.ipc.Client.call(Client.java:718)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:216)
    at org.apache.hadoop.dfs.$Proxy0.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:319)
    at org.apache.hadoop.dfs.DFSClient.createRPCNamenode(DFSClient.java:104)
    at org.apache.hadoop.dfs.DFSClient.<init>(DFSClient.java:174)
    at org.apache.hadoop.dfs.DistributedFileSystem.initialize(DistributedFileSystem.java:67)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1339)
    at org.apache.hadoop.fs.FileSystem.access$300(FileSystem.java:56)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1351)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:213)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:118)
    at org.apache.pig.backend.hadoop.datastorage.HDataStorage.init(HDataStorage.java:71)
    ... 7 more
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:499)
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:441)

报这个错误,也查不到相关的资料。

猜你喜欢

转载自blog.csdn.net/qq_16403141/article/details/78366726