大数据历史及将来_第1页
大数据历史及将来_第2页
大数据历史及将来_第3页
大数据历史及将来_第4页
大数据历史及将来_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1.大数据

2.Hadoop3.HDFS4.MapReduce5.Hive6.Hbase7.Spark8.RDD9.SparkSQL10.Python大数据开发BIGDATAWEBPB千TCRMTB千GGB千兆ERPEB千P不断增加的数据种类与复杂度用户生成内容移动网络短信、彩信舆情分析外部统计高清视频语音转换产品、服务log社交网络业务数据流用户点击流网络log营销历史A/B测试动态定价联署网络搜索营销行为目标动态过滤付款信息客户名单客户接触购买明细购买记录营销信息客户细分移动互联网云计算物联网社交网络数据的低成本获取与分布式存储(Hadoop)基于位置的服务内容分析万兆交换流计算信息技术的飞速发展催生了大数据大数据产生背景数据膨胀相应的处理技术4V:

Volume,Variety,Value,Velocity数据体量巨大:从TB级别,跃升到PB级别数据类型繁多:网络日志、视频、图片、地理位置信息。。。价值密度低:海量数据中高价值信息的比例。。。处理速度快:秒级响应。。。Veracity(准确性):处理的结果要保证一定的准确性。大数据的特点面临核心问题:数据的存储和分析磁盘存储和磁盘读取的比较:数据堆成山发现知识难:–如今信息世界,数据大爆炸–面向应用,各自为阵,烟囱林立–缺乏为决策提供知识的一个完整服务体系资源的分类:计算能力,存储能力,网络速度云技术为大数据处理提供了技术基础云技术发展给了人们廉价获取海量计算和存储能力–以前一个大型机,或者一个数据处理中心的事情,目前可以用一个云计算(Hadoop)集群来完成–大量CPU、内存、磁盘、网络–1T数据,100台机器,每台存储1%,同时读取,只需要几分钟大数据分析带来变化数据大小–由GB到PB数据更新–由频繁读写到一次写入多次读取数据结构–静态模式到动态模式计算方法–应用为主转变为分析为主大数据分析的五个方面AnalyticVisualizations(可视化分析)–不管是对数据分析专家还是普通用户,数据可视化是数据分析工具最基本的要求。–可视化可以直观的展示数据,让数据自己说话,让观众听到结果。DataMiningAlgorithms(数据挖掘算法)–可视化是给人看的,数据挖掘就是给机器看的。–集群、分割、孤立点分析还有其他的算法让我们深入数据内部,挖掘价值。–这些算法不仅要处理大数据的量,也要处理大数据的速度。大数据分析的五个方面PredictiveAnalyticCapabilities(预测性分析能力)–数据挖掘可以让分析员更好的理解数据,而预测性分析可以让分析员根据可视化分析和数据挖掘的结果,做出一些预测性的判断。SemanticEngines(语义引擎)–非结构化数据的多样性,需要一系列的工具去解析,提取,分析数据。–语义引擎需要被设计成能够从“文档”中智能提取信息DataQualityandMasterDataManagement(数据质量和数据管理)–数据质量和数据管理是一些管理方面的最佳实践。–通过标准化的流程和工具对数据进行处理可以保证一个预先定义好的高质量的分析结果。大数据目前主流技术主要有Hadoop、Spark、Storm三类,以及在此之下配套发展的HDFS、MapReduce、Hbase、Hive、Yarn等一系列开源软件。其中Hadoop发展最早,商业化也最成熟,目前最新版本为3.0。Spark目前最新版本为2.0,Spark这两年发展迅速,是大数据最火的技术。目前大数据主流技术Kafka分布式消息系统Flume日志数据Sqoop关系型数据HDFSHadoop分布式文件系统HBaseNoSQL数据库MapReduce批处理Spark内存处理Streaming实时处理Pig脚本语言HiveSQLGraphX图计算SparkSQLTableauQlikviewBusinessObjectsCognosR/SPSSMLLib机器学习Tez批处理数据存储数据采集数据处理数据分析数据展示数据管控YARN通用资源管理框架ZooKeeper分布式应用程序协调服务Ambari集群管控Oozie工作流引擎服务批处理实时处理Splunk机器数据大数据常用技术架构大数据常用技术架构大数据与传统数据仓库结合大数据案例大数据案例大数据案例大数据案例001张三15男性学生002李四32女性教师003王二麻44男性工程师001 张三 15+1 男性

