在ubuntu下安装并测试pig以及常见的问题

2023-11-20

1 安装 

只安装在namenode节点上即可 

1.1 下载并解压 

下载:http://pig.apache.org/releases.html下载pig-0.12.1版本的pig-0.12.1.tar.gz 

存放路径:/home/Hadoop/

解压:tar -zxvf pig-0.12.1.tar.gz 改名:mv pig-0.12.1 pig 然后放到/usr/local/hadoop下

1.2 改变pig的所有者 

chown -R hadoop:hadoop /usr /local/hadoop/pig 

1.3 修改配置文件 

添加path路径:打开/etc/profile文件(vi /etc/profile)在最后加入如下内容 #pig path 

export PATH=$PATH: /usr /local/hadoop/pig/bin 使修改生效:source /etc/profile 

1.4 验证安装是否成功 

输入pig –x local 命令。看到出现“grunt>”提示符,表明Pig已经安装成功,如下:

Pig –x local

1.5 配置pig的mapreduce模式 

编辑/etc/profile文件,加入hadoop/conf路径

Vim /etc profile

export PATH=$PATH: /usr /local/Hadoop/pig/bin

export PIG_CLASSPATH=/usr /local/Hadoop/conf

执行使配置文件生效

Source /etc/profile

1.6 验证pig的mapreduce模式 

直接输入pig命令,出现“grunt>”提示即可(必须先启动hadoop) 

 

1.7 修改Pig的日志文件目录 

Pig的日志默认在当前目录,不方便进行分析和管理,需要修改日志文件目录,修改如下: 

1) 在/usr/pig目录下新建文件夹logs 

midir /usr/local/hadoop/pig/logs

2) 修改/usr/local/Hadoop/pig/conf/pig.properties文件中的pig.logfile=/usr/local/Hadoop /pig/logs 

打开/usr/local/Hadoop /pig/conf/pig.properties文件找到pig.logfile修改如下:

Pig.logfile=/usr/local/Hadoop/pig/logs

 

1.8 pig 常用命令

Pig –x local以本地模式进入pig

Pig直接以hdfs系统模式进入pig

测试Pig latin语句

常用语句:

LOAD : 指出载入数据的方法

FOREACH:逐行扫描进行某种处理

FILTER:过滤行

DUMP:把结果显示到屏幕

STORE:把结果保存到文件

通常书写执行顺序:

LOAD ——FOREACH——STORE

1.9 测试pigMapReduce 模式下作业的执行

步骤一:上传passwd.txt到hdfs文件系统

cat/home/hadoop/fjshtest/passwd.txt

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

bin:x:2:2:bin:/bin:/bin/sh

sys:x:3:3:sys:/dev:/bin/sh

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/bin/sh

man:x:6:12:man:/var/cache/man:/bin/sh

lp:x:7:7:lp:/var/spool/lpd:/bin/sh

mail:x:8:8:mail:/var/mail:/bin/sh

news:x:9:9:news:/var/spool/news:/bin/sh

uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh

proxy:x:13:13:proxy:/bin:/bin/sh

www-data:x:33:33:www-data:/var/www:/bin/sh

backup:x:34:34:backup:/var/backups:/bin/sh

list:x:38:38:MailingList Manager:/var/list:/bin/sh

bin/hadoop fs -put /home/hadoop/fjshtest/passwd.txt /user/hadoop/in

bin/hadoop fs -ls /user/hadoop/in

-rw-r--r--   2 hadoop supergroup       1705 2015-01-01 22:46/user/hadoop/in/passwd.txt

-rw-r--r--   2 hadoop supergroup       1026 2015-01-01 22:23 /user/hadoop/in/pigtest

-rw-r--r--   2 hadoop supergroup         12 2014-11-14 23:18/user/hadoop/in/test1.txt

-rw-r--r--   2 hadoop supergroup         13 2014-11-14 23:18/user/hadoop/in/test2.txt

 

  步骤二:在grunt编译器命令行依次执行如下命令 
       A = load '/user/hadoop/in/passwd.txt' usingPigStorage(':'); 

       B = foreach A generate$0 as id;

        dump B;

        在屏幕可以直接查看命令执行结果

