pig安装,并运行简单示例

查看Hadoop对应的pig版本 http://www.aboutyun.com/blog-61-62.html


要我们使用start-dfs.sh和start-yarn.sh来进行启动Hadoop


在,/home/hadoop/.bashrc文件中添加如下红色信息
#set java environment
PIG_HOME=/home/hadoop/pig-0.9.2
HBASE_HOME=/home/hadoop/hbase-0.94.3
HIVE_HOME=/home/hadoop/hive-0.9.0
HADOOP_HOME=/home/hadoop/hadoop-1.1.1
JAVA_HOME=/home/hadoop/jdk1.7.0
PATH=$JAVA_HOME/bin:$PIG_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$HBASE_HOME/lib:$PIG_HOME/lib:$HIVE_HOME/lib:$JAVA_HOME/lib/tools.jar
export PIG_HOME
export HBASE_HOME
export HADOOP_HOME
export JAVA_HOME
export HIVE_HOME
export PATH
export CLASSPATH 
重启机器或用source命令使文件生效。

切换到.bashrc文件路径下然后

source .bashrc


如果执行pig命令 permission denied 则 chmod +x  pig  使其变成可执行文件


运行Pig程序示例

运行一个简单的示例,就是把linux下的/etc/passwd文件的第一列提取出来输出,用MapReduce模式跑,效果就是输入所有用户名

首先把/etc/passwd文件put到hadoop的hdfs上,命令如下

hadoop fs -put /etc/passwd /user/root/passwd

然后进入Pig shell,运行命令,以':'分隔提取A,然后把A的第一列放入B,dump打出B

[root@hadoop-namenodenew]# pig
grunt> A = load 'passwd' using PigStorage(':');
grunt> B = foreach A generate $0 as id;        
grunt> dump B;

输出如下:

(省略几万字....)
Input(s):
Successfully read 29 records (1748 bytes) from: "hdfs://192.168.12.67:8020/user/root/passwd"Output(s):
Successfully stored 29 records (325 bytes) in: "hdfs://192.168.12.67:8020/tmp/temp1558767875/tmp-1327634226"Counters:
Total records written : 29Total bytes written : 325Spillable Memory Manager spill count : 0Total bags proactively spilled: 0Total records proactively spilled: 0Job DAG:
job_1401631066126_0005

(省略几万字....)

(root)
(bin)
(daemon)
(adm)
(lp)
(sync)
(shutdown)
(halt)
(mail)
(uucp)
(operator)
(games)
(gopher)
(ftp)
(nobody)
(dbus)
(vcsa)
(rpc)
(abrt)
(rpcuser)
(nfsnobody)
(haldaemon)
(ntp)
(saslauth)
(postfix)
(sshd)
(tcpdump)
(oprofile)
(riak)


你可能感兴趣的:(pig安装,并运行简单示例)