大数据零基础班第十课 - HDFS详解(一)

一、hosts文件剖析

二、web界面解读(一)

三、web界面解读(二)

四、块剖析

五、HDFS架构设计

六、SNN剖析

一、hosts文件

前言:

无论linux系统还是windows系统,都有hosts文件:

1、Linux:局域网、内网机器或VM:只有一个内网ip。
配置内网ip:

内网iphostname
10.0.0.135hadoop004

2、云服务器:内网ip+外网ip(ssh链接、打开服务web界面、对外提供服务)
内网ip + hostname

不建议配置外网ip

3、windows下hosts文件路径:

  • C:\Windows\System32\drivers\etc

  • 假如hadoop001是VM、内网机器,直接内网ip;

  • 假如是云主机,直接就是外网ip,eg,云主机在美国,家里电脑上的secureCRT软件首先需要先通过外网ip访问,外网会自动映射到内网。

扩展:关于hbase 开发
hosts文件,都要配置hbase集群的节点的ip+hostname.

二、web界面解读(一)

hostname+50070:
hostname+8088
YARN上默认8G,8core;(实际生产比如说是128G内存)需要进行修改
在这里插入图片描述

三、web界面解读(二)

http://blog.itpub.net/30089851/viewspace-2127850/
http://blog.itpub.net/30089851/viewspace-2127851/

四、BLOCK块剖析

block:块
块的大小:128M
块的副本数:3

在hdfs-default.xml中寻找参数:
<property>
		<name>dfs.blocksize</name>
		<value>134217728</value>			//134217728字节=128MB
</property>
cat hdfs-site.xml
<property>
		<name>dfs.replication</name>
		<value>3</value>			//假设集群至少3台节点
</property>

面试题:

例如有一个260M的文件,块的副本数为3(一个块复制几份)(生产上hdfs不适合存储小文件,为什么不适合存储小文件,如果真的有,小文件该怎么合并处理)
将文件以块的方式去分割去存储

块种类实际存储规格
块A128M128M A0 A1 A2
块B128M128M B0 B1 B2
块C4M128M C0 C1 C2
EG:每个瓶子容量128ml,一碗水260ml
A瓶 128ml
B瓶  128ml
C瓶   4ml
意思是260ml一定要使用3个瓶子来装。
面试题:一个文件160M,副本数为2,块大小128M
问:几个块,实际存储多少
答:4个块 160/128=1....32(进1得2),实际存储320M

在这里插入图片描述

五、HDFS架构设计

  • namenode nn 名称节点
  • secondarynamenode snn 第二名称节点
  • datanode dn 数据节点
    主从架构 Rack 机架 可以放多个主机
    在这里插入图片描述
    重要指数5颗星*****
nn  文件系统的命名空间
存储a:文件名称
   b.文件目录结构
   c.文件属性  创建时间  权限 副本数
   d.文件对应哪些数据块  -->  数据块对应哪些datanode节点上

比如说一个文件A,A块有三个副本,三个副本在三台机器上的DataNode节点上。
==》文件对应哪些数据块,数据块对应哪些DataNode节点上。
这个叫blockmap(块的映射),nn节点不会持久化存储这种映射关系(比如A块损坏了,NameNode就会在Hadoop003机器上进行复制一份,把损坏的块补上)
dn定期发送blockreport 给nn(DataNode定期告诉老大NameNode我上面有几个块,老大NameNode会定期在memory中维护这些映射关系),一次nn在内存中动态维护这种映射关系。

把NameNode节点撑爆!!
假设生产上给 nn【内存】 8g,假设都是小文件:10个小文件,每个小文件250字节
1亿:1亿*250字节

假如真的有小文件? 进行合并的动作
100个小文件合并成一个大文件 nn节点需要300字节
1亿/100 * 300字节 小

怎么理解:Hadoop中的每个目录、文件和block都会以对象的形式保存在NameNode的内存中。根据经验每个对象在内存中大概占用150个字节。如果HDFS中保存2000万个文件,每个文件都在同一个文件夹中,而且每个文件都只有一个block,则NameNode需要6GB内存。如果只有这么点文件,这当然也没有什么问题,但是随着数据量的增长集群的扩容,最终会达到单台NameNode可以处理的文件(block)数量的上限。基于同样的假设,如果HDFS中保存的数据文件增长到10亿个,则NameNode需要300GB内存。
https://blog.csdn.net/czy_6837/article/details/87863473

hdfs合并小文件方法
建议:合并为一个文件尽量在块大小   120M  合并时小于等于块大小

> nn节点的作用:nn维护文件系统
维护文件系统树,以两种文件永久保存在磁盘上
命名空间、镜像文件 fsimage			
编辑日志editlog		//记录读写请求,持久化存储的

SecondaryNameNode就在如下图目录下备份这两个文件,万一NameNode挂了,它就可以恢复。
在这里插入图片描述

2.2、datanode:

存储:数据块 和 数据块的校验和
与nn节点通信:两件事情
a.每隔三秒发送一个心跳告诉老大nn(我还活着)
b.每10次心跳发送一次当前节点的blockreport
作用:读写文件的数据块

我人在上海,上海、北京、杭州各有一个块,上海的块损坏了,就近原则访问杭州的块

六、SNN剖析

存储:fsimage+editlog
作用:定期合并fsimage+editlog文件为新的fsimage文件,还负责推送给nn节点,简称为检查点(checkpoint)
参数:dfs.namenode.checkpoint.period 每隔一小时进行备份

举例snn每隔一小时进行备份nn节点的内容;11:00~12:00,12:00 snn备份了nn的数据,但是12:30nn节点挂了,此时snn未进行数据备份,所以这半个小时的数据就丢失了。
SNN只能恢复到备份时间点的数据

上面只是Hadoop1.X中存在的。

高级班中HA,有热备份,一个节点挂了另一个节点就起来了standby.

三、snn剖析
整理:第一步:1 roll edits 一个新的回滚
第二部:copy相当于是retrieve fsimage and edits from nn
第三步:merge:合并
第四步:transfer:传输 checkpoint to nn

说白了每一个小时对nn进行一个备份:备份指的是全部数据进行备份

在这里插入图片描述
在这里插入图片描述

七、作业

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值