一、 任务描述
Pig内部,每个操作或变换是对输入进行数据处理,然后产生输出结果,这些变换操作被转换成一系列MapReduce作业,Pig让程序员不需要知道这些转换具体是如何进行的,这样工程师可以将精力集中在数据上,而非执行的细节上。本实验通过练习Pig的搭建和配置来为以后学习Pig做环境准备。
二、 任务目标
练习Pig的搭建和配置
三、 任务环境
Ubuntu16.04、Hadoop-2.7.3、Pig-0.17.0
四、 任务分析
通过Pig安装包安装Pig后,进行相关配置,然后练习Pig的两种模式和命令使用。
♥ 知识链接
Pig知识
Apache Pig为大数据集的处理提供了更高层次的抽象,为mapreduce算法(框架)实现了一套类SQL的数据处理脚本语言的shell脚本,在Pig中称之为Pig Latin,在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(group by)、关联(Joining),Pig也可以由用户自定义一些函数对数据集进行操作,也就是传说中的UDF(user-defined functions)。
五、 任务实施
步骤1、安装Pig
右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令打开终端。在终端输入命令【cd /simple】进入simple目录下,然后使用命令【tar -zxvf /simple/soft/pig-0.17.0.tar.gz】解压Pig的tar包。如图1所示
图1 解压Pig安装包
查看解压好的软件并配置环境变量,如图2所示
图2 vim进入配置环境变量
进入”/etc/profile”文件后,按i键进入插入模式,并配置如下语句。如图3所示,配置完成后,按esc键回到正常模式,输入【:wq!】保存退出。
图3 配置环境变量
在终端输入命令【source /etc/profile】使环境变量生效。如图4所示
图4 使环境变量生效
输入命令【pig -version】,查看pig是否安装成功。如图5所示
图5 查看Pig是否安装
步骤2、Pig的简单使用
Pig有两种执行模式,分别为:本地模式(Local)和MapReduce模式
本地模式下,Pig运行在单一的JVM中,可访问本地文件。该模式适用于处理小规模数据或学习之用。运行以下命名设置为本地模式:【pig –x local】,如图6所示
图6 运行Pig本地模式
输入命令【quit】退出pig的本地模式,因为Pig的MapReduce模式要用到Hadoop服务,所以在终端的命令行启动hadoop服务。如图7所示
图7 启动Hadoop服务
在hdfs文件系统上新建一个目录,命令为【hadoop fs -mkdir /input】。如图8所示
图8 新建目录
在当前目录下输入【pig】命令启动pig,将默认启动为MapReduce模式。
在MapReduce模式下,Pig将查询转换为MapReduce作业提交给Hadoop(可以说群集 ,也可以说伪分布式)。如图9所示
图9 启动Pig的MapReduce模式
pig的好处之一是简化了HDFS的操作,没有pig之前要查看一个hdfs的文件,必须hadoop fs -ls /打一堆命令,而在pig shell交互模式下,只需要【ls /】即可。如图10所示
图10 pig模式下输入简单的命令
♥ Pig适用场景
Pig并不适合所有的数据处理任务,和MapReduce一样,它是为数据批处理而设计的,如果想执行的查询只涉及一个大型数据集的一小部分数据,Pig的实现不会很好,因为它要扫描整个数据集或其中很大一部分。随着新版本发布,Pig的表现和原生MapRedece程序差距越来越小,因为Pig的开发团队使用了复杂、精巧的算法来实现Pig的关系操作。除非你愿意花大量时间来优化Java MapReduce程序,否则使用Pig Latin来编写查询的确能帮你节约时间。