• 【Hadoop】HDFS笔记(三):HDFS的Shell操作


    HDFS处理文件的命令和Linux命令差不多,但注意区分大小写。

    (Linux区分大小写,Windows不区分大小写)

    一、fs命令

    键入命令“./bin/hadoop fs”将输出能够支持的命令列表。

    Usage: java FsShell

         [-ls <path>]

         [-lsr <path>]

         [-df <path>]

         [-du [-s] [-h] <path>]

         [-dus <path>]

         [-count [-q] <path>]

         [-mv <src> <dst>]

         [-cp <src> <dst>]

         [-rm [-skipTrash] <path>]

         [-rmr [-skipTrash] <path>]

         [-expunge]

         [-put <localsrc> … <dst>]

         [-copyFromLocal <localsrc> … <dst>]

         [-moveFromLocal <localsrc> … <dst>]

         [-get [-ignoreCrc] [-crc] <src> <localdst>]

         [-getmerge <src> <localdst> [addnl]]

         [-cat <src>]

         [-text <src>]

         [-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]

         [-moveToLocal [-crc] <src> <localdst>]

         [-mkdir <path>]

         [-setrep [-R] [-w] <rep> <path/file>]

         [-touchz <path>]

         [-test –[ezd] <path>]

         [-stat [format] <path>]

         [-tail [-f] <file>]

         [-chmod [-R] <MODE[, MODE] … | OCTALMODE> PATH…]

         [-chown [-R] [OWNER] [: [GROUP]] PATH…]

         [-chmod [-R] GROUP PATH…]

         [-help [cmd]]

    下面说说最主要的几个命令。

    1. 创建文件夹

    HDFS上的文件目录结构类似Linux,根目录使用/表示。下面的命令在/user/hadoop目录下建立input。

    denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –mkdir /user/hadoop/input

    denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –ls /user/hadoop

    Found1 items

    drwxr-xr-x  - denny supergroup     0  2014-09-21  23:38  /user/hadoop/input

    2. 上传文件test.txt到input下。

    denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –put test.txt /user/hadoop/input

    denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –ls /user/hadoop/input

    Found1 items

    -rw-r--r--1 denny supergroup      75  2014-09-21  23:45  /user/hadoop/input/test.txt

    还可以用-copyFromLocal命令。

    3.查看test.txt文件内容

    denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –text /user/hadoop/input/test.txt

    helloworld

    helloworld…

    还可以用-cat、-tail命令查看文件内容,但是对于压缩文件只能用-text参数查看,否则是乱码。

    4.把test.txt文件复制到本地(下载,导出)

    denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –get /user/hadoop/input/test.txt

    还可以用-copyToLocal命令。

    5.删除test.txt文件

    denny@Ubuntu1:/opt/hadoop-1.0.3$ hadoop fs –rm /user/hadoop/input/test.txt

    二、namenode命令

    运行namenode进行格式化、升级、回滚等操作。

    命令选项

    功能描述

    -format

    格式化NameNode,启动NameNode,格式化NameNode,之后关闭NameNode

    -upgrade

    分发新版本的Hadoop后,NameNode应以upgrade选项启动

    -rollback

    将NameNode回滚到前一版本。此选项要在停止集群、分发Hadoop旧版本后使用

    -finalize

    删除文件系统的前一状态。最近的升级会被持久化,rollback选项将再不可用升级终结操作之后,会停掉NameNode

    -importCheckPoint

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

    (注:Hadoop集群第一次启动时一定要格式化NameNode,否则NameNode会报错)

    三、job命令

    命令选项

    功能描述

    -submit <job file>

    提交作业

    -status <job-id>

    打印Map和Reduce完成百分比和所计数器

    -counter <job-id> <group-name> <counter-name>

    打印计数器的值

    -kill <job-id>

    杀死指定作业

    -events <job-id> <from-event-#> <#-of-events>

    打印给定范围内的JobTracker接收到的事件细节

    -history [all] <jobOutputDir>

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

    -list [all]

    显示所有作业。-list只显示将要完成的作业

    -kill-task <task-id>

    杀死任务,被杀死的任务不会不利于失败尝试

    -fail-task <task-id>

    使任务失败,被失败的任务会对失败尝试不利

    四、fsck命令

    显示块的信息,列出文件系统中各文件由那些块构成。用于和MapReduce作业交互和命令。

    命令选项

    描述信息

    <path>

    检查起始的目录

    -move

    移动受损文件到/lost+found

    -delete

    删除受损文件

    openforwrite

    打印写打开的文件

    -files

    打印正在被检查的文件

    -blocks

    打印块信息报告

    -locations

    打印每个块的位置信息

    -racks

    打印datanode的网络拓扑结构

    五、pipe命令

    该命令用于运行pipe作业。

    命令选项

    描述信息

    -conf <path>

    作业的配置

    -jobconf <key=value>, <key=value>, …

    增加/覆盖作业的配置项

    -input <path>

    输入目录

    -output <path>

    输出目录

    -jar<jar file>

    JAR文件名

    -inputformat <class>

    InputFormat类

    -map <class>

    Java Map类

    -partitioner <class>

    Java Partitioner

    -reduce <class>

    Java Reduce类

    -write <class>

    Java RecordWriter

    -program <executable>

    可执行程序的URI

    -reduces <num>

    Reduce个数

  • 相关阅读:
    Asp.net导出Excel文件
    Ext.Net 使用总结之GridPanel中的选中行
    Ext.Net 使用总结之查询条件中的起始日期
    使用python crontab设置linux定时任务
    JSON Serialization/Deserialization in C#
    redis 基本数据类型-列表(List)
    redis 基本数据类型-字符串(String)
    使同一个server上不同port的django应用可在同一个浏览器上打开
    django server之间通过remote user 相互调用
    使用python实现短信PDU编码
  • 原文地址:https://www.cnblogs.com/DianaCody/p/5425661.html
Copyright © 2020-2023  润新知