本文用于记录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】相关概念及常用命令的更多相关文章

  1. hadoop(十一)HDFS简介和常用命令介绍

    HDFS背景 随着数据量的增大,在一个操作系统中内存不了了,就需要分配到操作系统的的管理磁盘中,但是不方便管理者维护,迫切需要一种系统来管理多态机器上的文件,这就是分布式文件管理系统. HDFS的概念 ...

  2. Hadoop HDFS分布式文件系统 常用命令汇总

    引言:我们维护hadoop系统的时候,必不可少需要对HDFS分布式文件系统做操作,例如拷贝一个文件/目录,查看HDFS文件系统目录下的内容,删除HDFS文件系统中的内容(文件/目录),还有HDFS管理 ...

  3. [转]hadoop hdfs常用命令

    FROM : http://www.2cto.com/database/201303/198460.html hadoop hdfs常用命令   hadoop常用命令:  hadoop fs  查看H ...

  4. Hadoop_常用命令(hdfs上)

    Hadoop_常用命令(hdfs上) hadoop fs所有文件系统都可以使用 hdfs dfs仅针对于hdfs文件系统 - 1 - 查看所有目录(文件夹)及文件  hdfs dfs -ls / - ...

  5. hadoop学习(三)HDFS常用命令以及java操作HDFS

    一.HDFS的常用命令 1.查看根目录下的信息:./hadoop dfs -ls 2.查看根目录下的in目录中的内容:./hadoop dfs -ls in或者./hadoop dfs -ls ./i ...

  6. HDFS的常用命令

    一.常用命令 二.其他命令

  7. [sqoop1.99.7] sqoop入门-下载、安装、运行和常用命令

    一.简介 Apache Sqoop is a tool designed for efficiently transferring data betweeen structured, semi-str ...

  8. Git基础知识与常用命令

    一:相关概念: 1:工作区(Working Directory): 就是你在电脑里能看到的目录 2:版本库(Repository): 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库. ...

  9. hbase shell基础和常用命令详解(转)

    HBase shell的基本用法 hbase提供了一个shell的终端给用户交互.使用命令hbase shell进入命令界面.通过执行 help可以看到命令的帮助信息. 以网上的一个学生成绩表的例子来 ...

随机推荐

  1. Python装饰器主要用法

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = '人生入戏' user = "admin" passwd = ...

  2. 文件的inode号操作

    linux给每个文件生成了一个唯一的inode编号,命令行下操作文件需要输入文件名,如果遇到文件名特别难输入(或者包含特殊符号)的情况,可以用inode号操作文件. 可以用这个命令查看inode号: ...

  3. struts2前后台交互

    1.前台到后台A.form提交,后台用getParameter()方法拿到数据:B.url用?+&C.Ajax使用data:{username:account,password:passwor ...

  4. 微软云linux服务器FTP文件传输错误解决办法

    在微软云上新建了linux虚拟机之后,通过Xshell连接到服务器(微软云默认的账号是:azureuser,不是root),却发现通过FTP传输文件错误,一直找不到头绪,询问微软云相关人员才知道.FT ...

  5. Linux(centos)环境下Lamp环境搭建,成功版。

    搭建环境必须条件:1.Linux环境,2.Apache,3.mysql ,4.PHP,搭建步骤如下 1.开启Linux,得到root权限:sudo su 接下来输入登录密码,进入root权限,因为安装 ...

  6. 深入浅出AQS之条件队列

    相比于独占锁跟共享锁,AbstractQueuedSynchronizer中的条件队列可能被关注的并不是很多,但它在阻塞队列的实现里起着至关重要的作用,同时如果想全面了解AQS,条件队列也是必须要学习 ...

  7. GCD hdu1695容斥原理

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  8. 【Spring】面向切面之AOP

    前言 前面已经讲解了bean的装配技术,接着学习Spring中另外一个核心概念:切面. 面向切面 面向切面编程 切面能够帮助模块化横切关注点,横切关注点可以被描述为影响应用的功能,如为业务添加安全和事 ...

  9. 利用ASP.netCore自带DI(DependencyInjection)实现批量依赖注入

    ASP.net Core自带DI(依赖注入),用法如下: services.AddScoped(typeof(IProductService), typeof(ProductService)); 如果 ...

  10. FPGA在其他领域的应用(二)

    计算机和存储领域: 计算机技术和存储技术发展迅猛.如今,云计算正在实现对传统 IT 功能和全新功能的整合.例如,许多大型数据中心目前正在同时提供传统的 IT 服务以及新型的数据分析服务. 因此,这些大 ...