【HDFS】相关概念及常用命令
本文用于记录Hadoop中HDFS相关概念以及常用命令,以便日后查询。
概念之间无先后顺序,只是用于记录。
参考的Hadoop的版本是2.7.3
1. 角色
hadoop fs [hdfs dfs] // 普通用户
hdfs dfsadmin // hdfs管理员
2. edit日志和fsimage文件融合
a. hadoop集群启动时融合
生成新的inprogress_edits日志文件,将旧的inprogress_edits日志文件与fsimage文件融合,但是不生成新的fsimage文件
b. SecondaryNamenode周期生成检查点,进行融合(并不生成检查点)
生成新的inprogress_edits日志文件,将旧的inprogress_edits日志文件与fsimage文件拷贝到secondaryNamenode中,逐一执行edits日志文件中的指令,并写进fsimage文件中,生成一个检查点文件,将检查点文件拷贝到namenode中,重命名检查点,即去掉后缀,并使之生效
c. 手动融合,进入安全模式,保存命名空间
生成新的inprogress_edits日志文件,将旧的inprogress_edits日志文件与fsimage文件融合,写进一个新的fsimage文件中
3. dfs.hosts / dfs.hosts.exclude
a. 说明: slaves.sh 中配置的节点信息只是说明在集群启动的时候启动这些节点,而这些节点能否连上 resourcemanager ,需要配置这两个属性
b. 若没有配置这两个属性,则默认情况下,属性值为空,表示所有节点都能连
c. 在 hdfs-site.xml 文件中配置 dfs.hosts / dfs.hosts.exclude 属性
d. 属性值是文件的绝对路径,可在 hadoop 配置目录下创建 dfs.hosts.include / dfs.hosts.exclude 两个文件
e. 文件中的内容是 slaves.sh 中配置的节点
f. 属性优先级: include > exclude
| dfs.hosts | dfs.hosts.exclude | 说明 |
| 0 | 0 | 不能连 |
| 0 | 1 | 不能连 |
| 1 | 0 | 能连 |
| 1 | 1 | 能连,但是显示decommissioning,即不可用,但文件能够存储在该节点上 |
g. 重新配置后,可刷新节点,而无需重启集群
hdfs dfsadmin -refreshNodes
4. safemode(安全模式)
a. dfsadmin 手动进入
b. 安全模式下,不可put文件
c. 安全模式下,可手动融合edits日志和fsimage文件,即保存命名空间
d. 安全模式下,不可向hdfs文件系统中写入数据,比如,put文件,创建目录...
e. 常用命令
hdfs dfsadmin -safemode get // 获取当前是否在安全模式下
hdfs dfsadmin -safemode enter // 手动进入安全模式
hdfs dfsadmin -safemode leave // 手动离开安全模式
hdfs dfsadmin -safemode wait // 等待退出安全模式,一般在脚本中使用
5. 目录快照
a. 默认情况下,目录是不允许创建快照的
b. 需要管理员允许目录快照
hdfs dfsadmin -allowSnapshot <dirname>
c. 创建快照
hadoop fs -createSnapshot <dirname> <snapname>
快照保存在<dirname>/.snapshot/<snapname>下
d. 重命名快照
hadoop fs -renameSnapshot <dirname> <oldSnapname> <newSnapname>
e. 删除快照
hadoop fs -deleteSnapshot <dirname> <snapname>
6. 回收站
a. 每个用户都有一个回收站,在 /user/xw(用户名)/.Trash下
b. 回收站默认保存时间是 0s,即禁用回收站,可在core-site.xml中配置fs.trash.interval属性设置
c. shell中的删除是进回收站的,而编程中的删除是不进入回收站的,直接被删除,除非调用moveToTrash()方法
d. 清空回收站
1) hadoop fs -expunge 或者 超过fs.trash.interval设置的时间,则将回收站内的文件设置检查点,放到时间戳表示的文件夹下
2) 配置fs.trash.checkpoint.interval属性,设置间隔多长时间检查回收站的检查点中的文件,若该属性的值为0,则和fs.trash.interval属性值相同,将其删除
3) fs.trash.checkpoint.interval属性 <= fs.trash.interval属性值
7. 配额(也可以叫限制)
a. 配额:hdfs dfsadmin -setQuota <quota> <dirname>
即设置该<dirname>中元素的个数,该元素包括文件,目录,以及子元素
<quota> > 0
b. 空间配额:hdfs dfsadmin -setSpaceQuota <quota> <dirname>
即设置该<dirname>中物理空间的大小
<quota> > 0,比如 10[B],10m,10g
8. image/edits查看器
a. oiv(offline image viewer)
hdfs oiv -i imagefile -o outputfile -p processor(XML)
b. oev(offline edits viewer)
hdfs oev -i editsfile -o outputfile -p processor(XML)
【HDFS】相关概念及常用命令的更多相关文章
- hadoop(十一)HDFS简介和常用命令介绍
HDFS背景 随着数据量的增大,在一个操作系统中内存不了了,就需要分配到操作系统的的管理磁盘中,但是不方便管理者维护,迫切需要一种系统来管理多态机器上的文件,这就是分布式文件管理系统. HDFS的概念 ...
- Hadoop HDFS分布式文件系统 常用命令汇总
引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...
- [转]hadoop hdfs常用命令
FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令 hadoop常用命令: hadoop fs 查看H ...
- Hadoop_常用命令(hdfs上)
Hadoop_常用命令(hdfs上) hadoop fs所有文件系统都可以使用 hdfs dfs仅针对于hdfs文件系统 - 1 - 查看所有目录(文件夹)及文件 hdfs dfs -ls / - ...
- hadoop学习(三)HDFS常用命令以及java操作HDFS
一.HDFS的常用命令 1.查看根目录下的信息:./hadoop dfs -ls 2.查看根目录下的in目录中的内容:./hadoop dfs -ls in或者./hadoop dfs -ls ./i ...
- HDFS的常用命令
一.常用命令 二.其他命令
- [sqoop1.99.7] sqoop入门-下载、安装、运行和常用命令
一.简介 Apache Sqoop is a tool designed for efficiently transferring data betweeen structured, semi-str ...
- Git基础知识与常用命令
一:相关概念: 1:工作区(Working Directory): 就是你在电脑里能看到的目录 2:版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. ...
- hbase shell基础和常用命令详解(转)
HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...
随机推荐
- Struts2第十二篇【模型驱动】
什么是模型驱动 在Struts2中模型驱动就是用来封装数据的..完成数据的自动封装. 为什么要使用模型驱动? 我们之前就使用过Sturts2的数据自动封装功能,是用params拦截器完成的-既然有了p ...
- windows 结束进程的详细过程
windows上如何结束进程的详细过程,下面附详细,图文说明 在cmd下,输入 netstat -ano|findstr 8080 //说明:查看占用8080端口的进程 在cmd下, ...
- Java随机数的使用
在java中实现随机数的类有两种,分别是和java.util.Math 和 java.util.Random 第一种:java.lang.Math.random() Math.random()方法创建 ...
- 3.bootstrap-组件
1.图标 <button type="button" class="btn btn-default"> <span class="g ...
- CenOs 部署记录
1.安装APache.即 httpd 2.需要将80端口添加进iptable.外网才能访问.命令:iptables -I INPUT -p TCP --dport 80 -j ACCEPT
- Linux入门之常用命令(2)
(三) 链接文件 ln [-s] [源文件] [目标文件] -s表示符号链接 没有则是硬链接 硬链接是一个独立文件 (相当于一个副本) 符号链接是一个链接文件(相当于一个快捷方式) 但是修 ...
- Asp数据转Json
需要引用的文件: json.asp(可在JSON官网下载,也可在底部链接的demo中直接拷贝该文件) Conn.asp是链接数据库文件 <%@LANGUAGE="%> <% ...
- php基础运算符语句
/* 多行注释 *///常用数据类型//int string double/float bool//变量的定义$a = 123;$b = "123";$c = '456';//$d ...
- OC中成员属性 成员变量
比如用property声明一个变量属性 然后我们会为它用懒加载的方式重写get方法 然后我们在使用这个变量的时候,都是用self.itemArray,为什么这样用比较好呢,这是因为self.是对属性的 ...
- Python自学笔记-logging模块详解
简单将日志打印到屏幕: import logging logging.debug('debug message') logging.info('info message') logging.warni ...