码迷,mamicode.com
首页 > 其他好文 > 详细

hadoop笔记

时间:2015-11-07 19:08:48      阅读:220      评论:0      收藏:0      [点我收藏+]

标签: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笔记

标签:hadoop笔记   hdfs原理   mapreduce原理   

原文地址:http://zouqingyun.blog.51cto.com/782246/1710619

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!