hadoop之--hdfs

hdfs支持主从结构,主节点NameNode,SecondaryNameNode。支持多个从节点称为DataNode,支持多个

NameNode是整个文件系统的管理节点(老板)

主要维护整个文件系统的文件目录树,文件/目录的信息每个文件对应的数据块列表,并且还负责接收用户操作请求。

NameNode主要包含以下文件:

Fsimage: 元数据镜像文件,存储某一时刻NameNode内存中的元数据信息,就类似是定时做了一个快照操作

edits : 做的是数据记录,记录上传,删除等操作

seed_txid:

version

NameNode维护了两份关系

第一份关系:File与Block list的关系

第二份关系:DataNode与Block的关系

SecondaryNameNode(秘书)

主要负责定期把edits文件中的内容合并到fsimage中

这个合并操作称为checkpoint,在合并的时候对edits中的内容进行转换,生成新的内容保存到fsimage文件中

DataNode(员工)

提供真实文件数据的存储服务

HDFS会按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称为一个Block,HDFS默认Block大小是128MB

当集群启动的时候会把自己当前的节点信息和这个节点上面所有的block块信息告诉给NameNode,动态加载,数据越多,加载越慢

hdfs回收站

默认没有开启的,开启后,默认有个保存周期,过期会被彻底删除

core-site.xml 添加如下配置

<property>

<name>fs.trash.interval</name>

<value>1440</value>

</property>

scp -rq core-site.xml bigdata02:/data/soft/hadoop-3.2.0/etc/hadoop/

Hdfs dfs -rm -skipTrash /user.txt 直接删除不进回收站

hdfs为每个用户创建一个回收站目录:/user/用户名/.Trash/

Hdfs 安全模式

集群刚启动时hdfs会进入安全模式,此时无法执行写操作

hdfs dfsadmin -safemode get 查看安全模式

Hdfs dfsadmin -safemode leave 离开安全模式

定时上传数据到hdfs

Sh 脚本

#!/bin/bash

yesterday=$1

if ["yesterday"=""]

then

yesterday=`date +%Y_%m_%d --date="1 days ago"`

fi

#日志文件目录

logPath=/data/log/access_${yesterday}.log

#时间格式化为ymd,hdfs目录

hdfsPath=/log/${yesterday//_/}

#hdfs创建目录

hdfs dfs -mkdir -p ${hdfsPath}

#上传文件到hdfs

hdfs dfs -put ${logPath} ${hdfsPath}

启动sh 脚本命令

sh -x uploadLogData.sh

sh -x uploadLogData.sh 2021_08_01

定时执行脚本

0 1 * * * root sh /data/shell/uploadLogData.sh >> /data/shell /uploadLogData.log

Hdfs 的高可用和高扩展

高可用,HA,结合注册中心实现

高扩展,Federation,可解决单一命名空间的一些问题,提供以下特性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞬间的醒悟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值