• HDFS之一:hdfs命令行操作


    1 Hadoop- Shell命令

    HDFS是存取数据的分布式文件系统,那么对HDFS的操作,就是文件系统的基本操作,比如文件的创建、修改、删除、修改权限等,文件夹的创建、删除、重命名等。对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等。

    1.1 Shell命令格式

    调用文件系统(FS)Shell命令应使用bin/hadoop fs <args>的形式。所有的的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录比如/parent/child可以表示成hdfs://namenode:namenodeport/parent/child,或者更简单的/parent/child(假设你配置文件中的默认值是namenode:namenodeport)。大多数FS Shell命令的行为和对应的Unix Shell命令类似,不同之处会在下面介绍各命令使用详情时指出。出错信息会输出到stderr,其他信息输出到stdout

    新建文件夹:

    例如:在HDFS的/tmp/目录下新建文件夹omcs

    hadoop fs -mkdir /tmp/omcs 

    列出HDFS的某目录:

    例如:列出HDFS的/tmp/omcs/目录下的所有内容
    hadoop fs -ls /tmp/omcs

    [sflog@cnsz03pl0161:/home/sflog]$hadoop fs -ls /tmp/omcs
    Found 2 items
    drwxr-xr-x   - sflog hadoop          0 2017-02-28 19:32 /tmp/omcs/0227
    -rw-r--r--   3 sflog hadoop       4573 2017-02-28 19:34 /tmp/omcs/0228
    [sflog@cnsz03pl0161:/home/sflog]$

    注意,hadoop fs -ls 没有接路径的话就会报错,如果有默认路径/user/root root指当前用户就不会报错了

    完整写法:hadoop fs -ls hdfs://主机名:端口号

    duanxz@ubuntu:~$ hadoop fs -ls hdfs://localhost:9000/tmp

    同样可以在http://192.168.159.129:50070/explorer.html中查看

    上传文件:

    hadoop fs -put linux文件路径(也是要上传文件的路径) 空格 hadoop的hdfs的路径
    例如,把linux下当前目录下t.txt文件上传的hadoop的hdfs的/tmp/omcs/0227目录下

    hadoop fs -put t.txt /tmp/omcs/0227

    在上传文件时注意:
    当你上传文件到hadoop的hdfs文件目录不存在的时候,hdfs会将你上传的文件名改为该文件夹的名称,如果hdfs文件系统中已经存在对应的文件时会提示,需要修改下文件名再上传。
    例如:hadoop fs -put t.txt /tmp/omcs/0228,会将t.txt文件保存为0228。

    [sflog@cnsz03pl0161:/home/sflog]$hadoop fs -put t.txt /tmp/omcs/0227
    put: `/tmp/omcs/0227/t.txt': File exists
    [sflog@cnsz03pl0161:/home/sflog]$

    下载文件:

    下载操作就是把-put 换成-get,源文件路径,目的地路径,此时原文件为hdfs了,目的地是linux了,语法与-put一样,只是原文和目的地互换了。

    例如:[sflog@cnsz03pl0161:/home/sflog]$hadoop fs -get /tmp/omcs/0227/t.txt /home/sflog/dxz/t.txt

    查看HDFS上的文件内容:
    例如:查看刚刚上传到0228的文件内容:
    hadoop fs -cat /tmp/omcs/0228

    查看文件内容1:

    例如:hadoop fs -text /tmp/omcs/0228

    查看文件内容2:

    例如:hadoop fs -cat /tmp/omcs/0227

    duanxz@ubuntu:~$ hadoop fs -cat /tmp/omcs/0227
    02280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228022802280228
    duanxz@ubuntu:~$

    删除文件

    hadoop fs -rm /tmp/omcs/0228

     此语句的意思是删除hdfs的根目录下的0228文件


    删除文件夹

    hadoop fs -rmr /tmp/omcs/0226  此语句的意思是删除hdfs的0226目录及目录下的文件。

    [sflog@cnsz03pl0161:/home/sflog/dxz]$hadoop fs -mkdir /tmp/omcs/0226
    [sflog@cnsz03pl0161:/home/sflog/dxz]$hadoop fs -rm /tmp/omcs/0228
    17/02/28 19:52:31 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
    Deleted /tmp/omcs/0228
    [sflog@cnsz03pl0161:/home/sflog/dxz]$hadoop fs -rmr /tmp/omcs/0226
    rmr: DEPRECATED: Please use 'rm -r' instead.
    17/02/28 19:53:08 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
    Deleted /tmp/omcs/0226
    [sflog@cnsz03pl0161:/home/sflog/dxz]$hadoop fs -ls /tmp/omcs
    Found 1 items
    drwxr-xr-x   - sflog hadoop          0 2017-02-28 19:32 /tmp/omcs/0227
    [sflog@cnsz03pl0161:/home/sflog/dxz]$

    hdfs帮助文档

    hadoop fs
    hadoop fs -help 命令

    NameNode
    namenode存放信息在源码的hdfs-default.xml里面有详细的说明,把起拷贝的core-site.XML中
    <name>hadoop.tmp.dir</name>的value/dfs/name/current/fsimage指定namenode存放在linux的路径

    DataNode
    datanode存放信息在源码的hdfs-default.xml里面有详细的说明,把起拷贝的core-site.XML中<name>hadoop.tmp.dir</name>的value/dfs/data/currentssss指定datanode存放在linux的路径

    查看HDFS状态:

    hadoop dfsadmin -report 查看HDFS状态,比如有哪些datanode,每个datanode的情况

    hadoop dfsadmin -safemode leave 离开安全模式

    hadoop dfsadmin -safemode enter 进入安全模式

     
  • 相关阅读:
    【CSS学习】--- 背景
    线程运行诊断
    Mysql变量、存储过程、函数、流程控制
    设计模式之外观模式(门面模式)
    Spring的JdbcTemplate使用教程
    @AspectJ注解的value属性
    自定义Yaml解析器替换Properties文件
    @Import导入自定义选择器
    Spring中Bean命名源码分析
    Java操作fastDFS
  • 原文地址:https://www.cnblogs.com/duanxz/p/2586235.html
Copyright © 2020-2023  润新知