-大数据入门-2-Hadoop-HDFS架构,副本放置策略

1.HDFS架构

3.1 HDFS 主从架构      
3.2 RACK 机架
      案例:
      一个机架正常是10个服务器 
       如果带GPU5个的服务器,GPU耗电。
       HDFS集群一般10个节点 或30个节点 ,也有100个节点以下。取决于规划。

        机架不会让他发挥作用,default机架, CDH安装默认的,方便管理。

NN:名称节点

存储: 文件系统的命名空间
a.文件名称
b.文件目录结构
c.文件属性(权限 创建时间 副本数)
d.文件对应的哪些块(副本块),块对应在哪些DN节点上
主要作用:管理文件系统的命名空间,维护映射目录结构。

不会持久化存储这个map映射关系,一般是集群启动和运行时,dn定期的发送blockreport给nn,那么nn就在内存中动态维护这种映射关系。

DN: 数据节点

存储: 数据块和数据块校验和,与NN通信:
a.每隔3秒发送一个心跳包  dfs.heartbeat.interval  参数建议不动,除非网络波动大
b.每隔6小时发送一次 blockreport 块报告
dfs.blockreport.intervalMsec  21600000ms=6小时
主要作用: 读写文件的数据块

SNN: 第二名称节点 secondary |standby(HA)

作用: 定期合并NN节点的fsimage+editlog为新的fsimage,推送给NN,简称检查点 checkpoint
dfs.namenode.checkpoint.period 3600   1小时
dfs.namenode.checkpoint.txns   1000000   ##有可能会失效,过渡期

在这里插入图片描述

hdfs流程详解

在这里插入图片描述

nn

[root@hadoop001 current]# pwd
/tmp/hadoop-hadoop/dfs/name/current
-rw-rw-r-- 1 hadoop hadoop      42 Jul 11 14:45 edits_0000000000000000203-0000000000000000204
-rw-rw-r-- 1 hadoop hadoop 1048576 Jul 11 14:45 edits_0000000000000000205-0000000000000000205
-rw-rw-r-- 1 hadoop hadoop      42 Jul 11 19:53 edits_0000000000000000206-0000000000000000207
-rw-rw-r-- 1 hadoop hadoop 1048576 Jul 11 19:53 edits_0000000000000000208-0000000000000000208
-rw-rw-r-- 1 hadoop hadoop      42 Jul 13 13:10 edits_0000000000000000209-0000000000000000210
-rw-rw-r-- 1 hadoop hadoop   13471 Jul 13 14:10 edits_0000000000000000211-0000000000000000321
-rw-rw-r-- 1 hadoop hadoop     107 Jul 13 15:10 edits_0000000000000000322-0000000000000000324   拷贝editlog
-rw-rw-r-- 1 hadoop hadoop 1048576 Jul 13 15:10 edits_inprogress_0000000000000000325  正在写的日志
-rw-rw-r-- 1 hadoop hadoop    4104 Jul 13 14:10 fsimage_0000000000000000321                  拷贝fsimage
-rw-rw-r-- 1 hadoop hadoop      62 Jul 13 14:10 fsimage_0000000000000000321.md5
-rw-rw-r-- 1 hadoop hadoop    4104 Jul 13 15:10 fsimage_0000000000000000324
-rw-rw-r-- 1 hadoop hadoop      62 Jul 13 15:10 fsimage_0000000000000000324.md5

hdfs流程文字详解

