大数据技术交流78

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

YOURSITEHERE大数据技术交流2013.02YOURSITEHERE目录1.大数据技术介绍2.Hadoop(HDFS,MapReduce)介绍3.Hadoop的最新发展4.流计算技术5.内存数据库6.列式数据库7.各技术适用的场合8.讨论YOURSITEHERE什么是大数据?大数据指的是海量无法通过传统方式管理的数据。BigData作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展。无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互……要处理的数据量实在是太大、增长太快了,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本无法应付。YOURSITEHERE大数据的4V特性体量Volume多样性Variety价值密度Value速度Velocity非结构化数据的超大规模和增长总数据量的80~90%比结构化数据增长快10倍到50倍是传统数据仓库的10倍到50倍大数据的异构和多样性很多不同形式(文本、图像、视频、机器数据)无模式或者模式不明显不连贯的语法或句义大量的不相关信息对未来趋势与模式的可预测分析深度复杂分析(机器学习、人工智能Vs传统商务智能(咨询、报告等)实时分析而非批量式分析数据输入、处理与丢弃立竿见影而非事后见效YOURSITEHERE大数据技术分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案,内存数据库等。存储处理应用MapReduce,流计算HIVE,pig,R,mahout等查询统计,数据挖掘技术YOURSITEHERE大数据的存储采用了一批新技术,主要包括分布式缓存、基于MPP的分布式数据库、分布式文件系统、各种NoSQL分布式存储方案等。YOURSITEHERE分布式数据库与传统数据库对比YOURSITEHERE大规模并行处理MPP(MassivelyParallelProcessing)YOURSITEHEREYOURSITEHERE硬件一些领先的存储厂商都在建立专门针对Hadoop和大数据分析的存储设备。这些供应商包括EMC,目前提供Hadoop解决方案,例如GreenplumHDDataComputingAppliance。甲骨文正在考虑进一步深化Exadata系列设备,提供计算能力以及高速存储。最后一个存储选择是云形式的存储,Cloudera、微软、Amazon和很多其他供应商都在提供基于云的大数据解决方案,这些解决方案能够提供处理能力、存储和支持。横向可扩展存储开放性YOURSITEHERE所需的硬件和成本那么,我们又需要多少的硬件呢?估计Hadoop所需的硬件有点不一样,这取决于你是在问哪家厂商。Cloudera的清单详细地列出了Hadoop的典型从属节点应该有怎样的硬件配置:•中档处理器•4GB至32GB内存•每个节点连接至千兆以太网,并配备一只万兆以太网架顶式交换机•专用的交换基础设施,以避免Hadoop拥塞网络•每个机器4至12个驱动器,非RAID配置方式YOURSITEHEREHadoop方案(例:intel)YOURSITEHEREYOURSITEHEREYOURSITEHEREHPVertica的数据仓库系统解决方案•基于列存储和MPP等先进技术•平均性能提高50x-1000x倍•高可扩展性(TBs~PBs)•节省高至90%的存储空间•快速集成ETL/BI解决方案•高性能运行于电信级硬件•快速和灵活部署YOURSITEHEREClouderaCDH4YOURSITEHEREHadoop一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(HadoopDistributedFileSystem),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用程序。YOURSITEHERE子项目作用ZooKeeper为分布式提供高一致性服务Avro序列化,提高分布式传输效率HBase分布式数据库Hive提供类似oracle的数据添加,查询,修改,删除方法。Mahout提供一些可扩展的机器学习领域经典算法的实现Pig一种用于探索大型数据集的脚本语言YOURSITEHERE目录1.大数据技术介绍2.Hadoop(HDFS,MapReduce)介绍3.Hadoop的最新发展4.流计算技术5.内存数据库6.列式数据库7.各技术适用的场合8.讨论YOURSITEHEREHadoop一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop是项目的总称,主要是由分布式存储(HDFS)、分布式计算(MapReduce)组成。Hadoop程序目前只能运行在Linux系统上,window上运行需要安装其他插件,安装过程见《hadoop安装说明.docx》。YOURSITEHERE可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。经济:框架可以运行在任何普通的PC上。可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本数,快照(目前还没实现))高效:分布式文件系统的高效数据交互实现以及MapReduce结合LocalData处理的模式,为高效处理海量的信息作了基础准备。YOURSITEHEREHadoop生态系统YOURSITEHERE超大文件指的是几百MB,几百GB,几百TB,甚至几百PB流式数据访问HDFS建立的思想是:一次写入、多次读取模式是最高效的。商用硬件hadoop不需要运行在昂贵并且高可靠的硬件上。HDFS:为以流式数据访问模式存储超大文件而设计的文件系统。YOURSITEHERE低延迟数据访问HDFS是为了达到高数据吞吐量而优化的,这是以延迟为代价的,对于低延迟访问,可以用Hbase(hadoop的子项目)。大量的小文件多用户写入,任意修改YOURSITEHEREYOURSITEHERENameNode记录着每个文件的元数据。每个文件在那个块中,每个数据节点包含哪些块。(不储存原始文件)DataNode是文件的工作者,它们存储文件并提供定位块的服务,并且定时向名称节点发送它们的存储块的列表。(储存原始文件)重要参数dfs.replication.min参数。最小为1,表示每个块在HDFS中的副本个数。Hdfs集群框架YOURSITEHEREHdfs集群框架文件写入:Client向NameNode发起文件写入的请求。NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。文件读取:Client向NameNode发起文件读取的请求。NameNode返回文件存储的DataNode的信息。Client读取文件信息。YOURSITEHEREYOURSITEHEREYOURSITEHEREBlock的放置:默认不配置。一个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,这对于新节点的加入来说十分有用。YOURSITEHEREWritable接口序列化:指的是将结构化对象转换为字节流以便网络进行传输或者写入存储的过程。反序列化:指的是将字节流转为一系列结构化对象的过程。(java定义的序列化和反序列化工具不够紧凑,高效)在hadoop中,常规JAVA数据类型是不能表示Hdfs的数据类型的,例如hdfs中的字符串不是string类表示,而是Text类,这些数据类型都必须实现一个writable接口。Writable是Hadoop的核心(MapReduce程序使用他来序列化键/值对):voidwrite(DataOutputout)throwsIOException;voidreadFields(DataInputin)throwsIOException;分别实现对数据的序列化和反序列化。YOURSITEHEREYOURSITEHERE1.对Java中的int型进行封装那么就是hadoop中的IntWritable类在写程序时可以把IntWritable可以看着是int类型,它实现了WritableComparable接口。WritableComparable又是Writable、java.lang.comparable接口的子接口。2.Writable类对所有的Java基本类型进行封装:如:boolean-BooleanWritable;Byte-ByteWritable3.我们可以自已实现Writable接口,编写更复杂的结构的类。核心:hadoop有自己一套的I/O机制。I/O类都必须实现Writable接口。YOURSITEHEREMapReduceMap/Reduce是一个编程模型(programmingmodel),是一个用于处理和生成大规模数据集(processingandgeneratinglargedatasets)的相关的实现。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同key的values合并起来。很多现实世界中的任务都可用这个模型来表达。YOURSITEHEREMapReduce程序1:runjobJobClient客户端JVMJobTrackerTaskTrackerChildMapTask或者ReduceTaskJobtracker节点子JVMTasktracker节点HDFS2:getnewjobID3:copyJobrescouce4:submitjob5:initializejob6:retrieveInputsplits7:returnstask8:retrievejobresources10:run9:launch客户端:提交MapReduce作业,即一个job。jobTracker:协调作业的运行。taskTracker:作业划分后的任务(一个job对应多个task,一个task对应一个或者多个MapReduce线程)。YOURSITEHEREYOURSITEHERE1根据输入数据的大小和参数的设置把数据分成splits,每个split对于一个map线程。2Split中的数据作为Map的输入,Map的输出一定在Map端。3

1 / 78
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功