Hadoop(二)HDFS集群详解


原文地址:http://www.cnblogs.com/zhangyinhua/p/7657937.html
注:本系列为Hadoop学习笔记,非原创

HDFS概述

一、HDFS概述

(1)HDFS集群分为两大角色:Namenode和datanode;
(2)Namenode负责管理整个文件系统的元数据;
(3)Datanode负责管理用户的文件数据块;
(4)文件会按照固定的大小(blocksize)切分成若干块分布式存储在若干台datanode上;
(5)每个文件可以有多个副本,并存放在不同的datanode上;
(6)Datanode会定期向Namenode汇报自身保存的block信息,而Namenode则会负责保持文件的副本数量;
(7)HDFS的内部工作机制对于客户端透明,客户端的请求访问HDFS都是通过Namenode申请进行的。

二、HDFS的概念

(1)HDFS采用主从式(master\Slave)的体系结构,其中Namenode(NN)、Datanode(DN)和Client是HDFS中三个重要的角色;
(2)在一个HDFS中,有一个NN,一个SNN(Secondary Namenode)和众多的DN,Client也可以有很多个;
(3)NN管理HDFS中两个重要的关系:目录文件数结构和文件与数据块的对应关系(会持续化到物理内存,文件名叫fsimage);DN和数据块的对应关系,即数据块存储在哪些DN上(在DN启动时会上报NN它所维护的数据块,这个过程是动态建立的,不会持久化,所以集群启动需要较长时间);
(4)总之,HDFS是一个文件系统,用于存储文件,通过统一命名空间--目录树来定位文件。其次,它是分布式的,由很多服务器联合实现其功能,集群中的服务器有各自的角色。

三、HDFS的特性

(1)HDFS中的文件在物理上是分块存储(Block),块的大小可以通过参数配置(df.blocksize)来规定默认大小。在hadoop2.x默认为128M,以前版本为64M;
(2)HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径访问文件;
(3)目录结构及文件分块信息(元数据)的管理由namenode节点承担,namenode节点是HDFS集群的主节点,负责维护整个HDFS文件系统的目录结构以及每一个路径对应的block块信息(block的id,以及所在的datanode服务器);
(4)文件的各个block的存储管理由datanode节点承担,datanode是HDFS集群的从节点,每个block都可以在多个datanode上存储多个副本(副本参数可以通过dfs.replication设置);
(5)HDFS适应一次写入,多次读出的场景,不支持文件的修改;
(6)总之,hdfs的特点:保存多个副本,且提供容错机制,副本丢失或者宕机自动恢复(默认3备份),运行在廉价的机器上,适合大数据的处理。

HDFS集群特点.png

四、HDFS的局限性

(1)低延时数据访问。由于HDFS为了高吞吐率做了设计,牺牲了快速响应。对于低延时的应用,可以考虑使用HBase或者Cassandra;
(2)大量的小文件。存储大量小文件不会浪费实际存储空间,但增加了在Namenode中元数据,大量小文件会影响整个集群的性能(Btrfs为小文件做了优化-inline file);
(3)多用户写入,修改文件。HDFS的文件只能有一个写入者,而且写操作智能在文件结尾追加。不支持多个写入者,不支持任意位置的修改。

五、HDFS可靠性措施

(1)冗余备份
(2)副本存放:采用机架感知(Rak-aware)的策略改进数据可靠性、高可用和网络带宽的利用率;
(3)心跳检测:Namenode周期从每个datanode接收心跳包和块报告,收到说明Datanode工作正常;
(4)安全模式:系统启动时,Namenode进入一个安全模式,此时不会出现数据块的写操作;
(5)数据完整性检测:HDFS客户端实现对HDFS文件内容的校验和(Checksum)检查(dfs.bytes-per-checksum)。


HDFS基本概念

一、HDFS主从结构体系

HDFS主从机构体系.png

二、数据块(DataBlock)

(1)HDFS将每个文件存储成一系列的数据块,每块大小相同;
(2)文件的所有数据块都存在备份,每个文件的数据块大小和副本系数都是可以配置的(dfs.blocksize、dfs.replication);
(3)HDFS的文件都是一次写入的,且任何时候只能有一个写入者。

三、名字节点(主节点:Namenode)

NameNode.png

四、数据节点(从节点:Datanode)

