标签:hadoop笔记 hdfs原理 mapreduce原理
一、hadop的项目
Common:一系列组件和接品口,用于分布式文件系统和通用I/O(序列化,Java RPC 和持久化数据结构)
Avro:一种序列化系统,用于支技高效,跨语言的RPC和持久化的数据存储
MapRedue:分布式数据处理模型和执行环境,运行于大型商用机集群
HDFS:分布式文件系统,运行于大型商用机集群
Pig:数据流语言和运行环境,用以探究非常庞大的的数据集。Pig运行在MapReduce和HDFS集群上
Hive:一种分布式,按列存储的数据仓库。Hive管理HDFS中存储数据,并提供基于SQL的查询语言(由运行时引擎翻译成MapReduce作业)用以查询数据
HBase:一种分布式,按列存储的数据库。HBase使用HDFS作为底层存储,同时支MapReduce的批量式计算和点查询(随机读取)
Zookeeper:一种分布式,可用性高的协调服务。Zeekeeper提供分布式锁之类的基本服务用于构建分布式应用。
Sqooq:该工具用于在结构化数据存储(如关系型数据库)和HDFS之间高效批量传输数据。
Oozie:该服务用于运行和调度Hadoop作业(如MapReduce,Pig,Hive及sqoop)。
二、hadoop分布式文件系统
1、HDFS设计
存府超大文件
流式数据访问(一次写入多次读取)
商用硬件(不需要豪华配置)
低时间延迟的数据访问
大量的小文件
多用户写入,任意修改文件
2、数据块
磁盘一般512字节
HDFS默认64M
与其他文件系统不同的是,HDFS中小于一块大小的文件不会占据整个块的空间
HDFS的块比磁盘的块大,主要为了最小化寻址开销
块抽象好处。(一,一个文件的大小可以大于网络任意一个磁盘的容量。因为文件的所有块并不需要存储在同一个磁盘上。二,使用抽象块而非整个文件作为存储单元,简化了存储子系统的设计。三,块适用于数据备份,提供数据容错能力和提高可用性)
三、namenode和datanode
HDFS以管理者-工作者模式运行,一个NN和多个DN,NM管理文件系统的命名空间,维护着文件系统树及整棵树内的所有文件和目录。这些信息保存在(命名镜像文件)和(编辑日志文件);存储元数据与文件到数据块映射的地方
DN是文件系统工作节点,存储并检索数据块,定期向NN发送它们存储块列表。
NN很重要,如果运行NM服务器损块,文件系统上的所有文件将会丢失。所以对NM容错,提供两种机制。一,备份那些组成文件系统元数据持久状态文件。hadoop可以配置使NN在多个文件系统上保存元数据的持久状态。写操作实时同步,是原子操作。一般配置,将持久状态写入本地磁盘的同时,写入一个远程挂载的网络文件系统(NFS)。二;
运行一个辅助NN,但它不能被用作NN,这个辅助NN的重要作用是定期通过编辑日志合并命名空间镜像,以防止编辑日志过大。这个SNN一般在另一台单独的无力计算机上运行,以为他需要占用大量的cpu和NN相同容量的内存来执行合并操作。它会保存合并后的命名空间镜像的副本,并在NN发生故障时启用。但是SNN滞后与NN,所以如果NN全部失效,难免会丢失部分数据。在这种情况下,一般把存储在NFS上的NN元数据复制到SNN并作为新的NN运行。
本文出自 “散人” 博客,请务必保留此出处http://zouqingyun.blog.51cto.com/782246/1710619
标签:hadoop笔记 hdfs原理 mapreduce原理
原文地址:http://zouqingyun.blog.51cto.com/782246/1710619