【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可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...
随机推荐
- [04] 利用注解生成实体类对应的建表sql语句
1.实现功能 我们已经对注解有了基本的认识,知道了如何自定义注解,如何使用和最基本的处理注解. 本篇主要介绍,如何使用运行时级别的注解,配合反射来自动生成建表的sql语句.如下例: 我们有实体类Stu ...
- Linux 的集中重启的方法
linux中有下面几条命令可以实现重新启动,这些命令都需要root用户的权限: reboot shutdown -r now #立刻重启 shutdown -r #过10分钟自动重启 shutdown ...
- 异常 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
使用Spring 的JDBCtemplate 调用数据库的时候 出现了如下的问题 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-S ...
- oracle数据中记录被另一个用户锁住
原因:PL/SQL里面执行语句执行了很久都没有结果,于是中断执行,于是就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住. 解决方法: 第一步:(只是用于查看哪些表被锁住,真正有 ...
- shim 和 polyfill
在前端,有两个词经常被提及:shim 和 polyfill.最近在翻译文章时又遇到了 polyfill 这个词,准备把这两个概念理清楚. 关于 JavaScript 的兼容性问题,通常有不同的解决方案 ...
- Android打包版本号设置
之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本. 晚上学习了如何配置打包名称,很简单,修改build.gr ...
- cs224d 自然语言处理作业 problem set3 (一) 实现Recursive Nerual Net Work 递归神经网络
1.Recursive Nerual Networks能够更好地体现每个词与词之间语法上的联系这里我们选取的损失函数仍然是交叉熵函数 2.整个网络的结构如下图所示: 每个参数的更新时的梯队值如何计算, ...
- spring框架总结(01)
1.spring是什么? sprint其实就是一个开源框架,是于2003年兴起的一个轻量级的java开发框架,是有Road Johnson创建的,简单的来说spring是一个分层的JavaSE/EE( ...
- Linux修改hostname的几种方法
修改hostname有几种方式 1: hostname DB-Server --运行后立即生效(新会话生效),但是在系统重启后会丢失所做的修改 ...
- apache一个IP一个端口对应多个域名
一个IP一个端口对应多个域名: NameVirtualHost XXX.XXX.XXX.XXX:80 <VirtualHost XXX.XXX.XXX.XXX:80> ServerAdmi ...