1.滚动新的正在写的editlog文件    ( edits_inprogress_0000000000000000325)
2.将  (-rw-rw-r-- 1 hadoop hadoop     107 Jul 13 15:10 edits_0000000000000000322-0000000000000000324)  镜像 (-rw-rw-r-- 1 hadoop hadoop    4104 Jul 13 14:10 fsimage_0000000000000000321) 拷贝到snn节点 
3.合并为新的(    -rw-rw-r-- 1 hadoop hadoop    4104 Jul 13 15:10 fsimage_0000000000000000324)
4.将检查点的(  -rw-rw-r-- 1 hadoop hadoop    4104 Jul 13 15:10 fsimage_0000000000000000324)文件推送给nn
 5.滚动正在写的( -rw-rw-r-- 1 hadoop hadoop 1048576 Jul 13 15:10 edits_inprogress_0000000000000000325) 写满,就滚动到下一个editlog,比如( -rw-rw-r-- 1 hadoop hadoop 1048576 Jul 13 15:10 edits_inprogress_0000000000000000326)

snn

[hadoop@hadoop001 current]$ pwd
/tmp/hadoop-hadoop/dfs/namesecondary/current
[hadoop@hadoop001 namesecondary]$ ll current
total 4172
-rw-rw-r-- 1 hadoop hadoop     115 Jul 11 13:55 edits_0000000000000000001-0000000000000000003
-rw-rw-r-- 1 hadoop hadoop 1048576 Jul 11 14:00 edits_0000000000000000004-0000000000000000193
-rw-rw-r-- 1 hadoop hadoop      42 Jul 11 14:00 edits_0000000000000000194-0000000000000000195
-rw-rw-r-- 1 hadoop hadoop 1048576 Jul 11 14:06 edits_0000000000000000196-0000000000000000196
-rw-rw-r-- 1 hadoop hadoop      42 Jul 11 14:06 edits_0000000000000000197-0000000000000000198
-rw-rw-r-- 1 hadoop hadoop 1048576 Jul 11 14:14 edits_0000000000000000199-0000000000000000199
-rw-rw-r-- 1 hadoop hadoop      42 Jul 11 14:14 edits_0000000000000000200-0000000000000000201
-rw-rw-r-- 1 hadoop hadoop 1048576 Jul 11 14:45 edits_0000000000000000202-0000000000000000202
-rw-rw-r-- 1 hadoop hadoop      42 Jul 11 14:45 edits_0000000000000000203-0000000000000000204
-rw-rw-r-- 1 hadoop hadoop      42 Jul 11 19:53 edits_0000000000000000206-0000000000000000207
-rw-rw-r-- 1 hadoop hadoop      42 Jul 13 13:10 edits_0000000000000000209-0000000000000000210
-rw-rw-r-- 1 hadoop hadoop   13471 Jul 13 14:10 edits_0000000000000000211-0000000000000000321
-rw-rw-r-- 1 hadoop hadoop     107 Jul 13 15:10 edits_0000000000000000322-0000000000000000324
-rw-rw-r-- 1 hadoop hadoop    4104 Jul 13 14:10 fsimage_0000000000000000321  包含了过往的所有的editlog001-321
-rw-rw-r-- 1 hadoop hadoop      62 Jul 13 14:10 fsimage_0000000000000000321.md5
-rw-rw-r-- 1 hadoop hadoop    4104 Jul 13 15:10 fsimage_0000000000000000324
-rw-rw-r-- 1 hadoop hadoop      62 Jul 13 15:10 fsimage_0000000000000000324.md5
-rw-rw-r-- 1 hadoop hadoop     201 Jul 13 15:10 VERSION

2副本放置策略

第一个副本: 
提交节点为DN,自己写一份;
否则为集群外提交,则随机挑选一个不太慢、cpu不太忙的节点上

第二个副本:
放置在于第一个副本的不同机架的节点上

第三个副本:
与第二个副本 相同机架 的不同节点上

在这里插入图片描述

生产上: 项目评估考量副本数减少

1.存储空间不够
2.数据量太快太多
3实在特殊情况设2份,具体根据项目评估而决定。

建议若生产上就是副本数3份,
可把历史数据冷数据迁移到阿里云的oss存储/AWS的S3存储
这样可查看到:
hdfs dfs -ls hdfs://hadoop001:8081/
hdfs dfs -ls oss://hadoop001:8081/
hdfs dfs -ls s3://hadoop001:8081/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值