您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作范文 > HADOOP学习交流
广东亿迅HADOOPHADOOP学习交流广东亿迅•系统架构•任务处理•作业调度•应用程序Hadoop广东亿迅hadoop一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。•它是许多项目的集合,它包含以下一些项目:广东亿迅各个项目简单介绍•Core–一系列分布式文件系统和通用I/O组件和接口(序列化、JavaRPC和持久化的数据结构)•Avro–一种提供高效、跨语言RPC的数据序列系统,持久化数据存储。•MapReduce–分布式数据处理模式和执行环境•HDFS–分布式文件系统•Pig–一种数据流语言和运行环境,用以检索非常大的数据集。•HBase–一个分布式的、列存储数据库。•ZooKeeper–一个分布式的、高可用的协调服务•Hive–分布式数据仓库•Chukwa–分布式数据收集和分析系统广东亿迅核心项目•核心项目是HDFS和MapReduce,我们现在也是主要研究它的这两个项目。•HDFS–分布式文件系统•MapReduce–分布式处理模式广东亿迅HDFS--框架广东亿迅HDFSHDFS采用master/slave架构:–一个hadoop集群是有一个Namenode、一个SecondaryNameNode和一定数目的Datanode组成。Namenode是一个中心服务器,负责管理文件系统的namespace和客户端对文件的访问。SecondaryNameNode是NameNode的一个备份,以便在Namenode发生故障之后能够使集群能够继续正常工作。Datanode在集群中是一个节点一个,负责管理节点上它们附带的存储。广东亿迅HDFS--NameNode•Meta-data整个Meta-data的数据是放在主内存中的,一条记录大概占150个字节,它主要记录下面一些:-文件列表信息-每个文件的块列表-每个块对应的DataNode-文件属性,如创建时间、创建者、几份副本等•TransactionLog(EditLog)对于任何对文件元数据产生修改的操作,Namenode都使用一个称为Editlog的事务日志记录下来。Namenode在本地OS的文件系统中存储这个Editlog。•数据块的管理广东亿迅HDFS--DataNode•ABlockServer-将数据存储本机文件系统-以块的形式存储HDFS文件•汇报-启动时向NameNode注册本地存储的文件块-定期向NameNode报告本机存活的心跳•数据传输-接收来自客户端的写数据-向客户发送数据-将数据传输到指定的DataNodes广东亿迅MapReduce--模型•Map/Reduce是一个用于大规模数据处理的分布式计算模型。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同key的values合并起来。广东亿迅MapReduce处理流程广东亿迅MapReduce--任务处理总体结构包括:-Mapper和Reducer-JobTracker和TaskTracker-JobClient-JobInProgress-TaskInProgress-MapTask和ReduceTask广东亿迅Mapper和Reducer•Mapper和Rudcer运行于Hadoop的MapReduce应用程序最基本的组成部分包括一个Mapper和一个Reducer类,以及一个创建JobConf的执行程序,在一些应用中还可以包括一个Combiner类,它实际也是Reducer的实现。•JobTracker和TaskTracker它们都是由一个master服务JobTracker和多个运行于多个节点的slaver服务TaskTracker两个类提供的服务调度的。master负责调度job的每一个子任务task运行于slave上,并监控它们,如果发现有失败的task就重新运行它,slave则负责直接执行每一个task。TaskTracker都需要运行在HDFS的DataNode上,而JobTracker则不需要,一般情况应该把JobTracker部署在单独的机器上。广东亿迅JobClient•JobClient每一个job都会在用户端通过JobClient类将应用程序以及配置参数Configuration打包成jar文件存储在HDFS,并把路径提交到JobTracker的master服务,然后由master创建每一个Task(即MapTask和ReduceTask)将它们分发到各个TaskTracker服务中去执行。•JobInProgressJobClient提交job后,JobTracker会创建一个JobInProgress来跟踪和调度这个job,并把它添加到job队列里。JobInProgress会根据提交的jobjar中定义的输入数据集(已分解成FileSplit)创建对应的一批TaskInProgress用于监控和调度MapTask,同时创建指定数目的TaskInProgress用于监控和调度ReduceTask,缺省为1个。广东亿迅MapTask和ReduceTask•TaskInProgressJobTracker启动任务时通过每一个TaskInProgress来launchTask,这时会把Task对象(即MapTask和ReduceTask)序列化写入相应的TaskTracker服务中,TaskTracker收到后会创建对应的TaskInProgress(此TaskInProgress实现非JobTracker中使用的TaskInProgress,作用类似)用于监控和调度该Task。启动具体的Task进程是通过TaskInProgress管理的TaskRunner对象来运行的。TaskRunner会自动装载jobjar,并设置好环境变量后启动一个独立的javachild进程来执行Task,即MapTask或者ReduceTask,但它们不一定运行在同一个TaskTracker中。•MapTask和ReduceTask一个完整的job会自动依次执行Mapper、Combiner(在JobConf指定了Combiner时执行)和Reducer,其中Mapper和Combiner是由MapTask调用执行,Reducer则由ReduceTask调用,Combiner实际也是Reducer接口类的实现。Mapper会根据jobjar中定义的输入数据集按key1,value1对读入,处理完成生成临时的key2,value2对,如果定义了Combiner,MapTask会在Mapper完成调用该Combiner将相同key的值做合并处理,以减少输出结果集。MapTask的任务全完成即交给ReduceTask进程调用Reducer处理,生成最终结果key3,value3对。广东亿迅•任务结构图任务处理模型广东亿迅NameNode广东亿迅JobTracker广东亿迅作业调度•Hadoop的作业调度器主要有以下三个:FIFOScheduler:采用一个FIFO队列进行调度,在其基础上Hadoop还提供一个扩展的调度器,可以对每个job的tasks总数作限制;优点是实现非常简单、调度过程快;缺点是资源的利用率不高。(先到先得,排队执行)CapacityScheduler(容量调度器):采用多个队列,每个队列分配一定的系统容量,空闲资源可以动态分配给负荷重的队列,支持作业优先级;优点是支持多作业并行执行,提高资源利用率,动态调整资源分配,提高作业执行效率;缺点是用户需要了解大量系统信息,才能设置和选择队列。FairScheduler(公平调度器):将作业分组形成作业池,每个作业池分配最小共享资源,然后将多余的资源平均分配给每个作业;优点是支持作业分类调度,使不同类型的作业获得不同的资源分配,提高服务质量,动态调整并行作业数量,充分利用资源;缺点是不考虑节点的实际负载状态,导致节点负载实际不均衡。广东亿迅应用程序•对于HDFS文件系统,它提供给我们了反映JAVA文件系统的名为libhdfs的C语言库(它被编写出一个访问HDFS的C语言库,可以访问任意Hadoop文件系统)。它会使用Java本地接口(JNI)调用一个Java文件系统客户。•对于MapReduce,它提供了两种方式:流和管道,Hadoop流使用UNIX标准流作为Hadoop和程序之间的接口,可以使用任何语言,只要编写的MapReduce程序能够读取标准输入并写入到标准输出即可;Hadoop管道是HadoopMapReduce的C++接口的代称。管道使用sockets作为tasktracker与C++编写的map或者reduce函数的进程之间的通道。JNI未被使用广东亿迅简单MapReduce任务广东亿迅C库函数--HDFS文件系统hdfsCopy(acrossfilesytemsalso)hdfsMove(acrossfilesytemsalso)hdfsRenamehdfsDeletehdfsCreateDirectoryhdfsSetWorkingDirectoryhdfsGetWorkingDirectoryhdfsListDirectory/hdfsGetPathInfo/hdfsFreeFileInfohdfsGetHostshdfsGetDefaultBlockSizehdfsGetUsed/hdfsGetCapacityhdfsOpenFile/hdfsCloseFilehdfsRead/hdfsWritehdfsTell/hdfsSeekhdfsFlushhdfsAvailable
本文标题:HADOOP学习交流
链接地址:https://www.777doc.com/doc-3393772 .html