(1)概述:
1、DN是HDFS中硬盘IO最忙碌的部分:将HDFS的数据块写到Linux本地文件系统,或者从这些数据块中读取数据。DN作为从节点,会不断向NN发送心跳;
2、初始化时,每个DN将当前节点的数据块上报给NN。DN也会接受来自NN的指令,比如创建、移动或删除本地数据块,并将本地的更新报告返回给NN;
(2)作用:接受客户端或Namenode的调度;存储和检索数据块;在Namenode统一调度下进行数据块的创建、删除和复制;定期向Namenode发送自身存储的数据块列表。

五、Secondary Namenode

(1)定期合并edits和fsimage(如果没有配置Secondary Namenode则由Namenode完成),并按照集群配置的时间将合并后新的fsimage,上传到NN替换旧的fsimage;
(2)防止edits日志文件过大,SNN配合NN,为NN的第一关系提供简单的Checkpoint机制,并避免出现edits过大,导致NN启动时间过长问题;
(3)提供Namenode的fsimage文件的检查点,以实现Namenode故障恢复。


SecondaryNamenode.png

单点故障问题

一、单点故障问题

(1)描述:Namenode失效,导致客户端或MapReduce作业均无法读写查看文件;
(2)解决方法:
1、启动一个拥有文件系统元数据的新Namenode(一般采用,因为复制元数据非常耗时);
2、配置一对活动-备用(Active-Sandby)Namenode,活动Namenode失效时,备用Namenode立即接管,用户不会有明显的中断(借助NFS、Zookeeper等共享编辑日志文件;Datanode同时向两个Namenode汇报数据块信息;客户端采用特殊处理对用户透明)


HDFS高可用性(HA:High-Availability)

一、HA

(1)原理:为了应对“单点失败”问题,减少问题处理时间和对用户的影响,Hadoop2.x引入active-standby模式的一对namenodes。当active的Namenode发生故障时,standby的机器会替代active的机器,成为新的Namenode。
(2)active-standby架构
1、两个Namenode之间共享同一块存储空间,一边共享编辑日志(edit log)。早期实现采用高可用的NFS,现在可以使用Zookeeper解决;
2、Datanode必须向两个Namenode同时汇报存储情况;
3、客户端配置成自动处理Namenode失败的情况,对用户透明。
(3)判断active的Namenode的是否还正常,主要通过心跳请求来确认的。当故障发生时,切换到standby的Namenode提供服务时,但原来的active的Namenode可能由于网络慢等原因导致当时不能提供服务,后续又可以提供服务,这时需要阻止它再次加入系统,比如杀掉进程等。


HDFS的客户端操作

一、HDFS的Shell操作

(1)查看命令帮助:hdfs -help
(2)查看文件系统命令帮助:hdfs dfs -help

二、HDFS DFS命令详解

(1)创建目录:
hadoop dfs -mkdir /input --->创建指定目录
hadoop dfs -mkdir -p /user/hdfs --->递归创建指定目录
(2)查看文件或目录:
hdfs dfs -ls ---> 查看目录结构
hdfs dfs -ls /input ---> 查看指定目录结构
hdfs dfs -ls -R ---> 递归显示当前目录
hdfs dfs -ls -R /input ---> 递归显示指定目录
(3)文件上传:
hdfs dfs -put local_file input ---> 将本地文件local_file上传到input
(4)下载文件或目录到本地:
hdfs dfs -get input . ---> 下载文件到当前目录
(5)浏览hdfs中的文件:
hdfs dfs -cat input/local_file ---> 浏览hdfs中的 文件
(6)删除文件:
hdfs dfs -rm input/local_file ---> 删除文件
(7)在hdfs中复制文件:
hdfs dfs -cp input/local_file input/local_file.bak 复制文件
(8)修改权限:
hdfs dfs -chmod 777 /input/somewords.txt 修改权限

三、HDFS管理命令

(1)系统目录检查
hdfs fsck /user/xxx 系统目录详细检测
(2)检查Datanode报告
hdfs dfsadmin -report
(3)权限管理
hdfs fs -chmod 666 /user/xxx
(4)hdfs空间目录配额设置
hdfs dfsadmin -setSpaceQuota [N] /user/xxx
(5)hdfs空间目录配额清除
hdfs dfsadmin -clrSpaceQuota /user/xxx
(6)查看目录配额设置
hdfs fs -count q /user/xxx
(7)删除Datanode
hdfs dfsadmin -refreshNodes

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,050评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,538评论 1 306
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,673评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,622评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,047评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,974评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,129评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,893评论 0 209
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,654评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,828评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,297评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,619评论 3 262
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,326评论 3 243
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,176评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,975评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,118评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,909评论 2 278