Pig简介

Pig为大型数据集的处理提供了更高层次的抽象。
Pig包括两部分:

  • 用于描述数据流的语言,称为Pig Latin。

  • 用于运行Pig Latin程序的执行环境。当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执行环境。

Pig的安装

Pig的安装条件

Java环境对于Pig是必需的,如果想要Pig运行在MapReduce模式下,则还需要安装Hadoop。Hadoop的安装方法可以在我之前的文章中获取
java程序员的大数据之路(1):Hadoop安装

Pig的安装过程

我用的是pig0.17.0版本,可以在官网下载地址中下载http://www.apache.org/dyn/closer.cgi/pig。下载好后执行解压命令tar -zvxf pig-0.17.0.tar.gz
解压完之后,配置环境变量,在/etc/profile文件中添加以下代码

export PIG_HOME=/usr/local/pig/pig-0.17.0(替换成自己的目录)
export PATH=$PATH:$PIG_HOME/bin:$PIG_HOME/conf

保存退出后,要执行命令source /etc/profile 使环境变量生效。
输入 pig –help查看是否安装成功。

Pig的执行模式

Pig有两种执行模式:本地模式和MapReduce模式。

本地模式

在本地模式下,Pig运行单在个JVM中,访问本地文件系统。改模式只用于处理小规模数据集或使用Pig。执行命令pig -x local就能启动Grunt。Grunt是Pig的外壳程序(shell)

MapReduce模式

在MapReduce模式下,Pig将查询翻译为MapReduce作业,然后在Hadoop集群上运行。集群可以是伪分布的,也可以是全分布的。要使用MapReduce模式,首先要检查所安装的Pig是否与Hadoop版本兼容。Pig0.17对应于Hadoop2.x,可以通过设置HADOOP_HOME来指定Pig运行的Hadoop。如果不设置,Pig0.17默认运行Hadoop2.7.3。

Pig程序的运行

Pig程序有三种方法执行。

脚本

Pig可以运行包含Pig命令的脚本文件。对于很短的脚本,也可以使用-e选项直接在命令行中输入脚本字符串

Grunt

在Grunt环境中,可以通过run和exec命令运行Pig脚本

嵌入式方法

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

与数据库比较

Pig Latin和SQL看上去很像,但也有很多不同之处。相较而言,它们之间最大的不同就是Pig Latin是一种数据流编程语言,而SQL是描述型编程语言。RDBMS把数据存储在严格定义了模式的表内,Pig对它所处理的数据要求宽松的多,可以在运行时定义模式。几个支持在线和低延迟查询的特性是RDBMS有但Pig没有的。例如事务和索引。Pig不支持随机读和几十毫秒级的查询。也不支持对一小部分数据的随机写。所有的写都是批量的、流式的写操作。

java程序员的大数据之路(13):Pig入门相关推荐

  1. java程序员的大数据之路(3):用maven构建Hadoop项目

    背景 由于Hadoop项目多数是比较大的项目,因此我们选择使用构建工具来构建Hadoop项目,这里我们使用的是maven.当然也可以使用Gradle等比较流行的构建工具 构建过程 这里总结一下我使用I ...

  2. java程序员的大数据之路(1):Hadoop安装

    Hadoop伪分布式安装 从今天开始我会在这里记录在大数据学习方面的方法和遇到的一些问题. 首先从最著名的开源平台Hadoop开始学习.参考安装教程,这个教程比较全面,按照步骤一步步安装即可. 安装时 ...

  3. java程序员的大数据之路(12):Hadoop的守护进程

    关键属性 Hadoop守护进程的关键属性大多标记为final,使作业的配置无法覆盖. 典型的core-site.xml配置文件 <?xml version="1.0"> ...

  4. java程序员的大数据之路(9):MapReduce的类型

    概述 Hadoop的MapReduce中,map和reduce函数遵循如下常规格式: map:(K1,V1) -> list(K2,V2) reduce:(K2,list(V2)) -> ...

  5. java程序员的大数据之路(2):创建第一个Hadoop程序

    环境 Ubuntu 16.04 + Hadoop 2.7.4 + Intellij idea 2017.2 + jdk 1.8 创建过程 新建工程 新建一个工程 输入工程名 可以随便给工程起一个名字, ...

  6. java程序员的大数据之路(15):Pig Latin用户自定义函数

    过滤函数 所有的过滤函数都要继承FilterFunc类,并且实现抽象方法exec(),该方法的返回类型为Boolean. 示例代码如下: package com.udf.filter;import o ...

  7. java程序员的大数据之路(14):Pig Latin

    结构 一个Pig Latin程序由一组语句构成,一个语句可以理解为一个操作,或一个命令.语句必须以分号结束. Pig Latin有两种注释方法,双减号表示单行注释.多行注释可以使用/* 和 */表示. ...

  8. java程序员的大数据之路(8):MapReduce的工作机制

    概述 Hadoop运行作业时的整个过程如果所示. 包含如下4个独立的实体. 客户端:提交MapReduce作业. jobtracker:协调作业的运行.它的主类是JobTracker. tasktra ...

  9. java程序员的大数据之路(7):基于文件的数据结构

    SequenceFile 介绍 由于日志文件中每一条日志记录是一行文本.如果想记录二进制类型,纯文本是不合适的.这种情况下,Hadoop的SequenceFile类非常合适.SequenceFile可 ...

最新文章

  1. 用友BQ商业智能设计模式——概述
  2. strong、copy和mutableCopy详解
  3. python 检测exe是否未响应_第002篇:Python的安装
  4. mysq由于主键冲突导致主从不同步
  5. 入门微信小程序[第六篇]微信小程序 -- 大樱桃的安排
  6. rhel6.3yum源的几种配置解析
  7. 《Phper》MySQL 的一些基本操作
  8. android 免root自动滑动,无需root自动点击屏幕软件
  9. 《Go程序设计语言》- 第13章:低级编程
  10. Python实现获得所有拼音为某个拼音的所有汉字
  11. CCF试题 201903-2 二十四点解析
  12. 数字签名的生成和验证
  13. 增强版在线LEFSe分析和可视化鉴定标志性基因或物种
  14. 《增长黑客》:针对产品增长---思维导图
  15. 怎么把pdf电子书转换成txt格式
  16. Vue CLI 预设Presets
  17. 图像分割:DeepLabV3与DeepLabV3+介绍
  18. 一种基于区块链的身份认证方法
  19. 游戏引擎开发技术栈总结(自用)
  20. 华为AR3260忘记密码重置方法

热门文章

  1. Dubbo3.0入门-Java版
  2. UG编程之一些非常好用的拆电极命令
  3. ifunbox_如何使用iFunBox作为强大的iTunes替代产品
  4. 文字冒险类游戏的制作
  5. 你不在意的HTTPS证书吊销机制
  6. 关键词指数和百度权重案例分析
  7. komodo 中文_使用Komodo提高生产力:可扩展的多语言IDE
  8. SketchUp 软件介绍
  9. 如何在本地建立服务器以后使得外网可以访问(nat123)
  10. 急切寻求电路方面人才