资源预览内容
第1页 / 共78页
第2页 / 共78页
第3页 / 共78页
第4页 / 共78页
第5页 / 共78页
第6页 / 共78页
第7页 / 共78页
第8页 / 共78页
第9页 / 共78页
第10页 / 共78页
亲,该文档总共78页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
YOUR SITE HERE,大数据技术交流,2013.02,YOUR SITE HERE,目录,1.大数据技术介绍 2.Hadoop(HDFS,MapReduce)介绍 3.Hadoop的最新发展 4.流计算技术 5.内存数据库 6.列式数据库 7.各技术适用的场合 8.讨论,YOUR SITE HERE,什么是大数据?,大数据 指的是海量无法通过传统方式管理的数据。,Big Data作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展。无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互要处理的数据量实在是太大、增长太快了,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本无法应付。,YOUR SITE HERE,大数据的4V特性,体量Volume,多样性Variety,价值密度Value,速度Velocity,非结构化数据的超大规模和增长 总数据量的8090% 比结构化数据增长快10倍到50倍 是传统数据仓库的10倍到50倍,大数据的异构和多样性 很多不同形式(文本、图像、视频、机器数据) 无模式或者模式不明显 不连贯的语法或句义,大量的不相关信息 对未来趋势与模式的可预测分析 深度复杂分析(机器学习、人工智能Vs传统商务智能(咨询、报告等),实时分析而非批量式分析 数据输入、处理与丢弃 立竿见影而非事后见效,YOUR SITE HERE,大数据技术,分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案,内存数据库等。,存储,处理,应用,Map Reduce, 流计算,HIVE,pig,R,mahout 等查询统计,数据挖掘技术,YOUR SITE HERE,大数据的存储,采用了一批新技术,主要包括分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案等。,YOUR SITE HERE,分布式数据库与传统数据库对比,YOUR SITE HERE,大规模并行处理MPP (Massively Parallel Processing),YOUR SITE HERE,YOUR SITE HERE,硬件,一些领先的存储厂商都在建立专门针对Hadoop和大数据分析的存储设备。这些供应商包括EMC,目前提 供Hadoop解决方案,例如Greenplum HD Data Computing Appliance。甲骨文正在考虑进一步深化Exadata系列设备,提供计算能力以及高速存储。 最后一个存储选择是云形式的存储,Cloudera、微软、Amazon和很多其他供应商都在提供基于云的大数据解决方案,这些解决方案能够提供处理能力、存储和支持。,横向可扩展存储,开放性,YOUR SITE HERE,所需的硬件和成本,那么,我们又需要多少的硬件呢? 估计Hadoop所需的硬件有点不一样,这取决于你是在问哪家厂商。Cloudera的清单详细地列出了Hadoop的典型从属节点应该有怎样的硬件配置: 中档处理器 4GB至32 GB内存 每个节点连接至千兆以太网,并配备一只万兆以太网架顶式交换机 专用的交换基础设施,以避免Hadoop拥塞网络 每个机器4至12个驱动器,非RAID配置方式,YOUR SITE HERE,Hadoop方案(例:intel),YOUR SITE HERE,YOUR SITE HERE,YOUR SITE HERE,HP Vertica 的数据仓库系统解决方案,基于列存储和MPP等先进技术 平均性能提高50 x-1000 x倍 高可扩展性(TBs PBs) 节省高至90%的存储空间 快速集成ETL/BI解决方案 高性能运行于电信级硬件 快速和灵活部署,YOUR SITE HERE,Cloudera CDH4,YOUR SITE HERE,Hadoop,一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。,YOUR SITE HERE,Hadoop相关子项目,YOUR SITE HERE,目 录,1.大数据技术介绍 2.Hadoop(HDFS,MapReduce)介绍 3.Hadoop的最新发展 4.流计算技术 5.内存数据库 6.列式数据库 7.各技术适用的场合 8.讨论,YOUR SITE HERE,Hadoop简介,Hadoop 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储 。 Hadoop是项目的总称,主要是由分布式存储(HDFS)、分布式计算(MapReduce)组成 。 Hadoop程序目前只能运行在Linux系统上,window上运行需要安装其他插件,安装过程见hadoop安装说明.docx 。,YOUR SITE HERE,Hadoop优点,可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。 经济:框架可以运行在任何普通的PC上。 可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本数,快照(目前还没实现) 高效:分布式文件系统的高效数据交互实现以及MapReduce结合Local Data处理的模式,为高效处理海量的信息作了基础准备。,YOUR SITE HERE,Hadoop生态系统,YOUR SITE HERE,HDFS适应条件,超大文件 指的是几百MB,几百GB,几百TB,甚至几百PB 流式数据访问 HDFS建立的思想是:一次写入、多次读取模式是最高 效的。 商用硬件 hadoop不需要运行在昂贵并且高可靠的硬件上。,HDFS:为以流式数据访问模式存储超大文件而设计的文件系统。,YOUR SITE HERE,HDFS不适应条件,低延迟数据访问 HDFS是为了达到高数据吞吐量而优化的,这是以延迟为代价的,对于低延迟访问,可以用Hbase(hadoop的子项目)。 大量的小文件 多用户写入,任意修改,YOUR SITE HERE,Hdfs集群框架图,YOUR SITE HERE,NameNode记录着每个文件的元数据。每个文件在那个块中,每个数据节点包含哪些块。(不储存原始文件) DataNode是文件的工作者,它们存储文件并提供定位块的服务,并且定时向名称节点发送它们的存储块的列表。 (储存原始文件) 重要参数 dfs.replication.min参数。最小为1,表示每个块在HDFS中的副本个数。,Hdfs集群框架,YOUR SITE HERE,Hdfs集群框架,文件写入: Client向NameNode发起文件写入的请求。 NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。 Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。 文件读取: Client向NameNode发起文件读取的请求。 NameNode返回文件存储的DataNode的信息。 Client读取文件信息。,YOUR SITE HERE,Hdfs文件写入图,YOUR SITE HERE,Hdfs文件读取图,YOUR SITE HERE,HDFS的几个设计特点,Block的放置:默认不配置。一个Block会有三份备份,一份放在NameNode指定的DataNode,另一份放在与指定DataNode非同一Rack上的DataNode,最后一份放在与指定DataNode同一Rack上的DataNode上。备份无非就是为了数据安全,考虑同一Rack的失败情况以及不同Rack之间数据拷贝性能问题就采用这种配置方式。 心跳检测DataNode的健康状况,如果发现问题就采取数据备份的方式来保证数据的安全性。 数据复制(场景为DataNode失败、需要平衡DataNode的存储利用率和需要平衡DataNode数据交互压力等情况):这里先说一下,使用HDFS的balancer命令,可以配置一个Threshold来平衡每一个DataNode磁盘利用率。例如设置了Threshold为10%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值Threshold以上,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。,YOUR SITE HERE,I/O操作,Writable接口 序列化:指的是将结构化对象转换为字节流以便网络进行传输 或者写入存储的过程。 反序列化:指的是将字节流转为一系列结构化对象的过程。 (java定义的序列化和反序列化工具不够紧凑,高效) 在hadoop中,常规JAVA数据类型是不能表示Hdfs的数据类型的, 例如hdfs中的字符串不是string类表示,而是Text类,这些 数据类型都必须实现一个writable接口 。 Writable是Hadoop的核心(MapReduce程序使用他来序列化 键/值对): void write(DataOutput out) throws IOException; void readFields(DataInput in) throws IOException; 分别实现对数据的序列化和反序列化。,YOUR SITE HERE,Writable接口的子类,YOUR SITE HERE,Writable接口的子类,1.对Java中的int型进行封装那么就是hadoop中的IntWritable类 在写程序时可以把IntWritable可以看着是int 类型,它实现了WritableComparable接口。 WritableComparable又是 Writable、 parable接口的子接口。 2.Writable类对所有的Java基本类型进行封装:如:boolean - BooleanWritable ; Byte - ByteWritable 3.我们可以自已实现Writable接口,编写更复杂的结构的类。 核心:hadoop有自己一套的I/O机制。I/O类都必须实现Writable接口。,YOUR SITE HERE,Map Reduce,Map/Reduce是一个编程模型(programming model),是一个用于处理和生成大规模数据集(processing and generating large data sets)的相关的实现。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同key的values合并起来。很多现实世界中的任务都可用这个模型来表达。,YOUR SITE HERE,MapReduce 程序,1:run job,JobClient,客户端JVM,JobTracker,TaskTracker,Child,MapTask或者 ReduceTask,Jobtracker节点,子JVM,Tasktracker 节点,HDFS,2:get new job ID,3:copy Job rescouce,4:submit job,5:initialize job,6:retrieve
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号