HDFS的基础架构
HDFS的角色分配:
NameNode:是分布式服务中的主角色或主节点,负责DataNode的管理工作,负责处理客户端请求
DataNode:是分布式服务中的从角色或从节点, 负责数据文件的数据的存储和数据的获取
SecondaryNameNode: 是集群中的辅助角色或辅助节点,负责帮助NameNode完成管理工作(负责元数据的合并工作).
NameNode 简写 NN
DataNode 简写DN
SecondaryNameNode 简写SNN
NN
在开发中只有一个主服务,容易出现单点故障
:在主从架构中,只有一个主服务,一旦主服务不可用,整个服务都不可用使用
主备方式
解决单点故障运行多个NN,但是对外处理请求的只有一个
一般公司选择是一主一备方案
一个典型的HDFS中会有多个DataNode,但是活跃的NameNode只能有一个,如果集群资源不足,则需要扩展DataNode节点数量.如果元数据管理能力不足,则需要给namenode提升服务器性能.
HDFS是一个标准的主从架构
注意: 通常情况下, NameNode的服务器性能,要比DataNode高.(cpu和内存大)
三台虚拟机中的服务分配
node1 namenode datanode
node2 Secondarynamenode datanode
node3 datanode
实际公司中namenode是单独在一台服务器上运行
HDFS的服务启停
对整个hadoop服务的启动和关闭
启动指令只需要在node1上执行
会将hadoop中的hdfs,yarn服务都会启动
start-all.sh stop-all.sh
一键启停hdfs集群
下方指令是针对于整个hdfs的启停.在node1中执行该命令, node2, node3中的服务都会被启动. 前提是免密登录
# 一键启动 start-dfs.sh # 一键停止 stop-dfs.sh
单起单停
# 只能控制当前服务器中服务的启停 hdfs --daemon start|stop|status namenode|datanode|secondarynamenode
注意: 在开发中,一般我们的服务不会频繁启停,如果服务出现故障进行单起单停,否则影响面太广.
如果是第一次启动服务可以使用start指令启动,启动后某一台服务器出现问题,就是使用单独启动指令
在公司中服务器时24小时运行,所以服务器一般只启动一次
使用客户端指令操作
在linux系统中使用hdfs的指令完成hdfs的文件操作
很多指令和linux指令类似
hdfs dfs 指令 参数
hdfs dfs 回车可以查看所有指令
-
查看当前目录下的信息
hdfs dfs -ls 目录路径