大数据笔记03--高可用的完全分布式HDFS及HDFS操作

menu

  • 高可用的完全分布式
    • HDFS存在的问题
    • HA
      • 架构图
      • 构成
      • 如何解决单点故障
  • HDFS常用操作

高可用的完全分布式

HDFS存在的问题

  1. NameNode单点故障,造成整个集群不可用,即可用度低
    解决:高可用(High Availability),通过备用NN解决
  2. NameNode内存受限,影响扩展性
    解决:联邦(Federation)机制,横向扩展,多个NN分管元数据(仅了解)

HA

架构图

大数据笔记03--高可用的完全分布式HDFS及HDFS操作_第1张图片

构成

  • 主备NameNode,一个Active,其他standby
  • JournalNodes,JNN集群,存放edits文件,节点数为奇数。
  • Zookeeper集群,在NN挂掉时通过选举机制选出新的activeNN(之后会详细学习)
  • FailoverController(zkfc),监控NN健康状态并向ZK汇报

如何解决单点故障

  • active的NN接受请求造成的操作存入JNN中存放的edits中,超过半数节点写入即可再次接受请求(防止发生脑裂)。
  • standby的NN会将JNN中的edits拿过来进行重演,合并fsimage,并推送回NN1(即SNN发挥的作用)。
  • NN挂掉时,可以手动将NN2提升为active,或使用zookeeper实现。zkfc接收zk的选举结果,将自己所监控的NN提升为active。并检查挂掉的NN,若为假死(监控其的zkfc挂掉),则将其置为standby。(需要NN2的zkfc和NN1的通信)
  • 无论何时NN1挂掉,NN2提升为active,NN2内的元数据始终是和NN1同步的。这时持久化的工作暂时由NN2自己进行(集群仍可用,只是效率降低),等待程序员重启新的NN
  • DN会同时向两个NN发送位置信息和心跳,防止两个NN数据不同步

HDFS常用操作

上传文件:

hdfs dfs -put a /test
hdfs dfs -copyFromLocal a /test	(同-put)
hdfs dfs -moveFromLocal a /test

创建新目录:

hdfs dfs -mkdir ./test
-p 级联创建

向文件中追加内容:

hdfs dfs -appendToFile b /test/a

查看文件:

hdfs dfs -cat /test/a

更改属主和属组:

hdfs dfs -chgrp group01 /test/a
hdfs dfs -chown user01:group01 /test/a(可以同时修改属主和属组)
-R 递归修改

更改权限:

hdfs dfs -chmod 777 /test/a.txt
-R 递归修改

下载文件到本地:

hdfs dfs -copyToLocal /test/a /abc

查看文件系统的磁盘空间:

hdfs dfs -df -h
-h 添加单位

你可能感兴趣的:(大数据笔记)