本教程中,我们将讨论 Pig & Hive
Pig简介
在Map Reduce框架,需要的程序将其转化为一系列 Map 和 Reduce阶段。 但是,这不是一种编程模型,它被数据分析所熟悉。因此,为了弥补这一差距,一个抽象概念叫 Pig 建立在 Hadoop 之上。
Pig是一种高级编程语言,分析大数据集非常有用。 Pig 是雅虎努力开发的结果
Pig 使人们能够更专注于分析大量数据集和花更少的时间来写map-reduce程序。
类似猪吃东西,Pig 编程语言的目的是可以在任何类型的数据工作。
Pig 由两部分组成:
Pig Latin,这是一种语言
运行环境,用于运行PigLatin程序
Pig Latin 程序由一系列操作或变换应用到输入数据,以产生输出。这些操作描述被翻译成可执行到数据流,由 Pig 环境执行。下面,这些转换的结果是一系列的 MapReduce 作业,程序员是不知道的。所以,在某种程度上,Pig 允许程序员关注数据,而不是执行过程。
Pig Latin 是一种相对硬挺的语言,它采用熟悉的关键字来处理数据,例如,Join, Group 和 Filter。
执行模式:
Pig 有两种执行模式:
本机模式:在此模式下,Pig 运行在单个JVM,并使用本地文件系统。这种模式只适合使用 Pig 小数据集合分析。
Map Reduce模式:在此模式下,写在 Pig Latin 的查询被翻译成MapReduce 作业,并 Hadoop 集群上运行(集群可能是伪或完全分布式的)。 MapReduce 模式完全分布式集群对大型数据集运行 Pig 很有用的。
HIVE 介绍
在某种程度上数据集收集的大小并在行业用于商业智能分析正在增长,它使传统的数据仓库解决方案更加昂贵。HADOOP与MapReduce框架,被用于大型数据集分析的替代解决方案。虽然,Hadoop 地庞大的数据集上工作证明是非常有用的,MapReduce框架是非常低级别并且它需要程序员编写自定义程序,这导致难以维护和重用。 Hive 就是为程序员设计的。
Hive 演变为基于Hadoop的Map-Reduce 框架之上的数据仓库解决方案。
Hive 提供了类似于SQL的声明性语言,叫作:HiveQL, 用于表达的查询。使用 Hive-SQL,用户能够非常容易地进行数据分析。
Hive 引擎编译这些查询到 map-reduce作业中并在 Hadoop 上执行。此外,自定义 map-reduce 脚本,也可以插入查询。Hive运行存储在表中,它由基本数据类型,如数组和映射集合的数据类型的数据。
配置单元带有一个命令行shell接口,可用于创建表并执行查询。
Hive 查询语言是类似于SQL,它支持子查询。通过Hive查询语言,可以使用 MapReduce 跨Hive 表连接。它有类似函数简单的SQL支持- CONCAT, SUBSTR, ROUND 等等, 聚合函数 - SUM, COUNT, MAX etc。它还支持GROUP BY和SORT BY子句。 另外,也可以在配置单元查询语言编写用户定义的功能。
MapReduce,Pig 和 Hive 的比较
|