hdfs简介及入门
1、hdfs是什么?
hdfs是一个可以建立在廉价机上的高度容错性和高吞吐量的海量数据存储的分布式文件系统;
2、hdfs组成?
1)HDFS集群包括,NameNode和DataNode以及Secondary Namenode。
2)NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。
3)DataNode 负责管理用户的文件数据块,每一个数据块都可以在多个datanode上存储多个副本。
4)Secondary NameNode用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。
3、工作机制
hdfs数据写入过程:
hdfs数据读取过程:
namenode和secondary namenode工作机制:
1)第一阶段:namenode启动
(1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求
(3)namenode记录操作日志,更新滚动日志。
(4)namenode在内存中对数据进行增删改查
2)第二阶段:Secondary NameNode工作
(1)Secondary NameNode询问namenode是否需要checkpoint。直接带回namenode是否检查结果。
(2)Secondary NameNode请求执行checkpoint。
(3)namenode滚动正在写的edits日志
(4)将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode
(5)Secondary NameNode加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件fsimage.chkpoint
(7)拷贝fsimage.chkpoint到namenode
(8)namenode将fsimage.chkpoint重新命名成fsimage
datanode工作机制:
hdfs-HA:
4、基本操作
hdfs namenode -format 启动前先格式化文件系统(集群搭建时操作)
hadoop-daemon.sh start namenode|datanode 启动namenode和datanode
hdfs dfs -rm -r /user/data/output 删除文件系统的文件
hdfs dfs -mkdir -p /usr/data/input 在hdfs上创建文件夹
hdfs dfs -put ./wcinput/wc.input /usr/data/input 向hdfs上传文件
hdfs dfs -ls /user/data/output 查看文件
hdfs dfs -cat /user/data/output/part-r-00000
jps java下查看进程和命令,这是一个java命令