HDFS入门教程
1. HDFS体系结构
HDFS采⽤的是master/slaves这种主从的结构模型来管理数据,这种结构模型主要由 四个部分组成,分别是 Client、NameNode、DataNode、SecondaryNameNode
不同的线代表不同的通信协议
1.1 NameNode
1. NameNode时整个文件系统的管理节点,它主要作用
- 维护整个文件系统的目录树
- 维护每个文件对应的数据块列表
- 接收客户端的请求
2. NameNode主要包含以下文件,这些内容常驻内存,也会存在文件里面。
- Fsimage: 元数据镜像文件,是元数据的镜像快照,元数据信息包括:文件目录树、每个文件对应的数据块列表
- Edits: 操作日志文件(事务文件)会实时记录用户的所有操作
- seen_txid : 存储的是edits文件的尾数,是一个数字
- VERSION : 保存的集群的版本信息
NameNode总结
1.2 SecondaryNameNode
主要负责定期把edits文件中的内容合并到fsimage中,这个合并操作被称为checkpoint,在合并的时候会对edits中的内容进行转换,生成新的内存保存到fsimage中
注意: 在NameNode的HA架构中没有SecondaryNameNode进程,文件合并操作会由standby NameNode负责实现。
1.3 DataNode
查看数据块的位置
/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-1435466945-192.168.21.101-1664012102328/current/finalized/subdir0/subdir0
注:
NameNode、datanode目录下 都有一个clusterID,当重新格式化NameNode时,clusterID会发生改变,而datanode中的clusterID不变。因此在格式化NameNode时要先删除data目录。
2. HDFS高级操作
2.1 HDFS垃圾回收站
开启HDFS的垃圾箱功能
- 在core-site.xml 添加如下配置 , 单位是分钟
-
<property>
-
<name>fs.trash.interval</name>
-
<value>1140</value>
-
</property>
- 重启集群
- 删除测试
- 恢复数据
hadoop fs -mv hdfs://linux01:9000/user/root/.Trash/Current/user/root/input/ /user/root/
说明:
(1)垃圾回收目录是一个HDFS目录,恢复数据时只需要mv回去就行了。
(2)skipTrash 选项删除文件,该选项不会将文件发送到垃圾箱
hadoop fs -rm -R -skipTrash /user/root/input
(3)HDFS会为每个用户创建一个回收站目录: /user/用户名/.Trash/
(4)回收站中的数据都会有一个默认保存周期,过期未恢复则会被HDFS自动彻底删除
2.2 HDFS的安全模式
集群刚启动时HDFS会进入安全模式,此时无法执行写操作
查看安全模式:
hdfs dfsadmin -safemode get
离开安全模式
hdfs dfsadmin -safemode leave
2.3 定时上传数据到HDFS
定时上传日志数据到HDFS,有补数据的功能
-
-
-
# 获取昨天日期字符串
-
yesterday=$1
-
-
if [ "$yesterday" = "" ]
-
then
-
yesterday=`date %Y_%m_%d --date="1 days ago"`
-
fi
-
# 拼接日志路径信息
-
logPath=/opt/data/log/access_${yesterday}.log
-
-
# 将日期字符串中的_去掉,并且拼接称HDFS的路径
-
hdfsPath=/log/${yesterday//_/}
-
-
# 在HDFS创建目录
-
hadoop fs -mkdir -p ${hdfsPath}
-
# 将数据上传到HDFS的指定目录中
-
hadoop fs -put ${logPath} ${hdfsPath}
注: 执行脚本时加上-x 选项可以看到脚本的执行过程
3. HDFS的高可用和高扩展
抛出两个问题
NameNode节点宕机了怎么办?
NameNode节点内存不够了怎么办?
3.1 HDFS的高可用(HA)
HA : 集群中有多个NameNode
- HFDS的HA 表示集群中存在多个NameNode,只有一个NameNode时Active状态,其它的是Standby状态
- Active NameNode(ANN)负责所有客户端的操作
- Standby NameNode(SNN) 用来同步ANN的状态信息,以提供快速故障恢复能力
- 使用HA的时候不能启动SecondayNameNode,会出错。因为SecondayNameNode的职责已经分配给了StandBy NN
3.2 HDFS的高扩展(Federation)
Federation可解决单一命名空间的问题,提供一下特性
- HDFS集群扩展性
- 性能更高效
- 良好的隔离性
可以和HA结合起来使用
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhbbgj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01