- Total input paths toprocess : 1

(root)

(daemon)

(bin)

(sys)

(sync)

(games)

(man)

(lp)

(mail)

(news)

(uucp)

(proxy)

(www-data)

(backup)

(list)

(irc)

(gnats)

(nobody)

(libuuid)

 

 

常见错误整理:

pig语句等号两次需要空格,否则报错
A=load'test.txt' as {ip:chararray        ,other:chararray} usingPigStorage(' ');
-->报错

grunt>A=load 'test.txt' as {ip:chararray,other:chararray} using PigStorage(' ');
2014-07-0416:05:35,935 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1000: Errorduring parsing. Encountered " <PATH> "A=load "" atline 2, column 1.
问题2:load加载数据时,usingPigStorage(' ')需要写到as之前
A =LOAD 'test.txt' AS (ip:chararray        ,other:chararray)using PigStorage(' ');
-->报错

grunt>A = LOAD 'test.txt' AS (ip:chararray,other:chararray) using PigStorage(' ');
2014-07-0416:03:35,421 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200:<line 1, column 54>  mismatched input 'using' expectingSEMI_COLON

问题3:有些函数和关键字如COUNT,PigStorage,分区大小写,否则提示不存在
C =foreach B {generate ip,count(ip);};
-->报错

grunt>C = foreach B {generate ip,count(ip);};
2014-07-0416:19:40,167 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Couldnot resolve count using imports: [, java.lang., org.apache.pig.builtin.,org.apache.pig.impl.builtin.]
Detailsat logfile: /app01/pig-0.13.0/pig_1404460981802.log

问题4:指定字段名,需要指定是那个关系(A.ip)
C =foreach B {generate ip,COUNT(ip);};
-->报错

grunt>C = foreach B {generate ip,COUNT(ip);};
2014-07-0416:18:54,919 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1025: 

<line4, column 24> Invalid field projection. Projected field [ip] does not existin schema: group:chararray,A:bag{:tuple(ip:chararray,other:chararray)}.

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在ubuntu下安装并测试pig以及常见的问题 的相关文章

