精华内容
下载资源
问答
  • hdfs命令

    2021-03-19 13:48:01
    hdfs命令文件系统操作命令admin操作JavaAPI 文件系统操作命令 hdfs文件系统命令基本与linux系统命令相同,只需要在前面名加上hdfs dfs - 命令 作用 说明 -mkdir 创建目录 -p选项递归创建 -ls 显示内容 -R...

    文件系统操作命令

    hdfs文件系统命令基本与linux系统命令相同,只需要在前面名加上hdfs dfs -

    命令 作用 说明
    -mkdir 创建目录 -p选项递归创建
    -ls 显示内容 -R选项递归显示
    -put 上传文件
    -copyFrmoLocal 上传文件 与put作用相同
    -get 下载文件
    -copyToLocal 下载文件 与get作用相同
    -mv 移动文件 不允许跨文件系统
    -cp 复制文件 不允许跨文件系统
    -rm 删除文件 -r选项递归删除
    -cat 查看文件内容

    admin操作

    命令以hdfs dfsadmin开头

    命令 作用
    -report 返回集群的状态信息
    -metasave 默认存放到{HADOOP_LOG_DIR}路径下,包含datanode和块的信息
    -fetchImage 从namenode节点获取最新的fsimage文件至本地指定目录
    -setQuota 设置文件目录配额
    -setSpaceQuota 设置文件目录空间配额

    JavaAPI

    第一步:搭建windows下的hadoop环境
    1、将hadoop文件夹拷贝到一个没有中文和空格的路径下
    2、在windows上配置hadoop环境变量
    3、把hadoop文件夹中bin目录下的hadoop.dll文件放到系统盘:C:\Windows\System32目录
    4、关闭windows重启

    第二步:导入maven依赖

    第三步:编写代码
    首先连接到hdfs文件系统,并获取FileSystem对象

    //第一种方式:URL
    package pac1;
    
    import org.apache.commons.io.IOUtils;
    import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
    import org.junit.Test;
    
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URL;
    
    public class Hdf_API_Test {
        @Test
        public void test()throws IOException {
            //1、注册URL
            URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());
            //2、获取hdfs文件输入流
            InputStream is = new URL("hdfs://hadoop1:8020/core-site.xml").openStream();
            //3、获取本地文件输出流
            FileOutputStream fos = new FileOutputStream("D:\\hello.txt");
            //4、文件拷贝
            IOUtils.copy(is,fos);
            //5、关闭流
            IOUtils.closeQuietly(fos);
            IOUtils.closeQuietly(is);
        }
    }
    
    //第二种方式:使用文件系统方式
    //获取FileSystem的几种方式
    //第一种方式:
    public void getFileSystem1()throws IOException{
        //创建Configuration对象
        Configuration configuration = new Configuration();
        //设置文件系统类型
        configuration.set("fs.defaultFs","hdfs://hadoop1:8020");
        //生成FileSystem对象
        FileSystem system = FileSystem.get(configuration);
    
    
        System.out.println(system);
    }
    
    //第二种方式:
    @Test
    public void getFileSystem2() throws URISyntaxException, IOException {
        FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop1:8020"), new Configuration());
        System.out.println(fileSystem);
    }
    
    //第三种方式:
    @Test
    public void getFileSystem3() throws IOException {
        Configuration configuration=new Configuration();
        configuration.set("fs.defaultFs","hdfs://hadoop1:8020");
        FileSystem fileSystem = FileSystem.newInstance(configuration);
        System.out.println(fileSystem);
    }
    
    //第四种方式
    @Test
    public void getFileSystem4() throws IOException, URISyntaxException {
        FileSystem fileSystem = FileSystem.newInstance(new URI("hdfs://hadoop1:8020"),new Configuration());
        System.out.println(fileSystem);
    }
    
    //遍历文件
    @Test
    public void listFile() throws URISyntaxException, IOException {
        //获取FileSystem对象
        FileSystem fileSystem = FileSystem.get(new URI("hdfs://hadoop1:8020"), new Configuration());
        /*
        获取RemoteIterator 方法的第一个参数时要遍历的文件夹路径,第二个参数为true代表要递归获取
         */
        RemoteIterator<LocatedFileStatus> iterator = fileSystem.listFiles(new Path("/"), true);
        while (iterator.hasNext()){
            LocatedFileStatus fileStatus = iterator.next();
            System.out.println(fileStatus.getPath().getName());
        }
        fileSystem.close();
    }
    
    //创建文件夹
    @Test
    public void makeDir() throws URISyntaxException, IOException {
        FileSystem fileSystem=FileSystem.newInstance(new URI("hdfs://hadoop1:8020"),new Configuration());
        fileSystem.mkdirs(new Path("/dir1/apiDictionary"));
        fileSystem.close();
    }
    
    #//创建文件 fileSystem.create(new Path("xxx"));
        /*
        下载文件
         */
        @Test
        public void downLoad() throws URISyntaxException, IOException {
            FileSystem fileSystem = FileSystem.newInstance(new URI("hdfs://hadoop1:8020"), new Configuration());
    //        FSDataInputStream open = fileSystem.open(new Path("/hdfs-site.xml"));
    //        FileOutputStream fos = new FileOutputStream("d://hahaha.xml");
    //        IOUtils.copy(open,fos);
    //        IOUtils.closeQuietly(fos);
    //        IOUtils.closeQuietly(open);
            fileSystem.copyToLocalFile(new Path("/hdfs-site.xml"),new Path("d://ha.xml"));
            fileSystem.close();
        }
        /*
        上传文件
         */
        @Test
        public void upload() throws IOException, URISyntaxException {
            FileSystem fileSystem = FileSystem.newInstance(new URI("hdfs://hadoop1:8020"), new Configuration());
            fileSystem.copyFromLocalFile(new Path("d://ha.xml"),new Path("/"));
            fileSystem.close();
        }
    

    文件权限默认是失效的,因为配置文件hdfs-site.xml中的dfs.permissions值为false

    创建fileSystem的两个方法都有一个重载的三变量方法,第三个变量就是字符串形式的用户名,可以以指定的用户取访问文件系统

    合并小文件
    shell命令模式下:
    cd /software
    hdfs dfs -getmerge /config/*.xml ./hello.xml #合并下载

    可以尝试封装以上方法,生成jar包到linux系统运行

    package course.hdfs;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    import java.io.IOException;
    import java.net.URI;
    import java.net.URISyntaxException;
    
    public class TestHDFS {
        private FileSystem fs;
    
        public static void main(String[] args) throws IOException {
            TestHDFS obj = new TestHDFS();
            obj.initFs(args[1], args[2]);
            String operatorType = args[0];
            switch (operatorType) {
                case "mkdir":
                    obj.createDir(args[3]);
                    break;
                case "touch":
                    obj.createNewFile(args[3]);
                    break;
                case "del":
                    obj.deleteFile(args[3], Boolean.parseBoolean(args[4]));
                    break;
                case "downLoad":
                    obj.downLoad(args[3], args[4]);
                    break;
                case "upLoad":
                    obj.upLoad(args[3], args[4]);
                    break;
                default:
                    throw new RuntimeException("指令错误");
            }
            obj.close();
        }
    
        private void upLoad(String src, String dst) {
            try {
                fs.copyFromLocalFile(new Path(src), new Path(dst));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private void downLoad(String src, String dst) {
            try {
                fs.copyToLocalFile(new Path(src), new Path(dst));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private void deleteFile(String path, Boolean recursion) {
            try {
                fs.delete(new Path(path), recursion);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private void createDir(String path) {
            try {
                fs.mkdirs(new Path(path));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private void createNewFile(String path) {
            try {
                fs.createNewFile(new Path(path));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        private void initFs(String uri, String user) {
            try {
                fs = FileSystem.get(new URI(uri), new Configuration(), user);
            } catch (IOException | InterruptedException | URISyntaxException e) {
                e.printStackTrace();
            }
        }
    
        private void close() {
            try {
                fs.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }
    
    展开全文
  • HDFS 命令

    2019-03-01 16:29:51
    概述 hdfs常用命令,调用方式 bin/hdfs command-name &amp;lt;args&amp;gt; dfs 在Hadoop支持的文件系统上运行文件系统命令。类似hadoop fs命令, 可查看Hadoop FS Shell 命令 dfsadmin ...

    概述(Hadoop版本2.8.4)

    所有HDFS命令都由bin/ hdfs脚本调用。运行没有任何参数的hdfs脚本将打印所有命令的描述。
    用法: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]
    Hadoop有一个选项解析框架,它使用解析通用选项和运行类。

    命令选项 描述
    --config
    --loglevel
    shell选项的公共集。
    GENERIC_OPTIONS 多个命令支持的通用选项集。
    COMMAND COMMAND_OPTIONS 下面几节将描述带有选项的各种命令。

    User 命令

    对hadoop集群用户有用的命令。

    classpath
    打印获取Hadoop jar和所需库所需的类路径。

    dfs
    用法: hdfs dfs [COMMAND [COMMAND_OPTIONS]]
    在Hadoop支持的文件系统上运行文件系统命令。可以在Hadoop FS Shell 命令找到各种COMMAND_OPTIONS。

    fetchdt
    从NameNode获取委托令牌。

    fsck
    用法:

    hdfs fsck <path>
              [-list-corruptfileblocks |
              [-move | -delete | -openforwrite]
              [-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]]
              [-includeSnapshots]
              [-storagepolicies] [-blockId <blk_Id>]
    
    命令选项 描述
    path 从这个路径开始检查。
    -delete 删除损坏的文件。
    -files 打印出要检查的文件。
    -files -blocks 打印块报告
    -files -blocks -locations 打印出每个块的位置。
    -files -blocks -racks 打印数据节点位置的网络拓扑。
    -files -blocks -replicaDetails 打印出每个副本细节。
    -files -blocks -upgradedomains 打印每个块的升级域。
    -includeSnapshots 如果给定的路径指示快照目录或该目录下有快照目录,则包含快照数据。
    -list-corruptfileblocks 打印出丢失的块和它们所属的文件的列表。
    -move 将损坏的文件移动到/lost+found
    -openforwrite 打印为写打开的文件。
    -storagepolicies 打印出块的存储策略摘要。
    -blockId 打印出关于块的信息。

    运行HDFS文件系统检查功能程序。

    getconf
    用法:

    hdfs getconf -namenodes
    hdfs getconf -secondaryNameNodes
    hdfs getconf -backupNodes
    hdfs getconf -includeFile
    hdfs getconf -excludeFile
    hdfs getconf -nnRpcAddresses
    hdfs getconf -confKey [key]
    
    命令选项 描述
    -namenodes 获取集群中的namenode列表。
    -secondaryNameNodes 获取集群中辅助namenode的列表。
    -backupNodes 获取群集中的备份节点列表。
    -includeFile 获取定义可以加入集群的数据节点的包含文件路径。
    -excludeFile 获取定义需要退出的数据节点的排除文件路径。
    -nnRpcAddresses 获取namenode rpc地址
    -confKey [key] 从配置中获取特定的键

    从配置目录获取配置信息。

    groups
    用法: hdfs groups [username ...]
    返回给定一个或多个用户名的组信息。

    lsSnapshottableDir
    获取快照目录的列表。当它作为超级用户运行时,它返回所有快照目录。否则,它返回当前用户拥有的目录。

    version
    用法: hdfs version
    打印版本。

    Administration 命令

    对hadoop集群管理员有用的命令。
    dfsadmin
    用法:

    hdfs dfsadmin [GENERIC_OPTIONS]
              [-report [-live] [-dead] [-decommissioning]]
              [-safemode enter | leave | get | wait | forceExit]
              [-saveNamespace]
              [-rollEdits]
              [-restoreFailedStorage true |false |check]
              [-refreshNodes]
              [-setQuota <quota> <dirname>...<dirname>]
              [-clrQuota <dirname>...<dirname>]
              [-setSpaceQuota <quota> [-storageType <storagetype>] <dirname>...<dirname>]
              [-clrSpaceQuota [-storageType <storagetype>] <dirname>...<dirname>]
              [-finalizeUpgrade]
              [-rollingUpgrade [<query> |<prepare> |<finalize>]]
              [-metasave filename]
              [-refreshServiceAcl]
              [-refreshUserToGroupsMappings]
              [-refreshSuperUserGroupsConfiguration]
              [-refreshCallQueue]
              [-refresh <host:ipc_port> <key> [arg1..argn]]
              [-reconfig <datanode |...> <host:ipc_port> <start |status>]
              [-printTopology]
              [-refreshNamenodes datanodehost:port]
              [-deleteBlockPool datanode-host:port blockpoolId [force]]
              [-setBalancerBandwidth <bandwidth in bytes per second>]
              [-getBalancerBandwidth <datanode_host:ipc_port>]
              [-allowSnapshot <snapshotDir>]
              [-disallowSnapshot <snapshotDir>]
              [-fetchImage <local directory>]
              [-shutdownDatanode <datanode_host:ipc_port> [upgrade]]
              [-getDatanodeInfo <datanode_host:ipc_port>]
              [-evictWriters <datanode_host:ipc_port>]
              [-triggerBlockReport [-incremental] <datanode_host:ipc_port>]
              [-listOpenFiles]
              [-help [cmd]]
    
    命令选项 描述
    -report [-live] [-dead] [-decommissioning] 报告基本的文件系统信息和统计信息,dfs的使用可以不同于“du”的使用,因为它度量所有DNs上复制、校验和、快照等使用的原始空间。可选标记可用于筛选显示的数据阳极列表。
    -safemode enter|leave|get|wait|forceExit 安全模式维护命令。安全模式是一种Namenode状态:
    1. 不接受名称空间(只读)
    2. 不复制或删除块。
    安全模式在Namenode启动时自动进入,当配置的最小块百分比满足最小复制条件时自动离开安全模式。如果Namenode检测到任何异常,那么它将停留在安全模式下,直到该问题得到解决。如果该异常是故意操作的结果,那么管理员可以使用-safemode forceExit退出安全模式。可能需要forceExit的情况是:
    1. Namenode元数据不一致。如果Namenode检测到元数据被带外修改并可能导致数据丢失,那么Namenode将进入forceExit状态。此时,用户可以使用正确的元数据文件重新启动Namenode,也可以使用forceExit(如果数据丢失是可以接受的)。
    2. 回滚会导致元数据被替换,而且很少会在Namenode中触发安全模式forceExit状态。在这种情况下,您可以通过发出-safemode forceExit继续。安全模式也可以手动输入,但也只能手动关闭。
    -listOpenFiles 列出NameNode当前管理的所有打开的文件,以及客户机名称和访问它们的客户机机器。
    展开全文
  • HDFS命令指南

    2019-04-17 10:48:35
    HDFS命令指南   概览 User Commands classpath dfs envvars fetchdt fsck getconf groups httpfs lsSnapshottableDir jmxget oev oi...

    HDFS命令指南

     

     

    概观

    所有HDFS命令都由bin/hdfs脚本调用。不带任何参数运行hdfs脚本会打印所有命令的描述。

    用法: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS] 

    Hadoop有一个选项解析框架,它使用解析通用选项以及运行类。

    COMMAND_OPTIONS 描述
    SHELL_OPTIONS 常见的shell选项集。这些内容记录在“ 命令手册”页面上。
    GENERIC_OPTIONS 多个命令支持的通用选项集。有关更多信息,请参阅“Hadoop 命令手册 ”。
    COMMAND COMMAND_OPTIONS 以下各节介绍了各种命令及其选项。这些命令已分组为“ 用户命令”和“ 管理命令”

    用户命令

    对hadoop集群的用户有用的命令。

    类路径

    用法:hdfs classpath [--glob | --jar <path> | -h | --help]

    命令选项 描述
    --glob 扩展通配符
    --jar path 将类路径写为jar命名路径中的清单
    -h, - help 打印帮助

    打印获取Hadoop jar和所需库所需的类路径。如果不带参数调用,则打印由命令脚本设置的类路径,该脚本可能在类路径条目中包含通配符。其他选项在通配符扩展后打印类路径,或将类路径写入jar文件的清单中。后者在无法使用通配符且扩展类路径超过支持的最大命令行长度的环境中非常有用。

    dfs

    用法:hdfs dfs [COMMAND [COMMAND_OPTIONS]]

    在Hadoop支持的文件系统上运行filesystem命令。可以在File System Shell Guide中找到各种COMMAND_OPTIONS 。

    envvars

    用法:hdfs envvars

    显示计算的Hadoop环境变量。

    fetchdt

    用法:hdfs fetchdt <opts> <token_file_path>

    命令选项 描述
    --webservice NN_Url 要连接NN的网址(以http或https开头)
    --renewer name 委托令牌更新程序的名称
    --cancel 取消委托令牌
    --renew 续订委托令牌。必须使用-renewer name选项获取委派令牌。
    --print 打印委托令牌
    token_file_path 用于存储令牌的文件路径。

    从NameNode获取委托令牌。有关详细信息,请参阅fetchdt

    fsck的

    用法:

    hdfs fsck <path>
              [-list-corruptfileblocks |
              [-move | -delete | -openforwrite]
              [-files [-blocks [-locations | -racks | -replicaDetails | -upgradedomains]]]
              [-includeSnapshots] [-showprogress]
              [-storagepolicies] [-maintenance]
              [-blockId <blk_Id>]
    命令选项 描述
    path 从这条路径开始检查。
    -delete 删除损坏的文件。
    -files 打印出要检查的文件。
    -files -blocks 打印出块报告
    -files -blocks -locations 打印每个块的位置。
    -files -blocks -racks 打印数据节点位置的网络拓扑。
    -files -blocks -replicaDetails 打印出每个副本的详细信息。
    -files -blocks -upgradedomains 打印每个块的升级域。
    -includeSnapshots 如果给定路径指示快照目录或其下有快照目录,则包括快照数据。
    -list-corruptfileblocks 打印出所属的缺失块和文件列表。
    -move 将损坏的文件移至/ lost + found。
    -openforwrite 打印出用于写入的文件。
    -showprogress 打印出输出点的点。默认为OFF(无进度)。
    -storagepolicies 打印出块的存储策略摘要。
    -maintenance 打印出维护状态节点详细信息。
    -blockId 打印出有关块的信息。

    运行HDFS文件系统检查实用程序。有关详细信息,请参阅fsck

    getconf

    用法:

       hdfs getconf -namenodes
       hdfs getconf -secondaryNameNodes
       hdfs getconf -backupNodes
       hdfs getconf -journalNodes
       hdfs getconf -includeFile
       hdfs getconf -excludeFile
       hdfs getconf -nnRpcAddresses
       hdfs getconf -confKey [key]
    命令选项 描述
    -namenodes 获取集群中的名称节点列表。
    -secondaryNameNodes 获取群集中的辅助名称节点列表。
    -backupNodes 获取群集中的备份节点列表。
    -journalNodes 获取群集中的日记节点列表。
    -includeFile 获取包含文件路径,该路径定义可以加入群集的datanode。
    -excludeFile 获取排除文件路径,该路径定义需要停用的数据节点。
    -nnRpcAddresses 获取namenode rpc地址
    -confKey [key] 从配置中获取特定密钥

    从配置目录中获取配置信息,进行后处理。

    groups

    用法:hdfs groups [username ...]

    返回给定一个或多个用户名的组信息。

    httpfs

    用法:hdfs httpfs

    运行HttpFS服务器,HDFS HTTP网关。

    lsSnapshottableDir

    用法:hdfs lsSnapshottableDir [-help]

    命令选项 描述
    -help 打印帮助

    获取快照目录列表。当它以超级用户身份运行时,它将返回所有快照目录。否则,它返回当前用户拥有的那些目录。

    jmxget

    Usage: hdfs jmxget [-localVM ConnectorURL | -port port | -server mbeanserver | -service service]

    命令选项 描述
    -help 打印帮助
    -localVM ConnectorURL 连接到同一台计算机上的VM
    -port mbean server port  指定mbean服务器端口,如果缺少它将尝试连接到同一VM中的MBean Server
    -server 指定mbean服务器(默认为localhost)
    -service NameNode | DataNode 指定jmx服务。默认情况下为NameNode。

    服务的快照信息

    oev

    Usage: hdfs oev [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE

    必需的命令行参数:

    命令选项 描述
    -i, - inputFile arg 编辑要处理的文件,xml(不区分大小写)扩展名表示XML格式,任何其他文件名表示二进制格式
    -o, - outputFile arg 输出文件的名称。如果指定的文件存在,则将覆盖该文件,文件的格式由-p选项确定

    可选的命令行参数:

    命令选项 描述
    -f, --fix-txids 重新编号输入中的事务ID,以便没有间隙或无效的事务ID。
    -h,--help 显示使用信息并退出
    -r,--recover 读取二进制编辑日志时,请使用恢复模式。这将使您有机会跳过编辑日志的损坏部分。
    -p, --processor arg 选择要对图像文件应用的处理器类型,当前支持的处理器是:二进制(Hadoop使用的本机二进制格式),xml(默认,XML格式),统计信息(打印有关编辑文件的统计信息)
    -v, --verbose 更详细的输出,打印输入和输出文件名,用于写入文件的处理器,也输出到屏幕。在大图像文件上,这将大大增加处理时间(默认为false)。

    Hadoop离线编辑查看器。有关详细信息,请参阅脱机编辑查看器指南

    oiv

    用法:hdfs oiv [OPTIONS] -i INPUT_FILE

    必需的命令行参数:

    命令选项 描述
    -i | --inputFile input file 指定要处理的输入fsimage文件(或XML文件,如果使用ReverseXML处理器)。

    可选的命令行参数:

    命令选项 描述
    -o, --outputFile output file 如果指定的输出处理器生成一个,请指定输出文件名。如果指定的文件已存在,则会以静默方式覆盖该文件。(默认情况下输出到stdout)如果输入文件是XML文件,它还会创建<outputFile> .md5。
    -p,--processorprocessor 指定要对图像文件应用的图像处理器。目前有效的选项是Web(默认),XML,Delimited,FileDistribution和ReverseXML。
    -addr address 指定要侦听的地址(主机:端口)。(localhost:默认为5978)。此选项与Web处理器一起使用。
    -maxSize size 指定要以字节为单位分析的文件大小的范围[0,maxSize](默认为128GB)。此选项与FileDistribution处理器一起使用。
    -step size 以字节为单位指定分发的粒度(默认为2MB)。此选项与FileDistribution处理器一起使用。
    -format 以人类可读的方式而不是多个字节格式化输出结果。(默认为false)。此选项与FileDistribution处理器一起使用。
    -delimiter arg 定界字符串以与分隔处理器一起使用。
    -t, - temp temporary dir 使用临时目录缓存中间结果以生成分隔输出。如果未设置,则分隔处理器在输出文本之前在内存中构造命名空间。
    -h, - help 显示工具使用情况和帮助信息并退出。

    Hadoop离线图像查看器,用于Hadoop 2.4或更高版本中的图像文件。有关详细信息,请参阅“ 脱机图像查看器

    oiv_legacy

    用法:hdfs oiv_legacy [OPTIONS] -i INPUT_FILE -o OUTPUT_FILE

    命令选项 描述
    -i, - inputFile input file 指定要处理的输入fsimage文件。
    -o, - outputFile output file 如果指定的输出处理器生成一个,请指定输出文件名。如果指定的文件已存在,则会以静默方式覆盖该文件。

    可选的命令行参数:

    命令选项 描述
    -p|--processorprocessor 指定要对图像文件应用的图像处理器。有效选项包括Ls(默认),XML,分隔符,缩进,FileDistribution和NameDistribution。
    -maxSize size 指定要以字节为单位分析的文件大小的范围[0,maxSize](默认为128GB)。此选项与FileDistribution处理器一起使用。
    -step size 以字节为单位指定分发的粒度(默认为2MB)。此选项与FileDistribution处理器一起使用。
    -format 以人类可读的方式而不是多个字节格式化输出结果。(默认为false)。此选项与FileDistribution处理器一起使用。
    -skipBlocks 不要枚举文件中的单个块。这可以节省具有非常大的文件的命名空间上的处理时间和outfile文件空间。Ls处理器读取块以正确确定文件大小并忽略此选项。
    -printToScreen 将处理器的输出管道输出到控制台以及指定的文件。在极大的命名空间上,这可能会使处理时间增加一个数量级。
    -delimiter arg 与分隔处理器一起使用时,将默认选项卡分隔符替换为arg指定的字符串。
    -h | --help 显示工具使用情况和帮助信息并退出。

    适用于旧版Hadoop的Hadoop离线图像查看器。有关详细信息,请参阅oiv_legacy命令

    snapshotDiff

    用法:hdfs snapshotDiff <path> <fromSnapshot> <toSnapshot>

    确定HDFS快照之间的差异。有关更多信息,请参阅HDFS快照文档

    version

    Usage: hdfs version

    打印版本。

     

     

    管理命令

    对hadoop集群的管理员有用的命令。

    balancer

    用法:

    hdfs balancer
              [-policy <policy>]
              [-threshold <threshold>]
              [-exclude [-f <hosts-file> | <comma-separated list of hosts>]]
              [-include [-f <hosts-file> | <comma-separated list of hosts>]]
              [-source [-f <hosts-file> | <comma-separated list of hosts>]]
              [-blockpools <comma-separated list of blockpool ids>]
              [-idleiterations <idleiterations>]
              [-runDuringUpgrade]
    命令选项 描述
    -policy <policy> datanode(默认值):如果每个datanode均衡,则群集是平衡的。
    blockpool:如果每个datanode中的每个块池都是平衡的,则群集是平衡的。
    -threshold <threshold> 磁盘容量的百分比。这会覆盖默认阈值。
    -exclude -f <hosts-file> | <comma-separated list of hosts> 排除指定的数据节点被平衡器平衡。
    -include -f <hosts-file> | <comma-separated list of hosts> 仅包括由平衡器平衡的指定数据节点。
    -source -f <hosts-file> | <comma-separated list of hosts> 仅选择指定的数据节点作为源节点。
    -blockpools <comma-separated list of blockpool ids> 平衡器仅在此列表中包含的块池上运行。
    -idleiterations <iterations> 退出前的最大空闲迭代次数。这会覆盖默认的空闲状态(5)。
    -runDuringUpgrade 是否在正在进行的HDFS升级期间运行平衡器。这通常是不希望的,因为它不会影响过度使用的机器上的已用空间。
    -h | - help 显示工具使用情况和帮助信息并退出。

    运行集群平衡实用程序。管理员只需按Ctrl-C即可停止重新平衡过程。有关详细信息,请参阅Balancer

    请注意,blockpool策略比datanode策略更严格。

    除了上述命令选项外,还引入了一个固定功能,从2.7.0开始,以防止某些副本被平衡器/移动器移动。默认情况下,此固定功能处于禁用状态,可通过配置属性“dfs.datanode.block-pinning.enabled”启用。启用时,此功能仅影响写入create()调用中指定的favored节点的块。对于HBase regionserver等应用程序,我们希望维护数据局部性时,此功能非常有用。

    cacheadmin

    用法:

    hdfs cacheadmin [-addDirective -path <path> -pool <pool-name> [-force] [-replication <replication>] [-ttl <time-to-live>]]
    hdfs cacheadmin [-modifyDirective -id <id> [-path <path>] [-force] [-replication <replication>] [-pool <pool-name>] [-ttl <time-to-live>]]
    hdfs cacheadmin [-listDirectives [-stats] [-path <path>] [-pool <pool>] [-id <id>]]
    hdfs cacheadmin [-removeDirective <id>]
    hdfs cacheadmin [-removeDirectives -path <path>]
    hdfs cacheadmin [-addPool <name> [-owner <owner>] [-group <group>] [-mode <mode>] [-limit <limit>] [-maxTtl <maxTtl>]]
    hdfs cacheadmin [-modifyPool <name> [-owner <owner>] [-group <group>] [-mode <mode>] [-limit <limit>] [-maxTtl <maxTtl>]]
    hdfs cacheadmin [-removePool <name>]
    hdfs cacheadmin [-listPools [-stats] [<name>]]
    hdfs cacheadmin [-help <command-name>]

    有关更多信息,请参阅HDFS缓存管理文档

    crypto

    用法:

      hdfs crypto -createZone -keyName <keyName> -path <path>
      hdfs crypto -listZones
      hdfs crypto -provisionTrash -path <path>
      hdfs crypto -help <command-name>

    有关更多信息,请参阅HDFS透明加密文档

    数据节点

    用法:hdfs datanode [-regular | -rollback | -rollingupgrade rollback]

    命令选项 描述
    -regular 正常的datanode启动(默认)。
    -rollback 将datanode回滚到以前的版本。这应该在停止datanode并分发旧的hadoop版本后使用。
    -rollingupgrade rollback 回滚滚动升级操作。

    运行HDFS datanode。

    dfsadmin

    用法:

        hdfs dfsadmin [-report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance]]
        hdfs dfsadmin [-safemode enter | leave | get | wait | forceExit]
        hdfs dfsadmin [-saveNamespace [-beforeShutdown]]
        hdfs dfsadmin [-rollEdits]
        hdfs dfsadmin [-restoreFailedStorage true |false |check]
        hdfs dfsadmin [-refreshNodes]
        hdfs dfsadmin [-setQuota <quota> <dirname>...<dirname>]
        hdfs dfsadmin [-clrQuota <dirname>...<dirname>]
        hdfs dfsadmin [-setSpaceQuota <quota> [-storageType <storagetype>] <dirname>...<dirname>]
        hdfs dfsadmin [-clrSpaceQuota [-storageType <storagetype>] <dirname>...<dirname>]
        hdfs dfsadmin [-finalizeUpgrade]
        hdfs dfsadmin [-rollingUpgrade [<query> |<prepare> |<finalize>]]
        hdfs dfsadmin [-upgrade [query | finalize]
        hdfs dfsadmin [-refreshServiceAcl]
        hdfs dfsadmin [-refreshUserToGroupsMappings]
        hdfs dfsadmin [-refreshSuperUserGroupsConfiguration]
        hdfs dfsadmin [-refreshCallQueue]
        hdfs dfsadmin [-refresh <host:ipc_port> <key> [arg1..argn]]
        hdfs dfsadmin [-reconfig <namenode|datanode> <host:ipc_port> <start |status |properties>]
        hdfs dfsadmin [-printTopology]
        hdfs dfsadmin [-refreshNamenodes datanodehost:port]
        hdfs dfsadmin [-getVolumeReport datanodehost:port]
        hdfs dfsadmin [-deleteBlockPool datanode-host:port blockpoolId [force]]
        hdfs dfsadmin [-setBalancerBandwidth <bandwidth in bytes per second>]
        hdfs dfsadmin [-getBalancerBandwidth <datanode_host:ipc_port>]
        hdfs dfsadmin [-fetchImage <local directory>]
        hdfs dfsadmin [-allowSnapshot <snapshotDir>]
        hdfs dfsadmin [-disallowSnapshot <snapshotDir>]
        hdfs dfsadmin [-shutdownDatanode <datanode_host:ipc_port> [upgrade]]
        hdfs dfsadmin [-evictWriters <datanode_host:ipc_port>]
        hdfs dfsadmin [-getDatanodeInfo <datanode_host:ipc_port>]
        hdfs dfsadmin [-metasave filename]
        hdfs dfsadmin [-triggerBlockReport [-incremental] <datanode_host:ipc_port>]
        hdfs dfsadmin [-listOpenFiles [-blockingDecommission] [-path <path>]]
        hdfs dfsadmin [-help [cmd]]
    命令选项 描述
    -report [-live] [-dead] [-decommissioning] [-enteringmaintenance] [-inmaintenance] 报告基本文件系统信息和统计信息,dfs用法可以与“du”用法不同,因为它测量所有DN上的复制,校验和,快照等使用的原始空间。可选标志可用于过滤显示的DataNode列表。
    -safemode enter|leave|get|wait|forceExit 安全模式维护命令。安全模式是一种Namenode状态,其中
    1.不接受对名称空间的更改(只读)
    2.不复制或删除块。
    在Namenode启动时自动进入安全模式,并在配置的最小块百分比满足最小复制条件时自动离开安全模式。如果Namenode检测到任何异常,那么它将以安全模式停留,直到该问题得到解决。如果该异常是故意操作的结果,则管理员可以使用-safemode forceExit退出安全模式。可能需要forceExit的情况是
    1. Namenode元数据不一致。如果Namenode检测到元数据已在带外修改并可能导致数据丢失,则Namenode将进入forceExit状态。此时,用户可以使用正确的元数据文件或forceExit重新启动Namenode(如果数据丢失可接受)。
    2.回滚导致元数据被替换,很少可以在Namenode中触发安全模式forceExit状态。在这种情况下,您可以通过发出-safemode forceExit来继续。
    安全模式也可以手动输入,但之后也只能手动关闭。
    -saveNamespace [-beforeShutdown] 将当前名称空间保存到存储目录并重置编辑日志。需要安全模式。如果给出“beforeShutdown”选项,则当且仅当在时间窗口期间没有完成检查点(可配置数量的检查点周期)时,NameNode才会执行检查点。这通常在关闭NameNode之前使用,以防止潜在的fsimage / editlog损坏。
    -rollEdits 在活动NameNode上滚动编辑日志。
    -restoreFailedStorage true | false | check 此选项将打开/关闭自动尝试以还原失败的存储副本。如果故障存储再次可用,系统将尝试在检查点期间恢复编辑和/或fsimage。'check'选项将返回当前设置。
    -refreshNodes 重新读取主机并排除文件以更新允许连接到Namenode的数据节点集以及应该退役或重新调试的数据节点集。
    -setQuota <quota> <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南
    -clrQuota <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南
    -setSpaceQuota <quota> [-storageType <storagetype>] <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南
    -clrSpaceQuota [ -storageType<storagetype>] <dirname> ... <dirname> 有关详细信息,请参阅HDFS配额指南
    -finalizeUpgrade 完成HDFS的升级。Datanodes删除其先前版本的工作目录,然后Namenode执行相同操作。这样就完成了升级过程。
    -rollingUpgrade [<query> | <prepare> | <finalize>] 有关详细信息,请参阅滚动升级文档
    -upgrade query | finalize 查询当前升级状态。
    完成HDFS的升级(相当于-finalizeUpgrade)。
    -refreshServiceAcl 重新加载服务级别授权策略文件。
    -refreshUserToGroupsMappings 刷新用户到组的映射。
    -refreshSuperUserGroupsConfiguration 刷新超级用户代理组映射
    -refreshCallQueue 从config重新加载呼叫队列。
    -refresh <host:ipc_port> <key> [arg1..argn] 触发<host:ipc_port>上<key>指定的资源的运行时刷新。之后的所有其他args被发送到主机。
    -reconfig <datanode | namenode> <host:ipc_port> <start | status | properties> 开始重新配置或获取正在进行的重新配置的状态,或获取可重新配置属性的列表。第二个参数指定节点类型。
    -printTopology 根据Namenode的报告打印机架及其节点的树
    -refreshNamenodes datanodehost:port 对于给定的datanode,重新加载配置文件,停止为已删除的块池提供服务并开始提供新的块池。
    -getVolumeReport datanodehost:port 对于给定的datanode,获取卷报告。
    -deleteBlockPool datanode-host:port blockpoolId [force] 如果强制传递,则删除给定datanode上给定blockpool id的块池目录及其内容,否则仅当目录为空时才删除该目录。如果datanode仍在为块池提供服务,则该命令将失败。请参阅refreshNamenodes以关闭datanode上的块池服务。
    -setBalancerBandwidth <bandwidth in bytes per second> 在HDFS块平衡期间更改每个数据节点使用的网络带宽。<bandwidth>是每个datanode将使用的每秒最大字节数。此值将覆盖dfs.datanode.balance.bandwidthPerSec参数。注意:新值在DataNode上不是持久的。
    -getBalancerBandwidth <datanode_host:ipc_port> 获取给定datanode的网络带宽(以每秒字节数为单位)。这是在HDFS块平衡期间datanode使用的最大网络带宽。
    -fetchImage <local directory> 从NameNode下载最新的fsimage并将其保存在指定的本地目录中。
    -allowSnapshot <snapshotDir> 允许创建目录的快照。如果操作成功完成,则该目录将变为快照。有关更多信息,请参阅HDFS快照文档
    -disallowSnapshot <snapshotDir> 不允许创建目录的快照。在禁止快照之前,必须删除目录的所有快照。有关更多信息,请参阅HDFS快照文档
    -shutdownDatanode <datanode_host:ipc_port> [upgrade] 提交给定datanode的关闭请求。有关详细信息,请参阅滚动升级文档
    -evictWriters <datanode_host:ipc_port> 使datanode驱逐所有正在编写块的客户端。如果由于编写速度慢而停止停用,这将非常有用。
    -getDatanodeInfo <datanode_host:ipc_port> 获取有关给定datanode的信息。有关详细信息,请参阅滚动升级文档
    -metasave filename 保存的Namenode的主要数据结构,文件名由hadoop.log.dir属性指定的目录。如果存在,则覆盖filenamefilename将包含以下每一行的一行
    1.使用Namenode心跳的数据节点
    2.等待复制的
    块3.当前正在复制的
    块4.等待删除的块
    -triggerBlockReport [-incremental]<datanode_host:ipc_port> 触发给定datanode的块报告。如果指定'incremental',则不然,它将是一个完整的块报告。
    -listOpenFiles [ -blockingDecommission ] [-path <path>] 列出NameNode当前管理的所有打开文件以及访问它们的客户端名称和客户端计算机。打开的文件列表将按给定的类型和路径进行过滤。
    -help [cmd] 显示给定命令或所有命令的帮助(如果未指定)。

    运行HDFS dfsadmin客户端。

    dfsrouter

    用法:hdfs dfsrouter

    运行DFS路由器。见路由器的更多信息。

    dfsrouteradmin

    用法:

        hdfs dfsrouteradmin
          [-add <source> <nameservice1, nameservice2, ...> <destination> [-readonly] [-order HASH|LOCAL|RANDOM|HASH_ALL] -owner <owner> -group <group> -mode <mode>]
          [-update <source> <nameservice1, nameservice2, ...> <destination> [-readonly] [-order HASH|LOCAL|RANDOM|HASH_ALL] -owner <owner> -group <group> -mode <mode>]
          [-rm <source>]
          [-ls <path>]
          [-setQuota <path> -nsQuota <nsQuota> -ssQuota <quota in bytes or quota size string>]
          [-clrQuota <path>]
          [-safemode enter | leave | get]
          [-nameservice disable | enable <nameservice>]
          [-getDisabledNameservices]
    命令选项 描述
    -add  source nameservices destination 添加装入表条目或更新(如果存在)。
    -update  source nameservices destination 更新装入表条目或创建一个条目(如果不存在)。
    -rm source 删除指定路径的安装点。
    -ls path 列出指定路径下的挂载点。
    -setQuota path -nsQuota nsQuota -ssQuota ssQuota 设置指定路径的配额。有关配额详细信息,请参阅HDFS配额指南
    -clrQuota path 清除给定挂载点的配额。有关配额详细信息,请参阅HDFS配额指南
    -safemode enter leave get 手动设置路由器进入或离开安全模式。选项get将用于验证路由器是否处于安全模式状态。
    -nameservice disable enable nameservice 禁用/启用联盟中的名称服务。如果禁用,请求将不会转到该名称服务。
    -getDisabledNameservices 获取联合中禁用的名称服务。

    用于管理基于路由器的联合的命令。有关详细信息,请参阅挂载表管理

    diskbalancer

    用法:

       hdfs diskbalancer
         [-plan <datanode> -fs <namenodeURI>]
         [-execute <planfile>]
         [-query <datanode>]
         [-cancel <planfile>]
         [-cancel <planID> -node <datanode>]
         [-report -node <file://> | [<DataNodeID|IP|Hostname>,...]]
         [-report -node -top <topnum>]
    命令选项 描述
    -plan 创建一个失衡者计划
    -execute 在datanode上执行给定的计划
    -query 从datanode获取当前的diskbalancer状态
    -cancle 取消正在运行的计划
    -report 报告来自datanode的卷信息

    运行diskbalancer CLI。有关此命令的更多信息,请参阅HDFS Diskbalancer

    ec

    用法:

    hdfs ec [generic options]
         [-setPolicy -policy <policyName> -path <path>]
         [-getPolicy -path <path>]
         [-unsetPolicy -path <path>]
         [-listPolicies]
         [-addPolicies -policyFile <file>]
         [-listCodecs]
         [-enablePolicy -policy <policyName>]
         [-disablePolicy -policy <policyName>]
         [-help [cmd ...]]
    命令选项 描述
    -setPolicy 将指定的ErasureCoding策略设置为目录
    -getPolicy 获取有关指定路径的ErasureCoding策略信息
    -unsetPolicy 取消先前对目录上的“setPolicy”调用设置的ErasureCoding策略
    -listPolicies 列出所有支持的ErasureCoding策略
    -addPolicies 添加擦除编码策略列表
    -listCodecs 获取系统中支持的擦除编码编解码器和编码器列表
    -enablePolicy 在系统中启用ErasureCoding策略
    -disablePolicy 在系统中禁用ErasureCoding策略

    运行ErasureCoding CLI。有关此命令的更多信息,请参阅HDFS ErasureCoding

    haadmin

    用法:

        hdfs haadmin -transitionToActive <serviceId> [--forceactive]
        hdfs haadmin -transitionToStandby <serviceId>
        hdfs haadmin -failover [--forcefence] [--forceactive] <serviceId> <serviceId>
        hdfs haadmin -getServiceState <serviceId>
        hdfs haadmin -getAllServiceState
        hdfs haadmin -checkHealth <serviceId>
        hdfs haadmin -help <command>
    命令选项 描述
    -checkHealth 检查给定NameNode的运行状况
    -failover 在两个NameNode之间启动故障转移
    -getServiceState 确定给定的NameNode是Active还是Standby
    -getAllServiceState 返回所有NameNode的状态  
    -transitionToActive 将给定NameNode的状态转换为Active(警告:不执行防护)
    -transitionToStandby 将给定NameNode的状态转换为Standby(警告:没有完成防护)
    -help [cmd] 显示给定命令或所有命令的帮助(如果未指定)。

    有关此命令的更多信息,请参阅带有NFS的HDFS HA带有QJM的HDFS HA

    journalnode

    用法:hdfs journalnode

    此comamnd启动一个日志节点,用于与QJM一起使用HDFS HA

    mover

    Usage: hdfs mover [-p <files/dirs> | -f <local file name>]

    命令选项 描述
    -f <local file> 指定包含要迁移的HDFS文件/目录列表的本地文件。
    -p <files/dirs> 指定要迁移的HDFS文件/目录的空格分隔列表。

    运行数据迁移实用程序。有关详细信息,请参阅Mover

    请注意,当省略-p和-f选项时,默认路径是根目录。

    此外,从2.7.0开始引入固定功能,以防止某些复制品被平衡器/移动器移动。默认情况下,此固定功能处于禁用状态,可通过配置属性“dfs.datanode.block-pinning.enabled”启用。启用时,此功能仅影响写入create()调用中指定的favored节点的块。对于HBase regionserver等应用程序,我们希望维护数据局部性时,此功能非常有用。

    namenode

    用法:

        hdfs namenode [-backup] |
              [-checkpoint] |
              [-format [-clusterid cid ] [-force] [-nonInteractive] ] |
              [-upgrade [-clusterid cid] [-renameReserved<k-v pairs>] ] |
              [-upgradeOnly [-clusterid cid] [-renameReserved<k-v pairs>] ] |
              [-rollback] |
              [-rollingUpgrade <rollback |started> ] |
              [-importCheckpoint] |
              [-initializeSharedEdits] |
              [-bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] ] |
              [-recover [-force] ] |
              [-metadataVersion ]
    
    
    命令选项 描述
    -backup 启动备份节点。
    -checkpoint 启动检查点节点。
    -format [-clusterid cid] 格式化指定的NameNode。它启动NameNode,对其进行格式化然后将其关闭。如果name dir已存在且是否为集群禁用了重新格式化,则将抛出NameNodeFormatException。
    -upgrade [-clusterid cid] [ -renameReserved <kv pairs>] 在分发新的Hadoop版本后,应该使用升级选项启动Namenode。
    -upgradeOnly [-clusterid cid] [ -renameReserved <kv pairs>] 升级指定的NameNode然后关闭它。
    -rollback 将NameNode回滚到以前的版本。应在停止群集并分发旧Hadoop版本后使用此方法。
    -rollingUpgrade <rollback | started> 有关详细信息,请参阅滚动升级文档
    -importCheckpoint 从检查点目录加载图像并将其保存到当前目录中。从属性dfs.namenode.checkpoint.dir读取检查点目录
    -initializeSharedEdits 格式化新的共享编辑目录并复制足够的编辑日志段,以便备用NameNode可以启动。
    -bootstrapStandby [-force] [-nonInteractive] [-skipSharedEditsCheck] 允许通过从活动NameNode复制最新的命名空间快照来引导备用NameNode的存储目录。首次配置HA群集时使用此选项。-force或-nonInteractive选项与namenode -format命令中描述的含义相同。-skipSharedEditsCheck选项跳过编辑检查,确保我们在共享目录中已经有足够的编辑从活动的最后一个检查点启动。
    -recover [-force] 在损坏的文件系统上恢复丢失的元数据。有关详细信息,请参阅HDFS用户指南
    -metadataVersion 验证配置的目录是否存在,然后打印软件和映像的元数据版本。

    运行namenode。有关升级和回滚的更多信息,请参阅升级回滚

    nfs3

    用法:hdfs nfs3

    此comamnd启动NFS3网关以与HDFS NFS3服务一起使用

    端口映射

    用法:hdfs portmap

    此comamnd启动RPC 端口映射以与HDFS NFS3服务一起使用

    secondarynamenode

    用法:hdfs secondarynamenode [-checkpoint [force]] | [-format] | [-geteditsize]

    命令选项 描述
    -checkpoint [force] 如果EditLog size> = fs.checkpoint.size,则检查SecondaryNameNode。如果使用force,则检查点与EditLog大小无关。
    -format 启动期间格式化本地存储。
    -geteditsize 打印NameNode上未取消选中的事务的数量。

    运行HDFS辅助名称节点。有关详细信息,请参阅Secondary Namenode

    storagepolicies

    用法:

      hdfs storagepolicies
          [-listPolicies]
          [-setStoragePolicy -path <path> -policy <policy>]
          [-getStoragePolicy -path <path>]
          [-unsetStoragePolicy -path <path>]
          [-satisfyStoragePolicy -path <path>]
          [-isSatisfierRunning]
          [-help <command-name>]

    列出所有   all/Gets/sets/unsets   存储策略。有关更多信息,请参阅HDFS存储策略文档

    zkfc

    用法:hdfs zkfc [-formatZK [-force] [-nonInteractive]]

    命令选项 描述
    -formatZK 格式化Zookeeper实例。-force:如果znode存在,则格式化znode。-nonInteractive:如果znode存在,则格式化znode中止,除非指定了-force选项。

    -h

    显示帮助

    此comamnd启动Zookeeper故障转移控制器进程,以便与带有QJM的HDFS HA一起使用

    调试命令

    帮助管理员调试HDFS问题的有用命令。这些命令仅适用于高级用户。

    verifyMeta

    用法:hdfs debug verifyMeta -meta <metadata-file> [-block <block-file>]

    命令选项 描述
    -block block-file 可选参数,用于指定数据节点的本地文件系统上的块文件的绝对路径。
    -meta metadata-file 数据节点的本地文件系统上的元数据文件的绝对路径。

    验证HDFS元数据和块文件。如果指定了块文件,我们将验证元数据文件中的校验和是否与块文件匹配。

    computeMeta

    用法:hdfs debug computeMeta -block <block-file> -out <output-metadata-file>

    命令选项 描述
    -block block-file 数据节点的本地文件系统上的块文件的绝对路径。
    -out output-metadata-file 输出元数据文件的绝对路径,用于存储块文件的校验和计算结果。

    从块文件计算HDFS元数据。如果指定了块文件,我们将从块文件计算校验和,并将其保存到指定的输出元数据文件中。

    注意:使用风险自负!如果块文件损坏并且您覆盖了它的元文件,它将在HDFS中显示为“良好”,但您无法读取数据。仅用作最后一个度量,当您100%确定块文件是好的时。

    recoverLease

    用法:hdfs debug recoverLease -path <path> [-retries <num-retries>]

    命令选项 描述
    [ -path path ] 要恢复租约的HDFS路径。
    [ -retries num-retries ] 客户端重试调用recoverLease的次数。默认重试次数为1。

    恢复指定路径上的租约。该路径必须驻留在HDFS文件系统上。默认重试次数为1。

     

     

     

     

    原文链接: https://hadoop.apache.org/docs/r3.2.0/

    展开全文
  • hdfs命令大全

    2018-09-28 19:29:00
    hdfs常用命令:第一部分:hdfs文件系统命令第一类:文件路径增删改查系列:hdfs dfs -mkdir dir 创建文件夹hdfs dfs -rmr dir 删除文件夹dirhdfs dfs -ls 查看目录文件信息hdfs dfs -lsr 递归查看文件目录信息hdfs ...



    hdfs常用命令:

    第一部分:hdfs文件系统命令

    第一类:文件路径增删改查系列:

    hdfs dfs -mkdir dir  创建文件夹

    hdfs dfs -rmr dir  删除文件夹dir

    hdfs dfs -ls  查看目录文件信息

    hdfs dfs -lsr  递归查看文件目录信息

    hdfs dfs -stat path 返回指定路径的信息

     

    第二类:空间大小查看系列命令:

    hdfs dfs -du -h dir 按照适合阅读的形式人性化显示文件大小

    hdfs dfs -dus uri  递归显示目标文件的大小

    hdfs dfs -du path/file显示目标文件file的大小

     

    第三类:权限管理类:

    hdfs dfs -chgrp  group path  改变文件所属组

    hdfs dfs -chgrp -R /dir  递归更改dir目录的所属组

    hdfs dfs -chmod [-R] 权限 -path  改变文件的权限

    hdfs dfs -chown owner[-group] /dir 改变文件的所有者

    hdfs dfs -chown -R  owner[-group] /dir  递归更改dir目录的所属用户

     

    第四类:文件操作(上传下载复制)系列:

    hdfs dfs -touchz a.txt 创建长度为0的空文件a.txt

    hdfs dfs -rm file   删除文件file

    hdfs dfs -put file dir  向dir文件上传file文件

    hdfs dfs -put filea dir/fileb 向dir上传文件filea并且把filea改名为fileb

    hdfs dfs -get file dir  下载file到本地文件夹

    hdfs dfs -getmerge hdfs://Master:9000/data/SogouResult.txt CombinedResult  把hdfs里面的多个文件合并成一个文件,合并后文件位于本地系统

    hdfs dfs -cat file   查看文件file

    hdfs fs -text /dir/a.txt  如果文件是文本格式,相当于cat,如果文件是压缩格式,则会先解压,再查看

    hdfs fs -tail /dir/a.txt查看dir目录下面a.txt文件的最后1000字节

    hdfs dfs -copyFromLocal localsrc path 从本地复制文件

    hdfs dfs -copyToLocal /hdfs/a.txt /local/a.txt  从hdfs拷贝到本地

    hdfs dfs -copyFromLocal /dir/source /dir/target  把文件从原路径拷贝到目标路径

    hdfs dfs -mv /path/a.txt /path/b.txt 把文件从a目录移动到b目录,可用于回收站恢复文件

     

    第五类:判断系列:

    hdfs fs -test -e /dir/a.txt 判断文件是否存在,正0负1

    hdfs fs -test -d /dir  判断dir是否为目录,正0负1

    hdfs fs -test -z /dir/a.txt  判断文件是否为空,正0负1

     

    第六类:系统功能管理类:

    hdfs dfs -expunge 清空回收站

    hdfs dfsadmin -safemode enter 进入安全模式

    hdfs dfsadmin -sfaemode leave 离开安全模式

    hdfs dfsadmin -decommission datanodename 关闭某个datanode节点

    hdfs dfsadmin -finalizeUpgrade 终结升级操作

    hdfs dfsadmin -upgradeProcess status 查看升级操作状态

    hdfs version 查看hdfs版本

    hdfs daemonlog -getlevel <host:port> <name>  打印运行在<host:port>的守护进程的日志级别

    hdfs daemonlog -setlevel <host:port> <name> <level>  设置运行在<host:port>的守护进程的日志级别

    hdfs dfs -setrep -w 副本数 -R path 设置文件的副本数

     

    第二部分:运维命令

    start-dfs.sh   启动namenode,datanode,启动文件系统

    stop-dfs.sh   关闭文件系统

    start-yarn.sh  启动resourcemanager,nodemanager

    stop-yarn.sh  关闭resourcemanager,nodemanager

    start-all.sh    启动hdfs,yarn

    stop-all.sh    关闭hdfs,yarn

    hdfs-daemon.sh start datanode  单独启动datanode

    start-balancer.sh -t 10% 启动负载均衡,尽量不要在namenode节点使用

    hdfs namenode -format  格式化文件系统

    hdfs namenode -upgrade  分发新的hdfs版本之后,namenode应以upgrade选项启动

    hdfs namenode -rollback  将namenode回滚到前一版本,这个选项要在停止集群,分发老的hdfs版本之后执行

    hdfs namenode -finalize  finalize会删除文件系统的前一状态。最近的升级会被持久化,rollback选项将再不可用,升级终结操作之后,它会停掉namenode,分发老的hdfs版本后使用

    hdfs namenode importCheckpoint 从检查点目录装载镜像并保存到当前检查点目录,检查点目录由fs.checkpoint.dir指定

     

    第三部分:mapreduce命令

    hdfs jar file.jar 执行jar包程序

    hdfs job -kill job_201005310937_0053  杀死正在执行的jar包程序

    hdfs job -submit <job-file>  提交作业

    hdfs job -status <job-id>   打印map和reduce完成百分比和所有计数器。

    hdfs job -counter <job-id> <group-name> <counter-name>  打印计数器的值。

    hdfs job -kill <job-id>  杀死指定作业。

    hdfs job -events <job-id> <from-event-#> <#-of-events> 打印给定范围内jobtracker接收到的事件细节。

    hdfs job -history [all] <jobOutputDir>     

    hdfs job -history <jobOutputDir> 打印作业的细节、失败及被杀死原因的细节。更多的关于一个作业的细节比如成功的任务,做过的任务尝试等信息可以通过指定[all]选项查看。

    hdfs job -list [all]  显示所有作业。-list只显示将要完成的作业。

    hdfs job -kill -task <task-id>   杀死任务。被杀死的任务不会不利于失败尝试。

    hdfs job -fail -task <task-id>   使任务失败。被失败的任务会对失败尝试不利。

     

    第四部分:hdfs系统检查工具fsck

    hdfs fsck <path> -move    移动受损文件到/lost+found

    hdfs fsck <path> -delete   删除受损文件。

    hdfs fsck <path> -openforwrite   打印出写打开的文件。

    hdfs fsck <path> -files     打印出正被检查的文件。

    hdfs fsck <path> -blocks     打印出块信息报告。

    hdfs fsck <path> -locations     打印出每个块的位置信息。

    hdfs fsck <path> -racks    打印出data-node的网络拓扑结构。

     

    第五部分:运行pipies作业

    hdfs pipes -conf <path> 作业的配置

    hdfs pipes -jobconf <key=value>, <key=value>, ...  增加/覆盖作业的配置项

    hdfs pipes -input <path>  输入目录

    hdfs pipes -output <path> 输出目录

    hdfs pipes -jar <jar file> Jar文件名

    hdfs pipes -inputformat <class> InputFormat类

    hdfs pipes -map <class> Java Map类

    hdfs pipes -partitioner <class> Java Partitioner

    hdfs pipes -reduce <class> Java Reduce类

    hdfs pipes -writer <class> Java RecordWriter

    hdfs pipes -program <executable> 可执行程序的URI

    hdfs pipes -reduces <num> reduce个数

    转载于:https://www.cnblogs.com/OnTheWay-0518/p/9720443.html

    展开全文
  • HDFS命令以级MapReduce

    2020-10-29 18:21:10
    文章目录1、HDFS命令2、HDFS读写流程2.1 HDFS写流程2.2 HDFS读流程2.3 HDFS优点2.4 HDFS缺点3、SecondaryNameode4、使用IDEA创建工程5、HDFS-Java API6、分布式计算-MapReduce编程思想7、启动Yarn运行hadoop自带...
  • hdfs命令的使用

    2020-10-22 23:08:46
    ls命令 格式: hdfs dfs -ls 文件路径 作用:显示文件列表 例如:hdfs dfs -ls / lsr命令 格式:hdfs dfs -lsr URI 作用:在整个目录下递归执行ls, 与linux中ls -R类似 例如:hdfs dfs -lsr / (ps:使用此命令会...
  • hdfs命令学习

    2018-03-24 20:51:04
    把一个本地文件上传到hdfs hdfs dfs -put a.txt b.txt a.txt在本地,b.txt是要传到的hdfs路径。 ...从hdfs导出文件到本地 ...hdfs提供了很多shell命令来实现访问文件系统的功能,hadoop自带的shel...
  • Hadoop3.2.0 HDFS命令指南

    千次阅读 2019-02-19 12:06:34
    HDFS命令指南 概览 User Commands classpath dfs envvars fetchdt fsck getconf groups httpfs lsSnapshottableDir jmxget oev oiv oiv_legacy snapshotDiff version ...
  • Hadoop HDFS 命令

    2019-03-28 17:47:43
    主要面对终端操作 启动虚拟机集群,master data1 data2 data3 ..../sbin/stop-all.sh 关闭 将本地文件复制到HDFS上,操作指令: (1)将文件复制到HDFS上的目录 /usr/local/hadoop/bin/hadoop...
  • 1、HDFS的应用场景 适合的应用场景: 存储非常大的文件,需要高吞吐量,对延时没有要求; 采用流式的数据访问方式,一次写入多次读写 需要高容错性 为数据存储提供所需的扩展能力 不适合的应用场景: 低延时的数据...
  • HDFS命令指南-03

    2018-03-20 08:40:19
    1、前言 本文写于2018年02月份,以当前...所有HDFS命令都可以用bin/hdfs脚本调用。不带任何参数运行hdfs脚本将打印所有命令的描述信息。 用法:hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS]...
  • Hadoop之HDFS命令

    千次阅读 2015-08-19 13:46:56
    所有的HDFS命令都调用bin/hdfs脚本文件,如果运行hdfs脚本没有带任何参数的话,则打印所有命令的描述。   使用: hdfs [SHELL_OPTIONS] COMMAND [GENERIC_OPTIONS] [COMMAND_OPTIONS] Hadoop是一个参数解析框架,...
  • HDFS命令和java API

    2019-05-26 16:34:30
    HDFS命令和java API 实验步骤 搭建Hadoop伪分布式模式、或者完全分布式模式 Windows里安装配置JDK+Eclipse+Maven 在Eclipse里新建Maven Project,新建包,新建class 编程上述4个Java程序 虚拟机的namenode...
  • 什么是HDFSHDFS是Hadoop Distributed File System的简写,即分布式文件系统。 NameNode负责管理与维护HDFS目录系统并控制文件的读写 DataNode负责存储数据 对于HDFS的数据存取 用cluster集群架构来存储大数据...
  • HDFS命令和Java API

    2019-05-22 10:50:57
    HDFS命令和Java API 一、安装eclipse 1、官网下载Eclipse安装包eclipse-inst-win64:https://www.eclipse.org/downloads/ 2、运行安装包,选择Eclipse IDE for Java Developers,开始安装。 二、安装Maven 1、Maven...
  • 概念-hdfs命令

    2016-06-30 15:08:00
    命令行里可以执行相应的命令 这些命令就是一些可执行的文件 当在命令行执行命令的时候, 系统会根据环境变量里设置的PATH的值 查询所有的目录去寻找相应的可执行文件 数据采集(flume,storm)数据存储(HDFS)数据...
  • 前言: 本人刚接触linux不久但是就是这不久的接触使我爱上了linux的脚本 linux脚本就几十个基本但是就是这几十个基本命令经过简单的组合后可以 创 ...在学习hdfs的编程实践的同时我们先来回顾一下l
  • HDFS常用命令

    2020-06-04 11:17:01
    HDFS命令 命令 说明 样例 -help 输出这个命令参数手册 hdfs -help -ls 显示目录信息 hdfs dfs -ls / -mkdir 在hdfs上创建目录,-p:创建父目录 hdfs dfs -mkdir /hadoop/local ...
  • HDFS Shell命令

    2019-09-21 10:39:03
    HDFSShell命令 ps: 无论是 hadoop fs 还是 hdfs dfs 命令效果都是一样   都是操作HDFS文件系统     1.put 从本地文系统中 复制文件到 HDFS系统中(上传文件) hdfs dfs -put 本地文件路径(操作系统...
  • Hadoop-安装 && hdfs命令

    2019-02-23 15:06:55
    vm中安装Centos7,secureCTR,WinSCP,安装后使用完全克隆方式,产生三台Centos...(在克隆玩几台机子后,远程连接的时候总是会出现这样的问题,在机子上ifconfig后int addr总是会消失,在命令断执行命令 service ne...
  • 安装完 hadoop,执行 hdfs dfs -ls 命令时,报警告如下: 2017-07-04 16:32:57,664 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where ...
  • hdfs常用命令

    2019-12-31 17:07:01
    第一部分:hdfs文件系统命令第一类:文件路径增删改查系列: hdfs dfs -mkdir dir 创建文件夹 hdfs dfs -rmr dir 删除文件夹dir hdfs dfs -ls 查看目录文件信息 hdfs dfs -lsr 递归查看文件目录信息 hdfs dfs -stat ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,093
精华内容 13,237
关键字:

关闭hdfs的命令