`
weitao1026
  • 浏览: 991635 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用CDH的hadoop里面有对应的组件Pig,但版本较低

阅读更多

1,使用CDH的hadoop里面有对应的组件Pig,但版本较低,所以放弃使用了,直接下载
Apache Pig0.15最新的版本(支持Tez,比Hive更容易集成)
下载地址:http://archive.apache.org/dist/pig/pig-0.15.0/pig-0.15.0.tar.gz
直接下载二进制包即可

2,配置Pig的环境变量如下:
#Pig
export PIG_HOME=/ROOT/server/pig
export PIG_CLASSPATH=$HADOOP_HOME/etc/hadoop 
export PATH=/ROOT/server/pig/bin:$PATH
3,直接执行pig命令,启动程序,会报如下异常
[main]ERROR org.apache.pig.Main -ERROR 2998:Unhandled internal error.Found interface jline.Terminal,but class was expected

原因是由于jline这个包和hadoop的yarn/lib下面的jline的包不一致造成的。
可参考:https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started里面的解释

解决方法:

删掉hadoop的yarn/lib下的那个jline版本较高的包,将pig/lib下的jline-1.0.jar包拷贝到yarn/lib下,然后
重新执行pig命令,可正常启动。





然后执行一个pig脚本写的MapReduce作业,发现会报如下异常,但是MR作业是跑成功的:




原因是,Hadoop的jobhistroy进程没有启动。
解决办法:
执行sbin/mr-jobhistory-daemon.sh start historyserver 命令,启动日志守护进程

然后再次跑pig作业,一切正常 !

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics