Chapter15-厦门大学-林子雨-大数据技术原理与应用-第十五章-Hadoop架构再探讨(2016年4月13日版本)讲解.ppt
文本预览下载声明
15.4Hadoop生态系统中具有代表性的功能组件 15.4.1 Pig 15.4.2 Tez 15.4.3 Spark 15.4.4 Kafka 15.4.1Pig Pig是Hadoop生态系统的一个组件 提供了类似SQL的Pig Latin语言(包含Filter、GroupBy、Join、OrderBy等操作,同时也支持用户自定义函数) 允许用户通过编写简单的脚本来实现复杂的数据分析,而不需要编写复杂的MapReduce应用程序 Pig会自动把用户编写的脚本转换成MapReduce作业在Hadoop集群上运行,而且具备对生成的MapReduce程序进行自动优化的功能 用户在编写Pig程序的时候,不需要关心程序的运行效率,这就大大减少了用户编程时间 通过配合使用Pig和Hadoop,在处理海量数据时就可以实现事半功倍的效果,比使用Java、C++等语言编写MapReduce程序的难度要小很多,并且用更少的代码量实现了相同的数据处理分析功能 15.4.1Pig Pig可以加载数据、表达转换数据以及存储最终结果 Pig语句通常按照如下的格式来编写: 通过LOAD语句从文件系统读取数据 通过一系列“转换”语句对数据进行处理 通过一条STORE语句把处理结果输出到文件系统中,或者使用DUMP语句把处理结果输出到屏幕上 图15-10 Pig在企业数据分析系统中的作用 15.4.1Pig 下面是一个采用Pig Latin语言编写的应用程序实例,实现对用户访问网页情况的统计分析: visits = load ‘/data/visits’ as (user, url, time); gVisits = group visits by url; visitCounts = foreach gVisits generate url, count(visits); //得到的表的结构visitCounts(url,visits) urlInfo = load ‘/data/urlInfo’ as (url, category, pRank); visitCounts = join visitCounts by url, urlInfo by url; //得到的连接结果表的结构visitCounts(url,visits,category,pRank) gCategories = group visitCounts by category; topUrls = foreach gCategories generate top(visitCounts,10); store topUrls into ‘/data/topUrls’; 1 visits = load ‘/data/visits’ as (user, url, time); 2 gVisits = group visits by url; 3 visitCounts = foreach gVisits generate url, count(visits); //得到的表的结构visitCounts(url,visits) 4 urlInfo = load ‘/data/urlInfo’ as (url, category, pRank); 5 visitCounts = join visitCounts by url, urlInfo by url; //得到的连接结果表的结构visitCounts(url,visits,category,pRank) 6 gCategories = group visitCounts by category; 7 topUrls = foreach gCategories generate top(visitCounts,10); 8 store topUrls into ‘/data/topUrls’; 15.4.1Pig 图15-11 从Pig Latin脚本转化得到的MapReduce作业 Pig Latin是通过编译为MapReduce在Hadoop集群上执行的。统计用户访问量程序被编译成MapReduce时,会产生如图所示的Map和Reduce 1 2 3 4 5 6 7 15.4.1Pig Pig的应用场景 数据查询只面向相关技术人员 即时性的数据处理需求,这样可以通过pig很快写一个脚本开始运行处理,而不需要创建表等相关的事先准备工作 Pig主要用户 Yahoo!: 90%以上的MapReduce作业是Pig生成的 Twitter: 80%以上的MapReduce作业是Pig生成的 Lin
显示全部