Hadoop 系统架构分析(1)

HDFS 文件系统

HDFS是Hadoop Distribute File System 的简称,是Hadoop的分布式文件系统,适合运行在廉价的通用硬件上做大数据存储和分析。

一、HDFS的主要特点

  1. HDFS 提供了高吞吐量的数据访问,可以存储超大的数据集,从几百MB、GB到TB级别。在该系统上最高效的访问模式就是“一次写入、多次读取”的流式数据访问。因此特别适用那种数据集生成后,需要对数据集做长时间各种分析的场合。
  2. HDFS 是一个高度容错性的系统,因此可以部署在廉价的机器上,即便硬件出现故障,也可以通过容错策略来保证数据的高可用。
  3. HDFS 对数据保存多个副本(默认保存3份),且提供容错机制,副本丢失或宕机可以自动恢复。
  4. HDFS 不适合低延迟和含有大量小文件的应用场合。HDFS中元数据(文件的基本信息)存储在内存中,当小文件数量大到一定程度,内存就会吃不消。
  5. Hdfs的文件只能有一次写入,不支持多用户写入及任意修改文件。

二、HDFS 架构

HDFS 采用Master和Slave的结构,由NameNode、Sencondary NameNode和DataNode几个模块构成。其中,NameNode和Secondary NameNode运行在Master节点上,而DataNode则部署在Slave节点上。用户从客户端通过与NameNode和DataNode节点交互来访问整个文件系统。

这里写图片描述

NameNode是Master节点,又称”元数据节点”,负责管理文件目录、数据块映射、处理客户端的读写请求、配置副本策略等。其主要功能就是管理文件系统的命名空间,其将所有的文件和文件目录的元数据保存在一个文件系统树中。为了保证交互速度,NameNode会在内存中保存这些元数据信息,同时也会将这些信息保存到硬盘上的以下文件中:命名空间镜像文件(fsimage)和修改日志文件(edits)。

Sencondary NameNode节点也称为“从元数据节点”,是NameNode的冷备份,但不是元数据节点出现问题时候的备用节点,它和元数据节点负责不同的事情。其主要功能是周期性将元数据节点的命名空间镜像文件fsimage和修改日志edits合并,然后将更新的fsimage推送给NameNode,目的就是将日志文件大小控制在一定的限度内。

这里写图片描述

DataNode负责数据存储,具有容错机制,根据客户端或者是NameNode的调度存储和检索数据,并且定期向NameNode发送他们所存储的数据块的列表。

三、HDFS 配置

配置hadoop,主要指的是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个文件,其中core-site.xml是全局配置,hdfs-site.xml和mapred-site.xml分别是hdfs和mapred的局部配置。在Hadoop安装目录下找到core-default.xml,hdfs-default.xml,mapred-default.xml,这些就是默认配置,可以参考这些配置的说明和key,配置hadoop集群。

HDFS配置文件中用到的一些常用端口及其默认值如下:

  • fs.default.name:NameNode的RPC交互端口,默认值8020
  • dfs.http.address:NameNode的web管理端口,默认值50070
  • dfs.datanode.address:DataNode控制端口,默认值50010
  • dfs.datanode.ipc.address:DataNode的RPC服务器地址和端口,默认值50020
  • dfs.datanode.http.address:DataNode的HTTP服务器和端口,默认值50075
  • dfs.secondary.http.address:Secondary NameNode的web管理端口,默认值50090

Hadoop集群中文件目录的相关配置

  • dfs.name.dir

    NameNode的元数据存放目录,可以设置多个目录并以“,”号隔开,hdfs会把元数据冗余复制到这些目录;默认目录是 ${hadoop.tmp.dir}/dfs/name

  • dfs.data.dir

    DataNode的数据保存目录,可以设置多个目录并以“,”号隔开,hdfs会把数据存在这些目录下;默认 ${hadoop.tmp.dir}/dfs/data

  • dfs.name.edits.dir

    备份NameNode节点日志文件的存放目录,可以设置多个目录并以“,”号隔开;默认 ${dfs.name.dir}

  • fs.checkpoint.dir

    Secondary NameNode节点备份元数据的存放目录,默认${hadoop.tmp.dir}/dfs/namesecondary

  • fs.checkpoint.edits.dir

    Secondary NameNode节点的备份日志文件的存放目录,默认 ${fs.checkpoint.dir}

  • hadoop.tmp.dir

    Hadoop系统的临时目录,其他临时目录的父目录,是HDFS依赖的基础配置;默认 /tmp/{$user}

四、HDFS 命令

HDFS允许用户数据组织成文件和文件夹的方式,并提供一个叫DFSShell的接口,使得用户可以和HDFS中的数据交互。命令集的语法跟其他用户熟悉的shells相似。以下是几个常用的dfs命令:

  • hadoop dfs -mkdir /dir : 创建目录 /dir
  • hadoop dfs -cat /dir/myfile.txt : 查看文件 /dir/myfile.txt
  • hadoop dfs -rm /foodir myfile.txt : 删除文件 /dir/myfile.txt

DFSAdmin命令集是用于管理dfs集群的一个多任务的工具,我们可以使用它来获取HDFS的状态信息,以及在HDFS上执行的一系列管理操作。这些命令只能由HDFS管理员使用。

  • bin/hadoop dfsadmin -safemode enter : 将集群设置成安全模式
  • bin/hadoop dfsadmin -report : 产生一个数据节点的列表
  • bin/hadoop dfsadmin -decommission datanodename : 去掉一个数据节点

参考资料

  1. http://www.cnblogs.com/davidwang456/p/5015018.html
  2. http://blog.csdn.net/xh16319/article/details/31375197
  3. HDFS 百度百科
  4. https://my.oschina.net/crxy/blog/348868
  5. http://www.cnblogs.com/ggjucheng/archive/2012/04/17/2454590.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值