大二暑假第七周总结--开始学习Hadoop基础(六)

  复习关于Hadoop的操作语句以及重点

  Shell版

  1. 跳转目录到Hadoop:
    cd /usr/local/hadoop
  2. 启动Hadoop:

    ./sbin/start-dfs.sh
  3. 注意:Hadoop实际上有三种shell命令方式:hadoop fs/hadoop dfs/hdfs dfs,hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统,hadoop dfs只能适用于HDFS文件系统,hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统(使用命令前需要先启动Hadoop)

  4. 在HDFS上创建/user/hadoop目录:
    ./bin/hdfs dfs –mkdir –p /user/hadoop
    (“-p”表示如果是多级目录,则父目录和子目录一起创建,这里“/user/hadoop”就是一个多级目录,因此必须使用参数“-p”,否则会出错)列出当前目录下的所有目录或者文件:./bin/hdfs dfs –ls .   (“.”表示HDFS中的当前用户目录,也就是“/user/hadoop”目录,等价于./bin/hdfs dfs –ls /user/hadoop,如果要列出HDFS上所有目录:./bin/hdfs dfs –ls ),使用先对路径创建文件夹:./bin/hdfs dfs –mkdir /input(在/user/hadoop目录下创建了input文件夹)
  5. 删除input目录:
    ./bin/hdfs dfs –rm –r /input
    (“-r”参数表示如果删除“/input”目录及其子目录下的所有内容,如果要删除的一个目录包含了子目录,则必须使用“-r”参数,否则会执行失败)
  6. 上传本地文件(/usr/local/hadoop/test.txt)到HDFS的input目录:
    ./bin/hdfs dfs -put /usr/local/hadoop/test.txt input
    可以使用ls查看是否上传到HDFS中

    注意:图片中显示-ls:Unknown command是由于在从电脑复制命令到虚拟机时产生编码错误,在第二个命令时没有出现这个问题,所以在复制的时候注意编码问题。

  7. 查看HDFS中的test.TXT文件:
    ./bin/hdfs dfs –cat input/text.txt
  8. 将文件下载到本地usr/local/hadoop目录下:
    ./bin/hdfs dfs -get input/test.txt /usr/local/hadoop
  9. 将HDFS上的test.txt文件复制到HDFS上另一个位于根目录的input目录:
    ./bin/hdfs dfs -cp input/test.txt /input
  10. 上传到HDFS的文件以覆盖的形式上传:
    ./bin/hadoop fs -copyFromLocal -f /home/hadoop/input/test.txt /input/test.txt
  11. 显示 HDFS 中指定的文件的读写权限、大小、创建时间、路径等信息
     ./bin/hadoop fs -ls /input

  12. 给定HDFS中某一个目录,输出该目录下的所有文件的读写权限、大小、创建时间、路径等信息,如果该文件是目录,则递归输出该目录下所有文件相关信息
    ./bin/hadoop fs -ls -R -h /user

  13. 删除HDFS中指定的文件
    ./bin/hadoop fs -rm /user/hadoop/input/log.txt
  14. 向 HDFS 中指定的文件追加内容,由用户指定内容追加到原有文件的结尾
    ./bin/hadoop fs -appendToFile /home/hadoop/input/testadd.txt /input/test.txt

    向HDFS中指定的文件追加内容,由用户指定内容追加到原有文件的开头(采用的方法是先将HDFS中的文件下载到本地,然后使用cat添加到开头,然后将文件上传)

    hadoop fs -get /input/test.txt /home/hadoop/input
    cat /home/hadoop/input/test.txt >> /home/hadoop/input/testadd.txt
    mv /home/hadoop/input/testadd.txt /home/hadoop/input/test.txt
    hadoop fs -put -f /home/hadoop/input/test.txt /input
  15. 从HDFS中下载指定文件,如果本地文件中药下载的文件名称相同,则自动对下载的文件重命名

    if $(hadoop fs -test -e /home/hadoop/input/test.txt);
    then $(hadoop fs -copyToLocal /input/test.txt /home/hadoop/input/test.txt);
    else $(hadoop fs -copyToLocal /input/test.txt /home/hadoop/input/test1.txt);
    fi

原文地址:https://www.cnblogs.com/heiyang/p/11411343.html