Hadoop大数据架构技术研究
2019-10-21薛博召
薛博召
摘 要 Hadoop是由Apache基金会开发的分布式计算架构,用户可以在不了解分布式底层细节的情况下开发分布式程序,充分利用集群的威力进行高速运算和存储。Hadoop框架最核心的设计就是:HDFS和MapReduce,HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
关键词 大数据;Hadoop;HDFS;MapReduce
引言
Hadoop是一个能够对大量数据进行分布式处理的框架,它有可靠、高效、可扩展等特性。可靠是因为它假设计算和存储元素可能失败,通过维护多个工作数据副本,确保能够对失败节点重新进行分布处理。高效是因为它以并行的方式工作,通过并行处理加快处理速度、提高吞吐量。通过灵活的横向扩展能够处理 PB 级数据。
1 Hadoop技术架构研究
HDFS和MapReduce是Hadoop的两大核心。HDFS被设计成适合运行在通用硬件上的分布式文件系统,是一个高度容错性的系统,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。把一个文件存入HDFS,HDFS会把文件分割成多个block,分散存储在N台linux机器上,每台存储数据的机器称为datanode,每一个block会在多个datanode上存储多份副本,默认是3份。一旦文件被切块存储, HDFS中就必须有一个机制,来记录用户的每一个文件的切块信息,及每一块的具体存储机器,namenode负责管理文件目录、文件和block的对应关系,以及block和datanode的对应关系。
MapReduce被用于大规模集群计算,每个MapReduce作业主要包含input split、map task、combiner、shuffle和reduce task共5个阶段。在进行map计算之前,MapReduce会把输入的数据切分为若干块,划分切片的任务由job客户端负责,每个输入分片对应一个map任务。Map task阶段会调用相应对象的next()方法,逐行读取文件,产生key-value值,解析出key-value值后调用定制编写的业务逻辑代码,计算输出新的key-value值后缓存,待后续处理。……
