HDFS笔记1

1.HDFS重要命令

通过hdfs --help查看,主要为以下几个命令
dfsadmin  run a DFS admin client
fsck     run a DFS filesystem checking utility
dfs     run a filesystem command on the file system
namenode  run the DFS namenode

dfs这个命令当然不用多说用的比较多了
其次就是namenode命令了
还记得在安装hadoop的时候使用到了

hdf namenode -format

dfadmin

其次是dfsadmin,主要为安全模式有关的一个命令

hdfs dfsadmin -safemode get

用于查看hdfs的安全模式一般来说为
Safe mode is OFF
OFF关闭,读写都是ok
ON开启,读是ok,写不行
安全模式最好是关
如果ON,也就进入了安全模式,有2种情况

  1. 被动进入
    说明HDFS集群有问题,相当于保护模式
  2. 主动进入
    主要是做维护,保证这段时间HDFS不会有新数据/新文件写入

fsck

再然后是

hdfs fsck /

用于查看hdfs的最基本情况,结果如下
在这里插入图片描述
可以发现与hadoop 9870端口的内容较像
在这里插入图片描述

回收站

然后是有关回收站的知识
配置回收站需要 进入位于hadoop/etc/hadoop/目录下的hadoop配置文件core-site.xml

vi core-site.xml

在配置文件内加入

    <property>
        <name>fs.trash.interval</name>
        <value>10080</value>
    </property>

value中10080单位为分钟=7天
当然修改完配置文件后别忘了重启
重启完成后创建测试文件进行测试

hdfs dfs -mkdir -p delete/test1
hdfs dfs -mkdir -p delete/test2

删除文件test1

hdfs dfs -rm -r delete/test1

按下回车后会出现提示:
INFO fs.TrashPolicyDefault: Moved: ‘hdfs://zhangyujie:9000/user/zhangyujie/delete/test1’ to trash at: hdfs://zhangyujie:9000/user/zhangyujie/.Trash/Current/user/zhangyujie/delete/test1
说明被删除的test1文件被移到了.Trash文件夹内了,与windows的回收站类似
可以通过 hdfs dfs -ls查看被删除的文件

hdfs dfs -ls /user/zhangyujie/.Trash/Current/user/zhangyujie/delete/
Found 1 items

还有一种跳过回收站的删除方法

hdfs dfs -rm -r -skipTrash  delete/test2

关键字为-skipTrash
但是鉴于删除操作较为敏感,所以为了防止文件的误删生产上禁用跳过回收站的删除方法
万一删除操作失误,错误输入了rm -rf /并确认还跳过删除就会被迫变成删库跑路

关于很多的配置文件的修改可以去官网上寻找相关信息
hadoop官网

2.HDFS主从架构

NameNode SecondaryNameNode DataNode

2.1 NN 名称节点

  • 存储的内容包括:
    1 文件的名称
    2 文件的目录结构
    3 文件的属性(权限、副本数、创建时间等)
    简而言之就是可以用hfds dfs -ls 能够看到的内容
    4 一个文件被对应切割哪些 数据库(包括副本数的块)==》对应分布在哪些DataNode
    管理文件系统的命名空间,其实就是维护文件系统树的文件和文件夹
  • 主要文件:
    镜像文件:fsimage
    编辑日志文件:edits
    文件目录为 /home/zhangyujie/tmp/dfs/name/current

2.2 SNN 第二名称节点

/home/zhangyujie/tmp/dfs/namesecondary /current
主要文件:

  • edits_inprogress_0000000000000000455
    把上一块的镜像文件fsimage_0000000000000000520以及edits_0000000000000000526文件
    通过检查点(checkpoint)合并成fsimage_0000000000000000526

  • edits_inprogress_0000000000000000526为正在记录的
    写满了 或者 到一定时间会将里面的数据放入edits_inprogress_0000000000000000526
    然后 新建edits_inprogress_000000000000000057
    循环往复
    在这里插入图片描述

  • 写满或到一定时间
    dfs.namenode.checkpoint.period 3600 1小时
    dfs.namenode.checkpoint.txns 1000000 写满100w

  • 早起为了解决NN是单点的就可能会发生单点故障,增加一个SNN一小时做一个checkpoint
    但是现在生产上不用SNN

  • 比如21:00 checkpoint NN和SNN是一样的
    21:19 突然NN挂了,且无法恢复
    那么这19分钟内做的所有操作都没了
    即使拿SNN上的fsimage,也只能恢复到21:00
    如果在业务高峰期是很可怕的

  • 现在主要用
    HA Highil Available 高可靠
    通过配置另一个实时备份NN节点,随时等待active的NN挂掉,然后成为active NN backup NN
    写入的时候往两个里面一起写,读的话是从active里面读的

HA 也是不hadoop专属的,其他很多东西都有

2.3 DN 数据节点

  1. 存储数据块 和 数据库的元数据
    主要文件:
    块 一个快默认最大128M
    块的元数据
  2. 每隔一段时间会发送blockreport(块报告)给到NN
    dfs.blockreport.intervalMsec 21600000 单位为毫秒 = 6H
    在给NN发送blockreport(块报告)时需要检查自己
    dfs.datanode.directoryscan.interval 21600单位为秒 = 6H
    这两个的以秒为单位的时间要一致即检查好了再发给NN

3.HDFS优缺点

优点

  1. 处理海量数据
    1亿行 200字段
    GB TB PB
  2. 适合批处理(离线数仓)
    移动计算而不是移动数据
    会把数据位置暴露计算框架
  3. 高容错
    数据自动保存N个副本,增加副本数据,挺好容错
    某一个副本丢了,HDFS内部机制是可以自动恢复
  4. 可以构建在廉价机器上

缺点

  1. 小文件问题,需要工程师去合并小文件
  2. 与前面优点相对应的,适合批处理就不适合毫秒级(实时)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值