资源预览内容
第1页 / 共45页
第2页 / 共45页
第3页 / 共45页
第4页 / 共45页
第5页 / 共45页
第6页 / 共45页
第7页 / 共45页
第8页 / 共45页
第9页 / 共45页
第10页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
传统的海量数据分析方案,专有硬件 价格昂贵,可扩展能力差 针对OLTP进行了优化,1,2006年6月,2007年1月,2007年8月,0,500,1,000,2,000,3,000,4,000,2 Billion 交易/天,3 Billion交易/天,4.9 Billion 交易/天,日交易量,实例:纽约证券交易所(NYSE),5,000,数据量超过200TB 基于Oracle进行了2年半的努力以失败而告终 数据量的增长相当快 花费1000万美元构建的数据仓库4个月里容量和性能就无法再满足要求,2020/8/3,数据量增长的速度远远超过了传统DBMS的处理能力,Apache Hadoop项目,2004年 Dong Cutting参考Google的论文开始实现Hadoop 2006年 Yahoo年雇佣Dong Cutting组队专职开发 2006年2月,Apache Hadoop开源项目正式启动。,Apache Hadoop,HDFS设计,1个NameNode+若干个DataNode 将文件划分为若干块(Chunk)存储于各DataNode节点上 每个块固定大小(64M) 通过冗余来提高可靠性 每个数据块( Chunk)至少在3个DataNode上冗余 通过单个NameNode来协调数据访问、元数据存储 结构简单,容易保持元数据一致性,HDFS体系结构,Namenode,B,动态复制,机架1,机架2,客户端(写文件),Blocks,Datanodes,Datanodes,客户端 (读文件),查找元数据 获得文件存储位置,元数据(文件名,存储位置),MapReduce-“分而治之”,Input split,shuffle,output,交换,聚集查询(SUM、AVG等),Map,Map,Map,Map,Map,Reduce,P1,P2,P3,P4,P5,D1,D2,D3,D4,D5,最终查询结果,MapReduce,用户自定义 Map、Reduce,读取,MapReduce执行流程,提交任务,调度,MapReduce执行流程,GFS,读输入文件,MapReduce执行流程,Local FS,Local FS,通知完成,文件位置,MapReduce执行流程,本地文件系统,本地文件系统,HTTP GET,MapReduce执行流程,reduce,reduce,MapReduce容错,用户自定义 Map、Reduce,Worker,Worker,Master,Worker,Worker,分配 map,分配 reduce,读取,写入本地 文件系统,Output File 0,Output File 1,写入GFS,输入数据,Worker,MapReduce容忍节点异构,用户自定义 Map、Reduce,Worker,Worker,Master,Worker,Worker,分配 map,分配 reduce,读取,写入本地 文件系统,Output File 0,Output File 1,写入GFS,输入数据,运行速度 过慢,MapReduce调优,Yahoo Pig SELECT id FROM sales TABLESAMPLE (BUCKET 1 OUT OF 32),20,Hive中的数据共享,iter. 1,iter. 2,. . .,Input,HDFSread,HDFSwrite,HDFSread,HDFSwrite,数据复制、串行化造成大量网络和磁盘IO,导致查询效率不高,Hive优点,可靠、稳定 支持JDBC、ODBC接口 动态可扩展、具有容错能力 UDF、自定义数据格式,Hive缺点,data shuffle时网络瓶颈,Reduce要等Map结束才能开始,不能高效利用网络带宽 一般一个SQL都会解析成多个MR job,Hadoop每次Job输出都直接写HDFS,性能差 每次执行Job都要启动Task,花费很多时间,无法做到实时,iter. 1,iter. 2,. . .,Input,Spark,分布式内存,Input,query 1,query 2,query 3,. . .,一次性导入,加载至内存后,相比网络和磁盘IO快10-100倍,Spark容错,维护数据的计算过程,当计算结果丢失时,重新计算,messages = textFile(.).filter(_.contains(“error”) .map(_.split(t)(2),海量日志分析示例,lines = spark.textFile(“hdfs:/.”) errors = lines.filter(_.startsWith(“ERROR”) messages = errors.map(_.split(t)(2) cachedMsgs = messages.cache(),Block 1,Block 2,Block 3,cachedMsgs.filter(_.contains(“foo”).count,cachedMsgs.filter(_.contains(“bar”).count,. . .,tasks,results,Cache 1,Cache 2,Cache 3,Base RDD,Transformed RDD,Action,Spark支持的操作,map filter groupBy sort join leftOuterJoin rightOuterJoin,reduce count reduceByKey groupByKey first union cross,sample cogroup take partitionBy pipe save .,Spark优点,轻:Spark1.0核心代码3万行,Hadoop1.0 9万行,2.0 22万行。 快:Spark对小数据集能达到亚秒级的延迟 这对于Hadoop MapReduce是无法想象的(由于“心跳”间隔机制,仅任务启动就有数秒的延迟)。 就大数据集而言,对典型的迭代机器学习、图计算等应用,Spark版本比基于MapReduce、Hive和Pregel的实现快上十倍到百倍。其中内存计算、数据本地性 (locality)和传输优化、调度优化等该居首功。 灵:Spark提供了不同层面的灵活性。 在实现层,可更换的集群调度器、序列化库; 在原语(Primitive)层,它允许扩展新的数据算子、新的数据源、新的language(Java和Python); 在范式(Paradigm)层,Spark支持内存计算、多迭代批量处理、即时查询、流处理和图计算等多种范式。 巧:巧在借势和借力。 Spark借Hadoop之势,与Hadoop无缝结合;接着Spark SQL借了Hive的势;,Hive体系结构,Meta store,HDFS,Client,Driver,SQL Parser,Query Optimizer,Physical Plan,Execution,CLI,JDBC,MapReduce,Shark体系结构,Meta store,HDFS,Client,Driver,SQL Parser,Physical Plan,Execution,CLI,JDBC,Spark,Cache Mgr.,Query Optimizer,Stinger/Tez,Local mode,Spark,Bagel (Pregel on Spark),Shark(Hive on Spark),Streaming Spark,EC2,Apache Mesos,YARN,Tez,将Map和Reduce两个操作进一步拆分 Map被拆分成Input、Processor、Sort、Merge和Output Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output 分解后的元操作可以任意灵活组合,产生新的操作,经过一些控制程序组装后,可形成一个大的DAG作业,Stinger体系结构,Meta store,HDFS,Client,Driver,SQL Parser,Physical Plan,Execution,CLI,JDBC,Tez,Cache Mgr.,Query Optimizer,Impala,大规模并行数据库引擎(MPP) 由 Cloudera开发,HDFS,Map Reduce,Hive,Pig,Impala,Impala体系结构,Impala支持的数据格式,RCFile Parquet (dremel格式) CSV AVRO Sequence File,大数据引擎测试,Hive:基于Hadoop的数据仓库系统。(v0.12) Shark:与Hive兼容的SQL引擎,运行在Spark计算框架之上。(v0.8.1) Impala:与Hive兼容的SQL引擎,并自带类似MPP执行引擎。(v1.2.3) Stinger/Tez:Tez是新一代的Hadoop执行引擎。(v0.2.0),测试环境,测试环境(续),硬件 品牌:ThinkServer RD630 CPU:Xeon E5-2620(双核 2.00GHz) 内存:8G(其中slave2和slave4为32G) 硬盘:6T(其中slave2和slave4为12T)实际总共可用空间为44.03T 软件 操作系统:CentOS6.4(64bit) 文件系统:ext4,测试数据集,测试查询,Query1:扫描查询 SELECT pageURL, pageRank FROM rankings WHERE pageRank X Query2:聚合查询 SELECT SUBSTR(sourceIP, 1, X), SUM(adRevenue) FROM uservisits GROUP BY SUBSTR(sourceIP, 1, X) Query3:关联查询 SELECT sourceIP, totalRevenue, avgPageRank FROM ( SELECT sourceIP, AVG(pageRank) as avgPageRank, SUM(adRevenue) as totalRevenue FROM Rankings AS R, UserVisits AS UV WHERE R.pageURL = UV.destURL AND UV.visitDate BETWEEN Date(1980-01-01) AND Date(X) GROUP BY UV.sourceIP) ORDER BY totalRevenue DESC LIMIT 1,测试查询(续),测试结果,测试结果(续1),测试结果(续2),
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号