阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Pig安装及简单使用(pig0.12.0 Hadoop2.2.0)

416次阅读
没有评论

共计 3000 个字符,预计需要花费 8 分钟才能阅读完成。

我们用 MapReduce 进行数据分析。当业务比较复杂的时候,使用 MapReduce 将会是一个很复杂的事情,比如你需要对数据进行很多预处理或转换,以便能够适应 MapReduce 的处理模式, 另一方面,编写 MapReduce 程序,发布及运行作业都将是一个比较耗时的事情。

Pig 的出现很好的弥补了这一不足。Pig 能够让你专心于数据及业务本身,而不是纠结于数据的格式转换以及 MapReduce 程序的编写。本质是上来说,当你使用 Pig 进行处理时,Pig 本身会在后台生成一系列的 MapReduce 操作来执行任务,但是这个过程对用户来说是透明的。

Pig 的安装

Pig 作为客户端程序运行,即使你准备在 Hadoop 集群上使用 Pig,你也不需要在集群上做任何安装。Pig 从本地提交作业,并和 Hadoop 进行交互。

1)下载 Pig

前往 http://mirror.bit.edu.cn/apache/pig/ 下载合适的版本,比如 Pig 0.12.0

2)解压文件到合适的目录

tar –xzf pig-0.12.0

3)设置环境变量

export PIG_HOME=/home/hadoop/pig

export PATH=$PATH:$PIG_HOME/bin

如果没有设置 JAVA 环境变量,此时还需要设置 JAVA_HOME,比如:

export JAVA_HOME=/usr/local/jdk1.7.0_51

4)验证

执行以下命令,查看 Pig 是否可用:

pig –help

Pig 执行模式

Pig 有两种执行模式,分别为:

1)本地模式(Local)

本地模式下,Pig 运行在单一的 JVM 中,可访问本地文件。该模式适用于处理小规模数据或学习之用。

运行以下命名设置为本地模式:

pig –x local

2)MapReduce 模式

在 MapReduce 模式下,Pig 将查询转换为 MapReduce 作业提交给 Hadoop(可以说群集,也可以说伪分布式)。

应该检查当前 Pig 版本是否支持你当前所用的 Hadoop 版本。某一版本的 Pig 仅支持特定版本的 Hadoop,你可以通过访问 Pig 官网获取版本支持信息。

Pig 会用到 HADOOP_HOME 环境变量。如果该变量没有设置,Pig 也可以利用自带的 Hadoop 库,但是这样就无法保证其自带肯定库和你实际使用的 HADOOP 版本是否兼容,所以建议显式设置 HADOOP_HOME 变量。且还需要设置如下变量:

exportPIG_CLASSPATH=$HADOOP_HOME/etc/hadoop

下一步,需要告诉 Pig 它所用 Hadoop 集群的 Namenode 和 Jobtracker。一般情况下,正确安装配置 Hadoop 后,这些配置信息就已经可用了,不需要做额外的配置。

Pig 默认模式是 mapreduce,你也可以用以下命令进行设置:

pig –x mapreduce

运行 Pig 程序

Pig 程序执行方式有三种:

1)脚本方式

直接运行包含 Pig 脚本的文件,比如以下命令将运行本地 scripts.pig 文件中的所有命令:

pig scripts.pig

2)Grunt 方式

Grunt 提供了交互式运行环境,可以在命令行编辑执行命令。

Grund 同时支持命令的历史记录,通过上下方向键访问。

Grund 支持命令的自动补全功能。比如当你输入 a =foreach b g 时,按下 Tab 键,则命令行自动变成 a = foreach b generate。你甚至可以自定义命令自动补全功能的详细方式。具体请参阅相关文档。

3)嵌入式方式

可以在 java 中运行 Pig 程序,类似于使用 JDBC 运行 SQL 程序。

Pig Latin 编辑器

PigPen 是一个 Ecliipse 插件,它提供了在 Eclipse 中开发运行 Pig 程序的常用功能,比如脚本编辑、运行等。下载地址:http://wiki.apache.org/pig/PigPen

其他一些编辑器也提供了编辑 Pig 脚本的功能,比如 vim 等。

简单使用

我们以查找最高气温为例,演示如何利用 Pig 统计每年的最高气温。假设数据文件内容如下(每行一个记录,tab 分割):

1990 21

1990 18

1991 21

1992 30

1992 999

1990 23

 

以 local 模式进入 pig,依次输入以下命令(注意以分号结束语句):

records = load‘/home/adoop/input/temperature1.txt’as (year: chararray,temperature: int);

dump records;

describe records;

valid_records = filter records bytemperature!=999;

grouped_records = group valid_records byyear;

dump grouped_records;

describe grouped_records;

max_temperature = foreach grouped_recordsgenerate group,MAX(valid_records.temperature);

– 备注:valid_records 是字段名,在上一语句的 describe 命令结果中可以查看到 group_records 的具体结构。

dump max_temperature;

最终结果为:

(1990,23)

(1991,21)

(1992.30)

注意:

1)如果你运行 Pig 命令后报错,且错误消息中包含如下信息:

WARN org.apache.pig.backend.hadoop20.PigJobControl- falling back to defaultJobCo)ntrol (not using hadoop 0.20 ?)

java.lang.NoSuchFieldException:runnerState

则可能你的 Pig 版本和 Hadoop 版本不兼容。此时可重新针对特定 Hadoop 版本进行编辑。下载源代码后,进入源代码根目录,执行以下命令:

ant clean jar-withouthadoop-Dhadoopversion=23

注意:版本号是根据具体 Hadoop 而定,此处 23 可用于 Hadoop2.2.0。

2)Pig 同一时间只能工作在一种模式下,比如以 MapReduce 模式进入后,只能读取 HDFS 文件,如果此时你用 load 读取本地文件,将会报错。

相关阅读:

Pig 安装与配置教程 http://www.linuxidc.com/Linux/2013-04/82785.htm

Pig 安装部署及 MapReduce 模式下测试 http://www.linuxidc.com/Linux/2013-04/82786.htm

Pig 安装及本地模式测试, 体验 http://www.linuxidc.com/Linux/2013-04/82783.htm

Pig 的安装配置与基本使用 http://www.linuxidc.com/Linux/2013-02/79928.htm

Hadoop Pig 进阶语法 http://www.linuxidc.com/Linux/2013-02/79462.htm

Hadoop 搭建教程学习笔记 http://www.linuxidc.com/Linux/2013-03/81669.htm

更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3000字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7961608
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...