学生002 李四 32+1 女性

教师003 王二麻 44+1 男性

工程师Localfile读取处理分析002 李四

33

女性

教师存储Localfile1假如没有数据库HDFS(file)读取MapReduce/SparkNoSQL/HDFS结果存储展示分析SQL目录1.大数据

2.Hadoop3.HDFS4.MapReduce5.Hive6.Hbase7.Spark8.RDD9.SparkSQL10.Python大数据开发Google的三大技术核心GFS分布式文件系统MapReduce数据处理机制BigTable表结构GFSGFSClient(客户端):应用程序的访问接口Master(主服务器):管理节点,在逻辑上只有一个,保存系统的元数据,负责整个文件系统的管理。ChunkServer(数据块服务器):负责具体的存储工作。数据以文件的形式存储在ChunkServer上。Bigtable一个存储Web网页的例子的表的片断。行名是一个反向URL。contents列族存放的是网页的内容,anchor列族存放引用该网页的锚链接文本。CNN的主页被SportsIllustrater和MY-look的主页引用,因此该行包含了名为“anchor:”和“anchhor:my.look.ca”的列。每个锚链接只有一个版本(alex注:注意时间戳标识了列的版本,t9和t8分别标识了两个锚链接的版本);而contents列则有三个版本,分别由时间戳t3,t5,和t6标识。BigtableMapReduceHadoop是Google开源的实现DougCutting(道·卡廷

)等在Nutch技术基础上受到Google相关论文的启发Yahoo!支持,由Apache主导的开源系统Hadoop得到大量厂商的支持目前有众多的产品序列Hadoop与GoogleHadoop这个单词是,是他儿子的一个毛绒玩具小象的名字Hadoop核心技术HDFS分布式的文件管理系统MapReduce基于键值对Key/ValuePair分布式并行计算模型Hbase

数据结构化管理组件,采用基于列族的稀疏大表管理机制Hadoop组成Hadoop版本Hadoop有两个分支,分别来源于0.20.x和0.23.x。0.20.x是比较稳定的版本,由其发展出Hadoop1.0,主要是修正了bug,改进了性能和兼容性。0.20.X和1.0是目前教学中最主流的版本,但存在单点故障的隐患。0.23.x中新特性更多,但相对不稳定。由其分支发展出Hadoop2.0。该版本在4000个节点的集群上进行测试,主要工作是处理无共享存储下的HDFSHA,还包括YARN(下一代MapReduce)ResourceManager以及调度方面的改进。HDFS特点一个名字节点和多个数据节点数据复制(冗余机制)故障检测安全性HDFS的NameNode和DataNodeHDFScluster有两类节点,以master/worker模式工作:一个Namenode(master)和一批Datanode(workers).Namenode管理文件系统的namespace.它以两个文件的形式,永久保存在本地文件上:namespaceimage和editlog.Namenode同时记录着每个文件中各块,所在的Datanode的信息Datanodes是文件系统的工作节点,存储和检索数据块blocks,Datanodes定期向Namenode发送它们所存储的块的列表.数据复制冗余机制HDFS为了做到可靠,创建了多份数据块(block,64M大小)的复制(replicas)并将它们放置在服务器群的计算节点中(Datanodes)MapReduce就可以在它们所在的节点上处理这些数据了。机架感知策略故障检测名字节点NameNode:

