Hadoop的概念及架构介绍
Hadoop是大数据开发所使用的一个核心框架。使用Hadoop可以方便的管理分布式集群,将海量数据分布式的存储在集群中(hdfs),并使用分布式程序来处理这些数据。(MapReduce)
标题 Hadoop生态系统
Hadoop由许多子系统组成,如下图:
Hadoop只由Map Reduce和HDFS构成,其余都是其衍生出来的。
HDFS简介:
Hdfs是Hadoop项目的核心子项目,在大数据开发中通过分布式计算对海量数据进行存储与管理,它基于数据流模式访问和处理超大文件的需求而开发,可以运行在廉价的商用服务器上,为海量的数据提供了不怕故障的存储方法,进而为超大规模数据的处理带来很多便利。
HDFS特点:
1.支持大型数据集(1G以上)
2.遵循简单一致性模型
3.运行于廉价的商用服务器上(对计算机的配置要求不高,求数量多)
4.不适合低延迟的数据访问
5.存储大量小文件的效率不高
6.不支持多用户写入,不支持修改文件
HDFS的存储架构:
一个HDFS集群由一个元数据的节点(NameNode)和一些数据节点*(DataNode)组成。
NameNode是一个用来管理文件命名空间的主服务器,DataNode则用来管理对应节点的数据存储。
客户端发出请求到NameNode(是一个Java进程)(相当于集群管理员)——DataNode——客户端。
HDFS数据存储由一个元数据节点的存储的单位,默认64M
Name Node和DataNode:NamenNode存储文件元数据信息,DataNode存储实际文件数据。
关于MapReduce
- MapReduce是一种可用于数据处理的编程模型。该模型比较简单,但要写出有用的程序不大容易。Hadoop可以运行各种语言版本的MapReduce程序。
- Map 和 Reduce
MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段。每个阶段都以键值对作为输入和输出,其余类型都由程序员来选择。程序员还需要写两个函数: map函数和reduce函数。