HDFS--集群管理

一、格式化

hdfs  namenode -format
  • 功能
    • 初始化集群,生成唯一的集群ID
    • 为NameNode构建初始的元数据

一旦集群搭建成功,不能直接二次格式化,会出现一个问题: NameNode的集群ID与DataNode的集群ID不一致

  • 原因
    • 第一次格式化
    • NameNode产生一个集群ID:abcd
    • DataNode第一次连接向NameNode 注册成功,也获取这个集群ID
      • 所有的DataNode的集群ID也是abcd
    • 当前整个集群的ID都是一致的
    • 下次DataNode启动必须校验集群ID是否相等,如果与NameNode 的集群ID不一致,注册不成功
  • 第二次格式化
    • NameNode产生一个新的集群ID:efgh
    • 启动DataNode向NameNode进行注册 ,所有DataNode全部注册失败
      • 集群ID不一致

怎么解决

  • 方案一:手动的将所有DataNode的集群id修改与NameNode的ID一致
  • 方案二:先清除hadoopDatas中所有的数据【集群id就保存在这个目录下】,重新再格式化一遍即可

二、dfsadmin

集群管理员才能执行的管理操作

[-report -live [-decommissioning]]:打印集群当前的状态

[-safemode <enter | leave | get | wait>]:HDFS的安全模式

hdfs  dfsadmin -safemode leave

强制退出安全模式

  • 作用:每次集群启动,都会先进入安全模式,类似于电脑启动自检,检查是否有数据丢失
    • 如果有数据丢失,超过一定比例99.9%,数据丢失比例大于0.1%,自动进入安全模式
    • 进行数据恢复,直到数据恢复大于99.9%
  • 特点
    • 安全模式下,不允许写入
    • 只能读取

[-refreshNodes]:重新加载所有的节点信息

  • 添加一台DataNode,或者下线一台DataNode
  • 及时更新集群的状态

[-setQuota]:限制某个 目录下最多存储的文件个数,设置为N,最多存N-1

  • 举例
hdfs dfs -setQuota 3  /wordcount

wordcount这个目录下最多存储2个文件
这个个数是包含自己的

[-clrQuota]:清除个数限制

[-setSpaceQuota]:限制某个目录下最多存储的数据的大小

  • 这个设置的值最小为:块的大小128M*副本个数3,最少设置384M
  • 如果你要存储一个200M的文件,应该设置多少
    • 200M两个块,256M *3 = 768M
    • 至少设置768M,才能存储这个200M的文件
      按照块的大小来划分空间,但是存储按照实际大小存储

[-clrSpaceQuota]:清除空间限制

三、haadmin:

用于手动实现ha高可用 集群的管理

  • 高可用:两个NameNode,一个是active,一个是standby备份状态

[-getServiceState ]: 获取当前两个namenode彼此的状态

[-transitionToActive [–forceactive]]:将standby切换为active

[-transitionToStandby ]:将active切换为standby

四、fsck:用于检查文件系统是否正常,是否有数据块丢失

五、balancer:实现DataNode负载均衡

datanode01:10TB
datanode02:2TB
datanode03:4TB

这样的存储分布不均衡,大部分的读写请求大概率的情况下都会读写node01
sbin/start-balancer.sh:运行这个脚本,让每台DataNode之间的存储相对均衡

datanode01:6TB
datanode02:5TB
datanode03:5TB
彼此之间的差值,不超过10%
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值