日志文件,镜像文件数据节点DataNode心跳包(检测是否宕机)块报告(安全模式下检测)数据完整性检测(校验,比较)安全性一般来讲,Hadoop本身不负责管理用户的安全认证机制依赖Kerberos,一个成熟的开源网络审计协议来进行认证RDBMSvsMapReduceMapReduce适合于以批处理方式处理需要分析整个数据集的问题,尤其是adhoc分析.MapReduce适合于一次写入,多次读出的应用.RDBMS适合于

多次读写、点查询,索引后可以提供低延迟的数据检索和快速的数量数据更新.RDBMS适合于持续更新的数据集RDBMS MapReduce数据大小GBPB访问交互和批处理批处理更新多次读写一次写入多次读取结构静态模式动态模式完整性高低横向扩展非线性线性Hadoop中的MapReduce并行计算架构和模型依托于HDFS由Job

Client端发起,Jobtracker协调,

众多Tasktracker参与和一系列的task

并行执行若干Map,reduce,

以及combine操作和函数分布式并行计算两类节点控制job执行过程一个jobtracker和一堆tasktrackers.Jobtracker通过调度tasktrackers上执行的任务,来协调所有运行在系统上的作业jobs.jobtracker此时记录每项作业任务task的整体进度情况.Tasktrackers在运行任务的同时,将进度报告发给jobtracker,如果一个task失败,jobtracker将在另外一个tasktracker节点上重新调度该任务.Hadoop1.0的MapReduce架构V1版的瓶颈问题JobTracker是Map-reduce的集中处理点,存在单点故障。JobTracker完成了太多的任务,造成了过多的资源消耗,当map-reducejob非常多的时候,会造成很大的内存开销,只能支持4000节点主机的上限。在TaskTracker端,以map/reducetask的数目作为资源的表示过于简单,没有考虑到cpu/内存的占用情况,如果两个大内存消耗的task被调度到了一块,很容易出现OOM。Yarn是MapReduce的新一代版本(V2)Yarn的设计YARN不再有单独的jobtracker或tasktrackers,取而代之的是ResourceManager,ApplicationMaster与NodeManager三个部分ResourceManager:-是一个中心的服务,它做的事情是调度、启动每一个Job所属的ApplicationMaster、另外监控ApplicationMaster的存在情况。-ResourceManager运行在HDFS集群的NameNode上。ApplicationMaster

-负责一个Job生命周期内的所有工作,类似老的框架中JobTracker,

负责task的监控、重启

-注意每一个Job都有一个ApplicationMaster,它可以运行在ResourceManager以外的机器上。

-向ResourceManager申请集群中的资源(以Containers命名)NodeManager功能比较专一,就是负责Container状态的维护,并向ResourceManager保持心跳。每个工作节点有一个nodemanagers。Yarn下的MapReduce架构Yarn的架构目录1.大数据

2.Hadoop3.HDFS4.MapReduce5.Hive6.Hbase7.Spark8.RDD9.SparkSQL10.Python大数据开发HDFS简介管理跨网中,多台计算机存储的文件系统,称为分布式文件系统,能够容忍节点故障且不丢失数据HDFS:HadoopDistributedFileSystemHDFS以流式数据访问模式,来存储大文件,运行于商用硬件集群上HDFS的设计超大文件文件大小是以G,T,P为单位的流式数据访访问模式:一次写入,多次读取.数据集通常由数据源生成,或从数据源复制,并长时间在此数据集上,进行多类分析.每次分析将涉及该数据集的大部分或全部读取数据集的延迟,要远远重要于读取某条数据记录的时间.商用硬件Hadoop对硬件的要求是不求昂贵,但求可靠.设计在商用机器组成的cluster硬件上对大型的集群来说,节点的故障率还是较高的.HDFS被设计成能够继续运行,且不让用户察觉到明显的中断.不适合HDFS的情况低时间延迟的数据访问几十毫秒范围的低延迟访问应用

