hadoop概述

  • 格式:docx
  • 大小:15.85 KB
  • 文档页数:2

hadoop概述

一、简介

Hadoop是一个实现了MapReduce计算模式的能够对大量数据进行分布式处理的软件框架,是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop计算框架最核心的设计是HDFS(Hadoop

Distributed File System)和MapReduce,HDFS单看全称就知道,实现了一个分布式的文件系统,MapReduce则是提供一个计算模型,基于分治策略。

二、Hadoop特性

第一,它是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。

其次,Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。

此外,Hadoop 依赖于社区服务器,因此它的成本比较低,且开源,任何人都可以使用。

hadoop是适合大数据的分布式存储和计算平台,作者Doug

Cutting ,受google三篇大数据论文启发。

Google File System中文版

/wp-content/uploads/Google-File-System%E4%B8%AD%E6%96%87%E7%89%88_1.0.pdf

Google MapReduce中文版

/wp-content/uploads/Google-MapReduce%E4%B8%AD%E6%96%87%E7%89%88_1.0.pdf

Google Bigtable中文版

/wp-content/uploads/Google-Bigtable%E4%B8%AD%E6%96%87%E7%89%88_1.0.pdf

Hadoop生态系统

三、Hadoop的核心项目

HDFS: hadoop distributed file system 分布式文件系统 MapReduce: 并行计算框架,基于文件系统进行数据计算。

四、HDFS的架构

主从结构

主节点只有一个:namenode,从节点有很多个:datanodes.

namenode负责接收用户操作请求,维护文件系统的目录结构。管理文件与block之间的关系,block与datanode之间的关系。

datanode负责存储文件,文件被分割成block存储在磁盘上。为保证数据安全,文件会有多个副本。

五、MapReduce

Map阶段:首先是读数据,数据来源可能是文本文件,表格,MySQL数据库。这些数据通常是成千上万的文件(叫做shards),这些shards被当做一个逻辑输入源。然后Map阶段调用用户实现的函数,叫做Mapper,独立且并行的处理每个shard。对于每个shard,Mapper返回多个键值对,这是Map阶段的输出。

Shuffle阶段:把键值对进行归类,也就是把所有相同的键的键值对归为一类。这个步骤的输出是不同的键和该键的对应的值的数据流。

Reduce阶段: 输入当然是shuffle的输出。然后Reduce阶段调用用户实现的函数,叫做Reducer,对每个不同的键和该键的对应的值的数据流进行独立、并行的处理。每个reducer遍历键对应的值,然后对值进行“置换”。这些置换通常指的的是值的聚合或者什么也不处理,然后把键值对写入数据库、表格或者文件中。