随机推荐

  • Hive 窗口函数如何设置窗口大小

    select city year taxes sum money over as sample1 所有行相加 sum money over partition by city as sample2 按city分组 组内数据相加 sum mo
  • Linux下用inotify-tool实时监控服务器文件

    说明 服务器系统 CentOS 文件目录 home web os 实现目的 当 home web os下面除过cache目录之外 任何文件发生变化时 记录日志并保存 具体操作 一 安装Inotify tools工具 1 查看服务器内核是否支
  • Android SurfaceFlinger服务(三) ----- 本地图层Layer创建

    在上一篇文章中 主要分析了Surface的创建过程 对于Layer图层的创建并没有深入跟踪分析 这篇文章将分析Layer图层的创建 并分析handle gbp这两个变量的来源 在SurfaceFlinger中会根据flags的值创建不同的l
  • CMake中include的使用

    CMake中的include命令用于从文件或模块 file or module 加载并运行CMake code 其格式如下 include
  • 【算法】Dijkstra最短路算法

    上周我们介绍了神奇的只有五行的Floyd最短路算法 它可以方便的求得任意两点的最短路径 这称为 多源最短路 本周来来介绍指定一个点 源点 到其余各个顶点的最短路径 也叫做 单源最短路径 例如求下图中的1号顶点到2 3 4 5 6号顶点的最短
  • VS+QT开发Ocx/ActiveX控件 一

    VS QT开发Ocx ActiveX控件 一 VS QT开发Ocx ActiveX控件 网页中全屏 二 QT开发ActiveX控件 一 所用IDE版本 需用管理员权限 二 创建ActiveX 三 qt desinger 四 regsvr32
  • java虚拟机win10_Win10系统启动软件出现Java虚拟机错误的解决方法

    在 1 为Java设置新的系统变量 当Java需要更大的全局最大堆内存大小时 通常会出现Java虚拟机错误 用户通过扩展分配给Java的最大RAM来解决该问题 用户可以通过建立新的Java System Variable来实现 如下所示 使
  • Linux Debian Jenkins快速搭建配置并运行

    Jenkins安装 参考Debian Jenkins Packageshttps pkg origin jenkins io debian stable 加Key curl fsSL https pkg jenkins io debian
  • C++98 auto_ptr智能指针

    auto ptr 是C 98定义的智能指针模板 其定义了管理指针的对象 可以将new获得 直接或间接 的地址赋给这种对象 当对象过期时 其析构函数将使用delete来释放内存 用法 头文件 include
  • chatgpt赋能python:Python金额计算

    Python金额计算 Python是一种高级编程语言 因其易于阅读 简单 灵活和易于学习而广受欢迎 它还具有强大的数学和计算功能 因此 它是一种非常流行的用于金额计算的工具 在本文中 将介绍如何使用Python进行金额计算 包括不同的货币格
  • mysql-client客户端安装

    测试 生产环境中 有时并不需要在本地安装一个mysql server服务 只需要安装一个登录mysql server 的mysql的客户端client centos6系统上安装mysql client的方式 yum install mysq
  • GDI+学习笔记7-统计报表的图形绘制

    图形编程 SetPixel 设置指定点的颜色 COLORREF SetPixel HDC hDC int X int Y COLORREF crColor hDC 绘制点的DC X Y 坐标位置 crColor 设置的颜色 返回值为设置颜色
  • ubuntu虚拟机与windows系统间不能复制粘贴

    sudo tar zxf VMwareTools 10 3 23 17030940 tar gz 这个命令时解压文件 输入 sudo vmware tools distrib vmware install pl 与 vmware tools
  • PHP的进制转换与字符串的编码解码

    目录 一 进制转换函数 dechex hexdec decbin bindec base convert 二 编码解码函数 bin2hex hex2bin pack 和 unpack 三 字符串类型详解 PHP字符串 从PHP 5 2 1版
  • 15.输入捕获

    1 输入捕获介绍 STM32除了基本定时器 定时器6和定时器7 之外 其他的都具有输入捕获功能 输入捕获可以对输入的信号的上升沿 下降沿或双边沿进行捕获 通常用于测量输入信号的脉宽 测量PWM输入信号的频率及占空比 首先将捕获到t1信号之后
  • [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例

    娜璋带你读论文 系列主要是督促自己阅读优秀论文及听取学术讲座 并分享给大家 希望您喜欢 由于作者的英文水平和学术能力不高 需要不断提升 所以还请大家批评指正 非常欢迎大家给我留言评论 学术路上期待与您前行 加油 前一篇从个人角度介绍英文论文
  • Linux调出git页面,Linux 显示 git 分支 及 完整路径

    一 编辑 bashrc文件vim bashrc 二 在文件末尾添加如下shellfunction git branch branch git branch 2 gt dev null grep sed e s if branch then
  • 在线使用AI合集

    POE 前言 目前有关注的小伙伴应该会发现 ChatGPT注册功能已经关闭 那些还没有注册的小伙伴岂不是不能使用ChatGPT 今天为大家推荐的就是Poe AI机器人集合 Sage Claude ChatGPT Dragonfly Poe链
  • 前端数据请求的10种方式与最佳实践

    前言 在前端开发中 数据请求是经常遇到的一个问题 本文将介绍前端常见的10种数据请求方式 并给出每个方式的代码示例与使用场景 以帮助开发者更好的选择和使用 1 Fetch API Fetch API 是浏览器内置的一个用于网络请求的全局接口
  • 在ubuntu下安装并测试pig以及常见的问题

    1 安装 只安装在namenode节点上即可 1 1 下载并解压 下载 http pig apache org releases html下载pig 0 12 1版本的pig 0 12 1 tar gz 存放路径 home Hadoop 解