Hadoop之HDFS

HDFS 全称 Hadoop Distributed File System - Hadoop分布式文件系统,是Hadoop项目的核心子项目,对海量数据进行进行存储与管理

HDFS存储块为128M
现在HDFS的block的默认大小为128M。 寻址时间指的是在HDFS中,找到目标block的时间。如果block越大,寻址时间就越短,因为NameNode中存储的元数据就越少,但是明显传输时间会就变大,反之,寻址时间就越长。通常MapReduce中每一个任务只会处理一个块,如果block太大也会影响任务的执行时间。 经过前人的研究,寻址时间平均为10ms比较合适,就是查找block的时间为10ms,寻址时间为传输时间的1%,也就是10/0.01=1S,现在磁盘的读取速率大概为100M/s,所以每秒大概为100M,取2的指数级,即为128M。如果磁盘的读取速率 为200M/s, 则block的大小为256M。Block的大小 在hdfs-site.xml 中设置,name为dfs.blocksize

机架感知
数据块的存储涉及到一个概念,叫做机架感知。意思是同一个数据的备份,会放到不同机架的不同节点上,防止数据的丢失。通常冗余的数据为3,放数据的策略是第一个block放到与client同一个机器的DataNode节点上,如果Client不在集群范围,则随机选取一个DataNode存放,第二个随机选取同一个机架上的另外一个DataNode节点,第三个放到不同机架上的DataNode节点上。 这样做的目的是,如果第一个DataNode出现故障,可以从最近的节点上拿数据,就是同一个机架上的节点,这样肯定比跨机架快。如果整个机架挂了,别的机架上还有数据,不至于数据的丢失。
官网的原话
For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on one node in the local rack, another on a different node in the local rack, and the last on a different node in a different rack. This policy cuts the inter-rack write traffic which generally improves write performance. The chance of rack failure is far less than that of node failure; this policy does not impact data reliability and availability guarantees. However, it does reduce the aggregate network bandwidth used when reading data since a block is placed in only two unique racks rather than three. With this policy, the replicas of a file do not evenly distribute across the racks. One third of replicas are on one node, two thirds of replicas are on one rack, and the other third are evenly distributed across the remaining racks. This policy improves write performance without compromising data reliability or read performance.

https://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html

文件上的上传与下载流程

在这里插入图片描述

在这里插入图片描述

DateNode的工作原理:
DataNode启动后向NameNode注册,表示该NameNode在线。

  1. 注册成功后DataNode周期性(一个小时)的向NameNode发送块信息。 DateNode上存储的不只是数据块,每一个数据块对应一个文件代表每一个数据块的元信息(数据长度,检验和,时间戳等)。检验和的作用是,保证数据的完整性,有CRC校验,MD5校验等,元信息用的是MD5校验,block用的是CRC校验,当Client向DataNode读取数据块的时候,会重新计算校验和,如果和刚开始存的不一致,说明Block损坏,Client读取其他节点的block。

DataNode扩展基于此,只需配置好启动就可以了,不要配置slaver,NameNode也不需要事先知道这个DataNode,因为启动之后会自动去NameNode注册

  1. DataNode会每隔三秒会向NameNode发送一次心跳,并且会带回NameNode的命令,比如复制数据到另一块机器,或者删除多余的数据等。如果NameNode超时没有收到DataNode心跳,并不会立即判定DataNode的死亡,要经过一段等待时间,这个时间是超时时长。 这个时间有一个计算公式:
TimeOut = 2 * dfs.namenode.heartbert.recheck-interval + 10 * dfs.heartbeat.interval

dfs.namenode.heartbeat.recheck-interval这个参数根据字面意思是检查心跳的间隔,默认是5分钟。
dfs.heartbeat.interval 这个就是心跳了,默认是3秒,所以超时时间是10分钟+30秒
这两个参数是可配置的,在hdfs-site.xml中配置,dfs.namenode.heartbeat.recheck-interval 这个参数的单位是毫秒,这个 dfs.heartbeat.interval参数单位是秒:

<property>
    <name>dfs.namenode.heartbeat.recheck-interval</name>
    <value>300000</value>
</property>
<property>
    <name>dfs.heartbeat.interval</name>
    <value>3</value>
</property>

添加DataNode,只需将NameNode节点的hadoop文件copy过来,启动即可,因为配置文件中指定了NameNode,所以DataNode启动之后会向NameNode注册自己。

黑名单
删除某一个节点可以配置黑名单,当某一个节点被配置成黑名单配置黑名单之后,调用下指令hdfs dfsadmin -refreshNodes即可,就会namnode就会控制数据转移,转移完之后就可以删除该节点了,过程可以在网页看到
黑名单在hdfs-site.xml

<property>
    <name>dfs.hosts.exclude</name>
    <value>写有主机的文件</value>
</property>
[root@hadoop11 current]# hdfs dfsadmin -refreshNodes

刷新节点之后,NameNode节点就会转移黑名单节点上的数据。

白名单
还有一个白名单,即关键字是dfs.hosts,添加到这个白名单的才会和NameNode组成集群,白名单的作用感觉像是一个范围,应该是为了怕一个内网之中的多个集群混淆吧

欢迎关注我的微信公众号: 北风中独行的蜗牛

[图片上传失败...(image-ccce85-1592443521509)]

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