HDFS是为高数据吞吐量而优化的.对低延迟来说,HBase是一个好的选择大量的小文件Namenode将文件系统的元数据存储在内存中每个文件、目录和数据块的存储信息,大概是150bytes.(100万个文件就需要300M空间)文件系统存储文件的总数,受限于Namenode的内存容量.不支持多用户写入及任意修改文件HDFSblocks块数据块是数据读写的最小单位,HDFS上的文件也被划分为块大小的多个分块64MBforHDFSHDFSblocks貌似较大,其目的是为了最小化寻址开销.寻址时间是10ms,传输速率是100MB/s,要使得寻址时间占传输时间的1%块大小应该是100MB左右.使用blocks好处是:文件大小可以大于网上任意一个盘的容量.HDFS使用块抽象,而非整个文件作为存储单元,大大简化了存储子系统的设计.块非常适合用于数据备份,进而提供数据容错能力和可用性.HDFS基本架构读取HDFS数据读文件流程使用HDFS提供的客户端开发库Client,向远程的Namenode发起RPC请求;Namenode会视情况返回文件的部分或者全部block列表,对于每个block,Namenode都会返回有该block拷贝的DataNode地址;客户端开发库Client会选取离客户端最接近的DataNode来读取block;如果客户端本身就是DataNode,那么将从本地直接获取数据.读取完当前block的数据后,关闭与当前的DataNode连接,并为读取下一个block寻找最佳的DataNode;当读完列表的block后,且文件读取还没有结束,客户端开发库会继续向Namenode获取下一批的block列表。读取完一个block都会进行checksum验证,如果读取datanode时出现错误,客户端会通知Namenode,然后再从下一个拥有该block拷贝的datanode继续读。数据写入HDFS写文件流程使用HDFS提供的客户端开发库Client,向远程的Namenode发起RPC请求;Namenode会检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常;当客户端开始写入文件的时候,开发库会将文件切分成多个packets,并向Namenode申请新的blocks,获取用来存储replicas的合适的datanodes列表。开发库把packet以流的方式写入第一个datanode,该datanode把该packet存储之后,再将其传递给在下一个datanode,直到最后一个datanode,这种写数据的方式呈流水线的形式。最后一个datanode成功存储之后会返回一个ackpacket,成功收到datanode返回的ackpacket后会移除相应的packet。如果传输过程中,有某个datanode出现了故障,出现故障的datanode会被移除,同时Namenode会分配一个新的datanode,保持replicas设定的数量。HDFS数据完整性HDFS存储着每个数据块的replica,因此可以通过复制完好的数据复本,来修复数据。当客户端client在读取数据块时,一旦检测到错误后,就向NameNode报告此坏块,停止读取的Datanode,同时Namenode将此错误块复本标记为坏。Namenode将此复本复制到另外一个DataNode中,保证replica的数量恢复正常.已损坏的数据块复本被抛弃。数据传输和存储压缩Compression减少文件存储空间加速数据在网络和磁盘上的传输

压缩算法需要权衡空间/时间序列化Serialization序列化就是将结构化对象,转化为字节流在网络上传输写到磁盘上进行永久存储反序列化是将字节流转化为结构化对象Hadoop使用自己的序列化格式WritablesHDFS文件格式Hadoop中的文件格式大致上分为面向行和面向列两类:面向行:同一行的数据存储在一起,即连续存储。SequenceFile,MapFile,AvroDatafile。采用这种方式,如果只需要访问行的一小部分数据,亦需要将整行读入内存,推迟序列化一定程度上可以缓解这个问题,但是从磁盘读取整行数据的开销却无法避免。面向行的存储适合于整行数据需要同时处理的情况。面向列:整个文件被切割为若干列数据,每一列数据一起存储。Parquet,RCFile,ORCFile。面向列的格式使得读取数据时,可以跳过不需要的列,适合于只处于行的一小部分字段

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论