1.大数据框架与平台
工做:处理数据
磁盘文件中的数据
网络中的数据流或数据包
数据库中的结构化数据算法
1.大数据工做
处理数据数据库
数据结构: 磁盘文件中的数据 网络中的数据流或数据包 数据库中的结构化数据
2.数据规模
TB
PB
3.分布式环境中处理大数据
(1)分布式环境,多台计算机共同承担计算任务
(2)存储系统
(3)计算任务的分配
(4)计算负荷的分配
(5)计算机之间的数据迁移
(6)计算机或网络发生故障时的数据安全安全
4.实例
问题:从销售记录中统计各类商品销售额
解决方案:
(1)单机:
扫描全部信息记录,对销售额累加
若是存在关系数据库中,一个SQL语句就行了
(2)加入:不少的销售记录
须要设计出由多态计算机来统计销售额的方案,网络
为了保证计算的正确、可靠、高效及方便,须要考虑下列问题: (1)如何为每台计算机分配任务,是先按商品种类对销售记录进行分组,不一样机器处理不一样商品种类的记录 随机向每台机器发送一部分销售记录进行统计,最后将各机器统计的结果,按照商品种类合并。 (2)那排序的时候,如何排序,用哪一种排序算法?在哪台机器上执行排序过程? 每台机器处理的数据,从哪里来,到哪里去?数据是主动发送,仍是接收方申请发送? 若是是主动发送,接收方处理不过来怎么办? 若是是申请发送,发送方应该保存多久数据。 (3)会不会任务分配不均,有的机器很快处理完了,有的机器,一直在忙?甚至,闲的机器须要等着忙的机器处理完成后才能开始执行。 若是增长一台机器,能不能减轻其余机器的负荷,从而缩短任务执行时间。 若是一台机器挂了,它没有完成的任务,应该交给谁,会不会遗漏统计或者重复统计。 统计过程当中,机器之间如何协调,是否须要专门的一台机器指挥调度其余机器?若是这台机器挂了呢。 (4)若是销售记录,还在源源不断的增长,统计尚未执行完,新纪录又来了,如何保证统计结果的准备性?能不能保证结果是实时更新的》?再次统计能不能避免大量 重复计算。 (5)能不能让用户执行一句SQL就能够获得结果 上述问题,除了第一个,其余的分布式计算也会遇到,并且解决起来也至关棘手,便是第一个的分组,统计,在不少数据处理场合,也会遇到,只是,体现方式不一样。若是把这些问题 能封装到一个计算框架中,能够大大简化,这类应用程序的开发。 2004年,Google前后发表了三篇我呢论来介绍分布式GFS,并行计算模型MapReduce ,非关系数据存储系统BigTable .第一次提出了针对大数据分布式处理的可重用方案/ Hadoop .数十种,应用于分布式环境的大数据计算框架。 若是不涉及,第8,9 个问题,(统计过程当中,有新的记录过来,保证统计的实时性)属于批处理。
5.大数据框架
批处理
批处理框架重点关心数据处理的吞吐量,又可分为非迭代式和迭代式两类。
迭代式包括DAG(有向无环图)。图计算等模型。
流处理
针对第8个问题提出的对应方案,分两种状况:
若是重点关注是实时性,属于流计算框架
若是侧重避免重复计算:属于增量计算框架。
若是是第9个问题(保证明时性,同时避免重复计算) 数据交互式分析框架。
下面讨论 批处理、流处理、交互式分析的三种类别的框架,要介绍大数据框架的一些发展趋势。数据结构
大数据框架 批处理 Map/Reduce Hadoop DAG Dryad. Tez,Spark,Fink DataSet API 图计算 Pregel Giraph Hama PowerGraph 流处理 实时 MillWheel,S4,Storm,Samaz ,Heron,Grepump ,Flink ,Apex 小批量 Storm Trident , Spark Streaming . 交互式分析 Dremel ,Hive ,Presto ,Implala ,Stinger,Tajo 增量计算 Percolator,Kineograph,Galaxy
(1) Hadoop
最初,Hadoop= HDFS+MapReduce .是从Nuth中独立出来的项目。
在2.0 中,把资源管理和任务调度功能,从MapReduce 中剥离,造成YARN .
使其余框架也能够像MapReduce那样,运行在Hadoop上。
与以前的分布式计算框架相比,Hadoop隐藏了不少繁琐的细节,如容错,负载均衡等,便于使用。负载均衡
Hadoop 有很强的横向扩展能里,很容易把新的计算机,加入到计算机集群中参与计算。 在开源社区支持下,Hadoop不断完善,集成了如,非关系数据库HBase,数据仓库Hive,数据处理工具Sqoop,机器学习算法Mahout . 一致性服务软件Zookeeper .管理工具Ambari等,造成了相对完整的生态圈和分布式计算事实上的标准。 Hadoop = HDFS+MapReduce+ HBase+ Hive + Sqoop + Mahout +Zookeeper+ Ambari (管理工具)等。 引用程序主要负责设计map 和 reduce任务,其余工做游框架负责。在定义map任务输出数据的方式时,键的选择相当重要,也决定数据如何分组, 排序,传输,以及执行reduce任务的计算机如何分工。 可选择商品种类为键。MapReduce执行商品销售统计的过程以下: (1)把销售记录分片,分配给多台机器 (2)每条销售记录,被解析成键值对,其中值为销售记录的内容,键可忽略 (3)MapReduce 把map任务生成的数据按商品种类排序 (4)待全部节点,都完成排序后,MapReduce启动reduce任务,每一个商品种类对应一个reduce任务。 (5)执行reduce任务的进程经过网络获取指定商品种类的歌词销售额。 (6)MapReduce把同一种商品下的各类销售额合并到表中 (7)执行reduce任务,累加各次销售额,获得该种商品的总销售额。