Pig简介:
Apache Pig是一个用于分析大型数据集的平台,它由用于表达数据分析程序的高级语言以及用于评估这些程序的基础架构组成。
Pig程序的显着特性是它们的结构适合大量的并行化,这反过来使它们能够处理非常大的数据集。
基础设施层:
目前,Pig的基础设施层由一个编译器组成,该编译器生成Map-Reduce程序序列,这些程序已经存在大规模的并行实现(例如,Hadoop子项目)。
Pig语言层
Pig的语言层目前由一种名为Pig Latin的文本语言组成,它具有以下优点:
- 易于编程。
实现简单、“并行”的数据分析任务的并行执行是微不足道的。由多个相互关联的数据转换组成的复杂任务显式编码为数据流序列,使其易于编写、理解和维护。
- 自动优化执行效率。
任务的编码方式允许系统自动优化其执行,允许用户专注于语义而不是效率。
3 便于扩展。
用户可以创建自己的函数来执行专用处理。
Pig的安装
运行pig时,可以通过将 HADOOP_HOME 设置为指向已安装 Hadoop 的目录来运行不同版本的 Hadoop 如果不设置HADOOP_HOME,默认情况下 Pig 将与嵌入式版本(当前为 Hadoop 2.7.3)一起运行。
下载Pig
配置环境变量
先来一套命令.配置环境变量老生常谈了
配置全局的如下:
export PIG_HOME = /home/Hadoop/Pig
export PATH = PATH:/home/Hadoop/pig/bin
export PIG_CLASSPATH = $HADOOP_HOME/conf
我习惯于配置成用户变量,所以配置了pig.sh文件;
配置完毕后检查pig的配置是否正确;
然后就是 piglatin的编写了:
piglatin
我还不会,那自然得学呀!
pig的执行
- local模式
在此模式下,所有文件都从本地主机和本地文件系统安装和运行,不需要Hadoop或HDFS。此模式通常用于测试目的。 - MR模式
MapReduce模式是我们使用Apache Pig加载或处理Hadoop文件系统(HDFS)中存在的数据的地方。在这种模式下,每当我们执行Pig Latin语句来处理数据时,会在后端调用一个MapReduce作业,以对HDFS中存在的数据执行特定的操作。
Pig的执行机制
- 交互模式
使用piglatin语句来操作 - 批处理模式
编写*.pig文件 - 嵌入式模式
在编程语言中定义自己的函数,并在脚本中使用他;
我们常用的是使用批处理模式即编写.pig文件
一个.pig脚本文件案例:
student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
PigStorage(',') as (id:int,name:chararray,city:chararray);
Dump student;
Pig脚本中其他语法
咱先略过这一部分,