资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2,#,大数据处理技术简介,1,2,三、大数据开源软件,Hadoop,简介,二、大数据处理实现技术,一、大数据背景,目 录,1.Hadoop,简介,2.,实例演示,1.,定义,2.,数据的来源,1.,分布式储存系统(,GFS/HDFS,),2.,分布式计算模型(,MapReduce,),2,2025/7/13 周日,一、大数据背景,3,2025/7/13 周日,我们正处在信息爆炸的年代,2000,年,数字数据只占全球数据量的,1/4,2007,年,所有数据中只有,7%,是存储在报纸、书籍、图片等媒介上的模拟数据,其余,93%,全是数字数据(二进制数据),Google,单日,数据处理,量,超过,24 PB,Facebook,单日,照片更新量超过,1,千万张,淘宝网,单日数据产生量超过,5,万,GB,大数据背景,定义,4,2025/7/13 周日,大数据定义,“大数据”是指一个,数据集(,Datasets,),,,它的尺寸大到已经无法由,传统的数据库软件,去采集、储存、管理和分析。,大数据背景,定义,5,2025/7/13 周日,数据的分类,结构化数据:,行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。,例如:二维表,半结构化数据:,自描述,数据结构和内容混杂在一起的数据。,例如:,XML,、,HTML,等。,非结构化数据:,除去以上两种类型,例如:音视频、图片等。,大数据背景,定义,6,2025/7/13 周日,2000,年以后非结构化数据占绝大部分,大数据背景,数据的来源,7,2025/7/13 周日,从非结构化数据到结构化数据,非结构化数据,行业,技术,结构化半结构化数据,视频、音频识别技术等,大数据背景,数据的来源,8,2025/7/13 周日,网页爬虫,视频识别,语音识别等,大数据背景,数据的来源,9,2025/7/13 周日,传统关系数据库,如,:,Oracle,、,MYSQL,无法储存几亿行长,几百万行宽的表格,,巨大的数据,直接导致数据库崩溃,半结构化数据和脏数据,将会导致出错(类型不严格),传统方法失效!,如何解决?,大数据处理技术的解决办法:,存成文件(,File System,),大数据背景,数据的来源,10,2025/7/13 周日,某搜索引擎搜索日志,大数据背景,数据的来源,11,2025/7/13 周日,二、大数据处理实现技术,12,2025/7/13 周日,大数据处理技术面对的,第一个问题,如何高效存储大规模文件?,大数据处理实现技术,分布式储存系统,GFS/HDFS,13,2025/7/13 周日,数据读取问题,1 T,100M/S,OH NO!,大数据处理实现技术,分布式储存系统,GFS/HDFS,2.5,小时,14,2025/7/13 周日,谷歌文件系统(,GFS,),大数据处理实现技术,分布式储存系统,GFS/HDFS,15,2025/7/13 周日,分而治之,大数据处理实现技术,分布式储存系统,GFS/HDFS,谷歌文件系统(,GFS,),解决方案,16,2025/7/13 周日,.,10G,1,分,30,秒,100M/S,大数据处理实现技术,分布式储存系统,GFS/HDFS,10G,10G,10G,10G,17,2025/7/13 周日,可靠性问题,大数据处理实现技术,分布式储存系统,GFS/HDFS,大数据处理技术面对的,第二个问题,99%*99%*99%*99%*99%=95%,95%*95%,*,95%*95%,*,95%=76%,18,2025/7/13 周日,备份,一份数据至少做三个备份,大数据处理实现技术,分布式储存系统,GFS/HDFS,谷歌,解决方案,19,2025/7/13 周日,10G,10G,10G,10G,10G,10G,10G,10G,10G,10G,10G,10G,10G,10G,心跳,(,HeartBeat,),Master,(主管),Secondary master,(副主管),Client,(用户程序),读取元数据,读取数据,云(,Cloud,),Master,作用:,储存元数据(数据位置信息),储存节点的日常维护,储存节点,10G,10G,10G,10G,数据位置信息,读取数据,20,2025/7/13 周日,Google File System,架构,大数据处理实现技术,分布式储存系统,GFS/HDFS,21,2025/7/13 周日,大数据处理实现技术,分布式计算模型,MapReduce,大数据处理技术面对的,第三个问题,数据运算问题,22,2025/7/13 周日,分布式计算(并行计算),大数据处理实现技术,分布式储存系统,GFS/HDFS,谷歌,解决方案,23,2025/7/13 周日,谷歌提出,Map/Reduce,模型,大数据处理实现技术,分布式计算模型,MapReduce,24,2025/7/13 周日,Map,函数:,接受,一个键值对,(,key-value pair,),,产生,一组中间键值对,。,map,函数将中间键值对里键相同的值传递给,Reduce,函数。,Reduce,函数:,接受,一个键,,以及相关的,一组值,,将这组值进行,合并,产生,一组规模更小的值,(通常只有一个或零个值),大数据处理实现技术,分布式计算模型,MapReduce,25,2025/7/13 周日,Key-Value,(键,-,值)模型,键(,Key,):,键必须是唯一的,而值并不一定是唯一的,每个值必须与键关联,但键可以没有值,必须对键进行明确定义。他决定了计数是否区分大小写,(,键由,Hash,值唯一确定,),。,键值对举例 :,通讯录中的姓名(,Key,)和联系方式(,Value,),计算机中各种根据文件名(,Key,)访问各类文件,如文本、图片(,Value,),年份(,Key,),温度(,value,),大数据处理实现技术,分布式计算模型,MapReduce,26,2025/7/13 周日,气象站气象数据的处理(找出最高气温),大数据处理实现技术,分布式计算模型,MapReduce,Key,(年份),Value,(温度),27,2025/7/13 周日,大数据处理实现技术,分布式计算模型,MapReduce,MapReduce,计算架构,28,2025/7/13 周日,Map/Reduce,特点,开发简单,无需处理线程或提供精细的同步逻辑,规模大,无需修改程序即可在任意规模机器上运行,工作具备自动并行和分发功能,用户只需写好,Map,和,Reduce,函数即可,高容错,失败任务在新节点上会重新运行,大数据处理实现技术,分布式计算模型,MapReduce,29,2025/7/13 周日,Map,/,Reduce,的局限,对迭代算法无能为力,不是所有算法都能并行,大数据处理实现技术,分布式计算模型,MapReduce,30,2025/7/13 周日,三、大数据开源软件,Hadoop,简介,31,2025/7/13 周日,谷歌技术开源实现,GFS,MapReduce,开源实现,大数据开源软件,Hadoop,简介,HDFS,MapReduce,32,2025/7/13 周日,2002,年,,,Doug Cutting,从做开源,Apache Nutch,引擎开始,2003,年,,,Doug,在看到谷歌发表的,GFS,之后,开始开源实现,NDFS(Nutch Distributed File System),。,2004,年,谷歌发表,MapReduce,,,2005,年,,Nutch,开发人员开源实现,MapReduce,。,2006,年,,Nutch,的,NDFS,和,MapReduce,移出,Nutch,项目,独立形成独立项目,命名,Hadoop,。,Hadoop,的得名(,Doug Cutting,的小孩给毛绒玩具象起的名字),2006,年,,Doug Cutting,加入雅虎(聘请),雅虎开始资助,Hadoop,发展。,2008,年,,1,月,Hadoop,成为,Apache,顶级项目,,2,月,雅虎宣布,,Hadoop,应用在自家搜素引擎中(其搜索引擎的索引建立在拥有,1,万个内核的,Hadoop,集群上),,4,月,,Hadoop,在,900,个节点上运行,1TB,排序测试仅需,209,秒,成为全球最快。,大数据开源软件,Hadoop,简介,33,2025/7/13 周日,Hadoop,分布式文件系统(,HDFS,)架构,大数据开源软件,Hadoop,简介,34,2025/7/13 周日,安装,Hadoop,1.,系统要求:,Linux(Ubuntu/CentOS/),2.java,运行环境(安装,JDK,),3.,安装,SSH,4.,安装,Hadoop,大数据开源软件,Hadoop,简介,35,2025/7/13 周日,Hadoop,启动,HDFS,演示,大数据开源软件,Hadoop,简介,实例演示,36,2025/7/13 周日,Hadoop,云的实际操作,1.,启动,HDFS,命令:,start-dfs.sh,37,2025/7/13 周日,2.,在,eclipse,中打开,HDFS,目录(,eclipse,需安装,Map/Reduce,插件),38,2025/7/13 周日,39,2025/7/13 周日,Map/Reduce,单词统频,(Wordcount),示例,大数据开源软件,Hadoop,简介,实例演示,40,2025/7/13 周日,1.,通过,eclipse,上传文本至,HDFS,41,2025/7/13 周日,2.,启动,MapReduce,计算框架,命令:,start-yarn.sh,42,2025/7/13 周日,Wordcount Java,程序,map,部分,public class WordCount,public static class Map extends MapReduceBase implements,Mapper,private final static IntWritable one=new IntWritable(1);,private Text word=new Text();,public void,map,(LongWritable key,Text value,OutputCollector output,Reporter reporter),throws IOException,String line=value.toString();,StringTokenizer tokenizer=new StringTokenizer(line);,while(tokenizer.hasMoreTokens(),word.set(tokenizer.nextToken();,output.collect(word,one);,/,输出:,1,43,2025/7/13 周日,44,2025/7/13 周日,Wordcount Java,程序,reduce,部分,public static class Reduce extends MapReduceBase implements,Reducer,public void,reduce,(Text key,Iterator values,OutputCollector output,Reporter reporter),throws IOException,int sum=0;,while(values.hasNext(),sum+=values.next().get();,/,累加统频,output.collect(key,new IntWritable(sum);,45,2025/7/13 周日,3.,运行,wordcount,程序,java jar,包 命令,:hadoop jar ,46,2025/7/13 周日,47,2025/7/13 周日,Hadoop,的优势,廉价,计算节点和储存节点普通机器即可,可伸缩性好,通过增加节点即扩展,容错性好,副本机制,可编程,Map/Reduce,框架,适合一次写入多次读取(,HDFS,),大数据开源软件,Hadoop,简介,48,2025/7/13 周日,Hadoop,生态系统,49,2025/7/13 周日,各组件简介,Hive,:,为程序员提供类,SQL,语句编写,底层将,HiveQL,(,Hive-SQL,)转换为,MapReduce,编译运行,Pig,:,提供给用户使用的脚本语言,简化,MapReduce,代码编写,Hbase,:,低延时、分布式的非关系型数据库,ZooKeeper,:,分布式协同工作系统,Hcatalog:,向,Hadoop,应用(,Hive/Pig,)共享元数据,大数据开源软件,Hadoop,简介,50,2025/7/13 周日,大数据开源软件,Hadoop,简介,51,2025/7/13 周日,谢谢大家,敬请批评指正,52,2025/7/13 周日,
展开阅读全文