hadoop
作者: Doug Cutting
---------------------------版本
Apache
官方版本(1.1.2) 现在到了2.5
Cloudera
使用下载最多的版本,稳定,有商业支持,在Apache的基础上打上了一些patch。推荐使用。
Yahoo
Yahoo内部使用的版本,发布过两次,已有的版本都放到了Apache上,后续不在继续发布,而是集中在Apache的版本上。
----------------------核心
HDFS:
Hadoop
Distributed File System
分布式文件系统
MapReduce
:并行计算框架
--------------------hdfs架构
主从结构
主节点,只有一个
:
namenode
从节点,有很多个
:
datanodes
namenode负责:
接收用户操作请求
维护文件系统的目录结构
管理文件与block之间关系,block与datanode之间关系
是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
(见源码)
文件包括:
①
fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
②
edits:操作日志文件。
③
fstime:保存最近一次checkpoint的时间
以上这些文件是保存在linux的文件系统中。
SecondaryNameNode
HA
的一个解决方案。但不支持热备。配置即可。
(见源码)
执行过程:从
NameNode
上下载元数据信息(
fsimage,edits
),然后把二者合并,生成新的
fsimage
,在本地保存,并将其推送到
NameNode
,同时重置
NameNode
的
edits.
默认在安装在
NameNode
节点上,但这样
...
不安全!
datanode负责:
存储文件
文件被分成block存储在磁盘上
为保证数据安全,文件会有多个副本
-------------------mapReduce架构
JobTracker 负责:
TaskTrackers 负责:
提供真实文件数据的存储服务。
(见源码)
文件块(block):
最基本的存储单位。
对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。
HDFS默认Block大小是64MB,
以一个256MB文件,共有256/64=4个Block.
不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间
Replicat
ion。多复本。默认是三个。
-------------------mapReduce架构
主从结构
主节点,只有一个
:
JobTracker
从节点,有很多个
:
TaskTrackers
JobTracker 负责:
接收客户提交的计算任务
把计算任务分给
TaskTrackers
执行
监控
TaskTracker
的执行情况
TaskTrackers 负责:
执行
JobTracker
分配的计算任务
----------hadoop特点
----------hadoop特点
l
扩容能力(
Scalable
):能可靠地(
reliably
)存储和处理千兆字节(
PB
)数据。
l
成本低(
Economical
):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。
l
高效率(
Efficient
):通过分发数据,
hadoop
可以在数据所在的节点上并行地(
parallel
)处理它们,这使得处理非常的快速。
l
可靠性(
Reliable
):
hadoop
能自动地维护数据的多份副本,并且在任务失败后能自动地重新部署(
redeploy
)计算任务。