您好,欢迎访问三七文档
大数据平台简介2目录一.Hadoop生态系统二.Hadoop主流厂商三.HDFS四.MapReduce五.Hive六.Spark3Hadoop生态系统4Hadoop1.0V2.05Hadoop生态系统Ambari(安装部署工具)Zookeeper(分布式协调服务)HBase(分布式协数据库)Oozie(作业流调度系统)HDFS(分布式存储系统)YARN(分布式计算框架)MapReduce(离线计算)Tez(DAG计算)Spark(内存计算)HivePigMahoutSqoop(数据库TEL工具)Flume(日志收集)…………6HDFS-HadoopDistributedFileSystem7Yarn-资源管理器8MapReduce-分布式并行计算框架“你数一号书架,我数二号书架。我们人数多,数书就更快。这就是map;最后我们到一起,把所有人的统计数加在一起,就是reduce。”9Spark-新一代大数据处理计算引擎YoucanrunSparkusingitsstandaloneclustermode,onEC2,onHadoopYARN,oronApacheMesos.AccessdatainHDFS,Cassandra,HBase,Hive,Tachyon,andanyHadoopdatasource.10HBase-NoSQL数据库11Hive-hadoop的数据仓库12Pig-大规模数据分析平台Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫PigLatin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。Apachepig是用来处理大规模数据的高级查询语言,配合Hadoop使用,可以在处理海量数据时达到事半功倍的效果,比使用Java,C++等语言编写大规模数据处理程序的难度要小N倍,实现同样的效果的代码量也小N倍。A=LOAD'a.txt'AS(col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double);B=GROUPABY(col2,col3,col4);C=FOREACHBGENERATEgroup,AVG(A.col5),AVG(A.col6);DUMPC;13Mahout-机器学习算法库Mahout是ApacheSoftwareFoundation(ASF)旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用ApacheHadoop库,Mahout可以有效地扩展到云中。14Zookeeper-分布式协调服务15Sqoop-Hadoop与关系数据库间的数据同步工具16Flume-分布式日志采集工具17Amari-Hadoop集群安装部署监控工具18Hadoop主流厂商19大数据领域的三驾马车ClouderaHortonworksMapR20ClouderaDistributionHadoop(CDH)21HortonworksDataPlatform(HDP)22MapRConvergedDataPlatform23Hadoop主流厂商比较开源开源管理开源管理架构创新完全开源收取服务费工具不开源收取License费用重构了底层内核收取License费用24云服务集团软件集团浪潮大数据平台产品HDP云海InsightHDIndataHD25HDFS26相关背景资料Hadoop:一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Distributed:分布式计算是利用互联网上的计算机的CPU的共同处理能力来解决大型计算问题的一种计算科学。Filesystem:文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。27Hadoop和HDFS的关系Hadoop是一个以一种可靠、高效、可伸缩的方式进行处理的,能够对大量数据进行分布式处理的系统框架。HDFS是Hadoop兼容最好的标准级文件系统,因为Hadoop是一个综合性的文件系统抽象,所以HDFS不是Hadoop必需的。所以可以理解为hadoop是一个框架,HDFS是hadoop中的一个部件。28HDFS背景介绍随着数据量越来越大,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。分布式文件系统:一种允许文件通过网络在多台主机上分享的文件系统,可以让多个机器上的多个用户分享文件和存储空间。29集群通透性:DFS让实际上是通过网络来访问文件的动作,由用户和程序看来,就像访问本地的磁盘一般。分布式文件系统特点RootsplitBlock···Block目录1目录2···File节点节点节点30HDFS是什么HDFS是HadoopDistributeFileSystem的简称,也就是Hadoop的一个分布式文件系统。HDFS被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用HDFS可以实现流的形式访问(streamingaccess)文件系统中的数据对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。对于用户来说,可以直接看成是一个巨大的硬盘。31HDFS特点GB、TB、甚至PB级数据;百万规模以上的文件数量;10K+节点规模适合大数据处理HDFS使应用程序流式地访问它们的数据集。所以它重视数据吞吐量,而不是数据访问的反应速度。流式文件访问HDFS被设计成适合进行批量处理,而不是用户交互式处理;移动计算而非数据;数据位置暴露给计算框架适合批处理通过多副本提高可靠性;提供了容错和恢复机制可构建廉价机器上数据自动保存多个副本;副本丢失后,自动恢复高容错性一次性写入,多次读取;保证数据一致性简化一致性模型HDFS在设计的时候就考虑到平台的可移植性。这种特性方便了HDFS作为大规模数据应用平台的推广可移植性32HDFS的局限性不支持多用户对同一文件进行操作,而且写操作只能在文件末尾完成,即追加操作。并发写入、文件随机修改由于HDFS是为高数据吞吐量应用而设计的,必然以高延迟为代价。不适合低延迟与高吞吐率的数据访问,比如毫秒级不适合低延迟数据访问HDFS中元数据(文件的基本信息)存储在namenode的内存中,而namenode为单点,小文件数量大到一定程度,namenode内存就吃不消了;寻道时间超过读取时间无法高效存储大量小文件33HDFS现在遇到的主要问题分布后的文件系统有个无法回避的问题,因为文件不在一个磁盘导致读取访问操作的延时,这个是HDFS现在遇到的主要问题HDFS调优是使用时最应该注意的。现阶段,HDFS的配置是按照高数据吞吐量优化的,可能会以高时间延时为代价。但万幸的是,HDFS是具有很高弹性,可以针对具体应用再优化。34总体架构图HDFS采用master/slave架构。一个HDFS集群是由一个Namenode和一定数目的Datanode组成,他们以管理者-工作者模式工作。35总体架构图-Client切分文件;访问或通过命令行管理HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。36HDFS的基本结构之NameNodeNamenode是一个中心服务器,负责管理文件系统的命名空间协调客户端对文件的访问Namenode执行文件系统的命名空间操作,例如打开、关闭、重命名文件和目录记录每个文件数据块在各个Datanode上的位置和副本信息37HDFS元数据持久化NameNode存有HDFS的元数据:主要由FSImage和EditLog组成。FSImage是元数据镜像文件保存整个文件系统的目录树数据块映射关系:文件与数据块映射关系,DataNode与数据块映射关系EditLog是元数据操作日志,记录每次保存fsimage之后到下次保存之间的所有hdfs操作NameNodeFileSystemImageEditLog命名空间操作记录,如打开、关闭、创建、删除、重命名文件和目录38HDFS元数据持久化checkpoint:NameNode启动后,它会从磁盘中读取FsImage及EditLog,应用EditLog中所有的事务到存在于内存中的FsImage文件对象,然后将版本较新的这个FsImage文件写入磁盘,之后EditLog就可以被删除了。一个checkpoint只发生在NameNode启动的时候。Blockreport:当一个DataNode启动时,它会扫描本地文件系统,生成所有HDFS数据块的一个列表,然后向NameNode发送一个报告。39HDFS的基本结构之DataNodeDatanode一般是一个节点一个,负责所在物理节点的存储管理,是文件系统中真正存储数据的地方一个文件被分成一个或多个数据块,这些块存储在一组Datanode上Datanode负责处理文件系统客户端的读写请求。在Namenode的指挥下进行block的创建、删除和复制周期性的向Namenode汇报其存储的数据块信息40数据组织数据块(block):大文件会被分割成多个block进行存储,block大小默认为128MB。比磁盘块大很多,目的是减少寻址开销。并不是设置块越大越好。每一个block会在多个datanode上存储多份副本,默认是3份。与其他文件系统不一样,HDFS中每个小于块大小的文件不会占据整个块的空间。HDFS128MB128MB128MB128MB41数据复制大文件在集群中跨机器存储每个文件存储成一系列的数据块,除了最后一个,所有的数据块都是同样大小的为了容错,文件的所有数据块都会有副本。每个文件的数据块大小和副本系数都是可配置的Namenode全权管理数据块的复制,它周期性地从集群中的每个Datanode接收心跳信号和块状态报告42副本策略HDFS采用机架感知(rackawareness)的副本存放策略来提高数据的可靠性、可用性和网络带宽的利用率。将第一个副本放在本地节点,将第二个副本放到本地机架上的另外一个节点,而将第三个副本放到不同机架上的节点。文件的副本不是均匀地分布在机架当中,这种方式提高了写的性能,并且不影响数据的可靠性和读性能(选择读取最近的副本)Node大数据集群Rack1Rack243DataNodeDataNodeHDFS稳健性故障的类型:NameNode故障,DataNode故障和网络中断数据磁盘故障,心跳及重新复制DataNode因为故障而不可用拷贝过程失败DataNode上的磁盘坏掉副本数量会被增加NameNode启动block重新复制:NameNodeDataNodeDeadDataNodeDataNodeHeartBeats44HDFS稳健性数据完整性HDFS客户端应用实现了对文件内容的校验和。HDFS写入的时候计算出校验和,然后每次读的时候再计算校验和。元数据磁盘故障NameNode在HDFS集群中属于单点故障。没有namenode,文件系统会崩溃,文件系统上的所有文件将丢失(无法读出,因为无法定位元数据块的位置)HA高可用架构:NameNode热备45HA架构解决的问题NameNode单点故障HDFS只有一个NameNode节点,当NameNode崩溃后,整个HDFS集群随之崩溃,直到Namenode重启或者其他Namenode接入HDFSHA:为了解决NameNode的单点故障
本文标题:大数据平台简介
链接地址:https://www.777doc.com/doc-1342134 .html