pig安装测试
tar -zxvf pig-0.16.0.tar.gz -C /home/hadoop/
设置环境变量/etc/profile
source /etc/profile
pig –version
运行pig时报如下错误
ERROR 2998: Unhandled internal error. Found interface jline.Terminal, but class was expected
解决办法:
删除{HADOOP_HOME}/share/hadoop/yarn/lib下的jline,然后将{PIG_HOME}/lib下的jline拷到{HADOOP_HOME}/share/hadoop/yarn/lib下,重启hadoop,再启动pig,就可以正常启动了
pig -help
Pig有两种执行模式,分别为:
本地模式(Local)
本地模式下,Pig运行在单一的JVM中,可访问本地文件。该模式适用于处理小规模数据或学习之用。
运行以下命名设置为本地模式:
pig –x local
MapReduce模式
在MapReduce模式下,Pig将查询转换为MapReduce作业提交给Hadoop(可以说群集 ,也可以说伪分布式)。
Pig默认模式是mapreduce,你也可以用以下命令进行设置:
pig –x mapreduce
//测试
Pig默认模式是mapreduce,
hadoop fs -mkdir /pigTest
hadoop fs -put /home/hadoop/testFile/temperature.txt /pigTest
pig //进入grunt shell //使用“ctrl+d"退出Grunt shell。
grunt> cat /pigTest/temperature.txt //查看文件内容
WordCount
解决方案:启动historyserver:
mr-jobhistory-daemon.sh start historyserver
脚本文件式进行运行:
pigTest.pig
pig pigTest.pig
tar -zxvf pig-0.16.0.tar.gz -C /home/hadoop/
设置环境变量/etc/profile
export PIG_HOME=/home/hadoop/pig-0.16.0
export PIG_CLASSPATH=$HADOOP_HOME/conf
export PATH=$PATH:$PIG_HOME/bin
source /etc/profile
pig –version
运行pig时报如下错误
ERROR 2998: Unhandled internal error. Found interface jline.Terminal, but class was expected
解决办法:
删除{HADOOP_HOME}/share/hadoop/yarn/lib下的jline,然后将{PIG_HOME}/lib下的jline拷到{HADOOP_HOME}/share/hadoop/yarn/lib下,重启hadoop,再启动pig,就可以正常启动了
pig -help
Pig有两种执行模式,分别为:
本地模式(Local)
本地模式下,Pig运行在单一的JVM中,可访问本地文件。该模式适用于处理小规模数据或学习之用。
运行以下命名设置为本地模式:
pig –x local
MapReduce模式
在MapReduce模式下,Pig将查询转换为MapReduce作业提交给Hadoop(可以说群集 ,也可以说伪分布式)。
Pig默认模式是mapreduce,你也可以用以下命令进行设置:
pig –x mapreduce
//测试
Pig默认模式是mapreduce,
hadoop fs -mkdir /pigTest
hadoop fs -put /home/hadoop/testFile/temperature.txt /pigTest
pig //进入grunt shell //使用“ctrl+d"退出Grunt shell。
grunt> cat /pigTest/temperature.txt //查看文件内容
WordCount
grunt> words = load '/input/test2' using PigStorage(' ') as (line);
grunt> grpd = group words by line;
grunt> cntd = foreach grpd generate group, COUNT(words);
grunt> dump cntd;
2018-09-01 00:31:56,147 [main] INFO org.apache.hadoop.mapred.ClientServiceDelegate - Application state is completed. FinalApplicationStatus=SUCCEEDED. Redirecting to job history server
2018-09-01 00:31:57,149 [main] INFO org.apache.hadoop.ipc.Client - Retrying connect to server: 0.0.0.0/0.0.0.0:10020. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)
解决方案:启动historyserver:
mr-jobhistory-daemon.sh start historyserver
脚本文件式进行运行:
pigTest.pig
grunt> a = LOAD '/input/test2' as (line:chararray); //加载输入文件,并按行分隔
grunt> words = FOREACH a GENERATE flatten(TOKENIZE(line)) as w; //将每行分割成单词
grunt> g = GROUP words by w; //按单词分组
grunt> wordcount = FOREACH g GENERATE group,COUNT(words); //单词记数
grunt> dump wordcount;
pig pigTest.pig