HDFS运维—命令注释

1 实验背景

HDFS是大数据其他组件的基础,Hive的数据存储在HDFS中,Mapreduce、Spark 等计算数据也存储在HDFS 中,HBase 的 region 也是存储在HDFS 中。在HDFS shell 客户端我们可以实现多种操作,如上传、下载、删除数据,文件系统管理等。掌握HDFS 的使用对我们更好的理解和掌握大数据大有裨益。

2 实验目的

  1. 掌握 HDFS 常用操作。
  2. 掌握 HDFS 文件系统管理操作。

3 实验步骤

  • HDFS 常用操作
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
[-chown [-R] [OWNER][:[GROUP]] PATH...]
[-copyFromLocal [-f] [-p] <localsrc> ... <dst>]
[-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-count [-q] <path> ...]
[-cp [-f] [-p] <src> ... <dst>]
[-df [-h] [<path> ...]]
[-du [-s] [-h] <path> ...]
[-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]
[-getmerge [-nl] <src> <localdst>]
[-help [cmd ...]]
[-ls [-d] [-h] [-R] [<path> ...]]
[-mkdir [-p] <path> ...]
[-moveFromLocal <localsrc> ... <dst>]
[-moveToLocal <src> <localdst>]
[-mv <src> ... <dst>]
[-put [-f] [-p] <localsrc> ... <dst>]
[-rm [-f] [-r|-R] [-skipTrash] <src> ...]
[-rmdir [--ignore-fail-on-non-empty] <dir> ...]
[-tail [-f] <file>]
[-text [-ignoreCrc] <src> ...]
[-touchz <path> ...]

步骤 1 help 命令

  • 功能: 查看命令的帮助文档
  • hdfs dfs -help

步骤 2 ls 命令

  • 功能:显示目录信息
  • hdfs dfs -ls /

步骤 3 mkdir 命令

  • 功能:在 hdfs 上创建目录

在根目录的 user 文件夹下创建 stu01 文件夹,首先查看 user 下的内容,然后创建,再使用 ls命令查看,可以看到出现了 stu01 文件夹:

  • hdfs dfs -mkdir /user/stu01

步骤 4 put 命令

  • 功能:上传本地文件到 hdfs 指定目录,首先使用 vi 命令在 linux 本地编辑一份数据文件
  • 输入命令 vim stu01.txt

步骤 5 cat 命令

  • 功能:显示文件内容
  • 输入命令: hdfs dfs -cat /user/stu01/stu01.txt

步骤 6 text 命令

  • 功能:以字符形式打印一个文件的内容
  • 输入命令:hdfs dfs -text /user/stu01/stu01.txt

步骤 7 moveFromLocal 命令

  • 功能:从本地剪切粘贴到 hdfs

同理,使用 vi 命令在 linux 本地先创建一个数据文件,例如 stu01_2.txt,

  • 输入命令:hdfs dfs -moveFromLocal stu01_2.txt /user/stu01/

注意:

  • 可以看到 stu01_2.txt 文件已上传到 hdfs 文件系统的/user/stu01 目录下,并且使用 ls 命令查看
  • linux 本地,stu01_2.txt 已不存在,证明是剪切粘贴到 hdfs 文件系统了。如果是 put 命令,linux 本地还存在,只是复制到 hdfs 系统。

步骤 8 appendToFile 命令

  • 功能:追加一个文件到已经存在的文件末尾

首先,使用 vi 命令在 linux 本地编辑一份数据文件:stu01_3.txt,

  • 输入命令:hdfs dfs -appendToFile stu01_3.txt /user/stu01/stu01_2.txt

把 stu01_3.txt 文件的内容追加到 hdfs 文件系统的 stu01_2.txt 文件里面去。

步骤 9 chmod 命令

  • 功能:linux 文件系统中的用法一样,更改文件所属权限

使用 ls 命令可以查看到 hdfs 文件的权限:
使用 chmod 命令修改 stu01 文件夹的权限,

  • 输入命令:hdfs dfs -chmod 755 /user/stu01/

步骤 10 chown 命令

  • 功能:linux 文件系统中的用法一样,更改文件所属用户和用户组

首先在 hdfs 根目录下创建文件夹 stu01,使用 ls 命令可以查看属组:
注意:因为 root 用户无权限操作属组,需要切换到 admin 用户。

  • 输入命令:su admin,切换admin 用户:

使用 chown 命令修改 stu01 文件夹的用户及用户组,

  • 输入命令:hdfs dfs -chown -R hive:hive /stu01/

步骤 11 cp 命令

  • 功能:从 hdfs 的一个路径拷贝 hdfs 的另一个路径

首先在 linux 本地使用 vi 命令编辑一份文件:stu01_4.txt ,然后用 put 命令上传到 hdfs 的根目
录下。

  • 输入 cp 命令:hdfs dfs -cp /stu01_4.txt /user/stu01/

步骤 12 mv 命令

  • 功能:在 hdfs 目录中移动文件

首先在 linux 本地使用 vi 命令编辑一份文件:stu01_5.txt ,然后用 put 命令上传到 hdfs 的根目
录下。

  • 输入 mv 命令:hdfs dfs -mv /stu01_5.txt /user/stu01/

注意:可以看到/user/stu01 文件夹下已经有 stu01_5.txt 文件了,但是该文件在根目录下已经不存在,
被移走了。

步骤 13 get 命令

  • 功能:等同于 copyToLocal,就是从 hdfs 下载文件到本地

首先删除 linux 本地的 stu01_5.txt 文件:

  • 执行 copyToLocal 命令:hdfs dfs -copyToLocal /user/stu01/stu01_5.txt .

可以看到在 linux 本地已经有 stu01_5.txt 文件了。
注意:hdfs 命令最后的.,表示当前目录,如果指 定其他目录,就可以指定文件保存的路径。

步骤 14 getmerge 命令

  • 功能:合并下载多个文件

执行 ls 命令,在/user/stu01/目录下有多个文件存在

  • 执行命令:hdfs dfs -getmerge /user/stu01/* ./merge.txt */

可以看到当前目录下生成了一个 merge.txt 文件,里面的内容就是/user/stu01/下几个文件的合 集。

步骤 15 rm 命令

  • 功能:删除 hdfs 文件或文件夹
  • 执行命令:hdfs dfs -rm /user/stu01/stu01_5.txt

可以看到/user/stu01/目录下已经没有 stu01_5.txt 文件了。

步骤 16 df 命令

  • 功能:统计文件系统的可用空间信息
  • 执行命令:hdfs dfs -df -h /

步骤 17 du 命令

  • 功能:统计文件夹的大小信息
  • 执行命令:hdfs dfs -du -s -h /user/stu01

步骤 18 count 命令

  • 功能:统计一个指定目录下的文件节点数量
  • 执行命令:hdfs dfs -count -v /user/stu01

4 回收站使用

日常工作中,有时会误删文件。此时我们可以在 hdfs 的回收站中找到被误删的文件,回收站默认将被删除文件保存 7 天。例如误删了/user/stu01/stu01_5.txt 文件,此时 stu01_5.txt 文件被移动到回收站。

  • 使用命令:hdfs dfs -ls /user/root/.Trash/Current/user/stu01/

可以查看到回收站中的 stu01_5.txt。
备注: 被删除数据默认保留 7 天
使用 mv 命令,将文件移动回/user/stu01/目录文件即可使用。

Linux命令注释—HDFS运维的更多相关文章

  1. Linux实战型企业运维工程师试题测评

    Linux实战型企业运维工程师试题答案 作者:尹正杰      最近在网上看到了一套有意思的面试题,我们一起来看一下这些题怎么破吧,哈哈~我先放在这里,有时间了一起来看看.多学点东西终究是没有坏处的! ...

  2. Python Linux系统管理与自动化运维

    Python Linux系统管理与自动化运维 前言 第1章Python语言与Linux系统管理1 1.1Python语言有多流行1 1.2Python语言为什么流行3 1.3Python语言有什么缺点 ...

  3. linux系列之常用运维命令整理笔录

    目录 本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍 ...

  4. Linux下性能调试工具运维笔记

    作为一名资深的linux运维工程师,为方便了解和追求服务器的高性能,如cpu.内存.io.网络等等使用情况,要求运维工程师必须要熟练运用一些必要的系统性能调试工具,liunx下提供了众多命令方便查看各 ...

  5. Linux实战型企业运维工程师试题

    1.如何通过Linux配置一个局域网或者IDC机房上网网关,请给出步骤及命令?答:上网网关配置(1)开启内核转发:sed -i 's#net.ipv4.ip_forward = 0#net.ipv4. ...

  6. Linux Shell交互式自动化运维程序

    Expect是Linux操作系统下的一个用来处理交互操作,系统默认是没有安装expect库,所以执行expect会提示找不到命令,需要手动安装,其它安装也比较简单,可以通过二进制源码包编译配置进行安装 ...

  7. Linux操作系统学习(运维必会)

    Linux一切皆文件,最高权限的账户root. 1.开机登录 开机会启动很多进程,在Windows上叫"服务"(service),在Linux上叫做"守护进程" ...

  8. linux平台下server运维问题分析与定位

    结合我工作中碰到的运维问题,总结一下Linux下server常见的运维问题以及定位方式.这里的server主要指自主开发的逻辑server,web srv因为通常采用通用的架构所以问题比较少. 逻辑s ...

  9. 基于Linux平台的自动化运维Devops-----之自动化系统部署

    一.自动化运维的背景网站业务上线,需要运维人员在短时间内完成几百台服务器部署,包括系统安装.系统初始化.软件的安装与配置.性能的监控......所谓运维自动化,即在最少的人工干预下,利用脚本与第三方工 ...

随机推荐

  1. 面试题:java中String为什么要设置成final

    1.不可改变---执行效率高 2.因为String这个对象基本是被所有的类对象都会使用的到了,如果可以被复写,就会很乱套,比如map的key ,如果是一个string为key的话,String如果可以 ...

  2. SpringBoot自定义Condition注解

        最近碰到个这样的需求,需要同一套代码适配个版本数据库(数据库不同,且部分表的字段及关联关系可能会不同),即这套代码配置不同的数据库都能跑.项目采用的框架为SpringBoot+Mybatis. ...

  3. Linux下源码编译Mysql5.7

    1.安装依赖包 yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgc ...

  4. Python从零开始——运算符

  5. Linux的httpd服务搭建

    在服务搭建前,还要了解一下httpd的日志. 日志有助有工作人员,查看服务器出错状况,更能统计数据分析网页运行情况. PV和UV两大分析 PV  Page View 页面访问量 UV  User Vi ...

  6. Linux常用指定

    学前理论 linux主要特征 :一切且文件(目录.硬盘等都是文件):硬件都在/dev 目录,如硬盘.U盘为/dev/sd[a-d]: /dev/sr0(/dev/cdrom)是光驱的设备名(df命令查 ...

  7. MySQL | MySQL 数据库系统(一)

    ## 1.什么是 MySQL 数据库? MySQL 数据库是一个关系型数据库管理系统,是服务器领域中受欢迎的开源数据库系统,目前有 Oracle 公司主要负责运营与维护: ## 2.MySQL 数据库 ...

  8. Browse Princeton's Series (by Date) in Princeton Economic History of the Western World

    Browse Princeton's Series (by Date) in Princeton Economic History of the Western World Joel Mokyr, S ...

  9. python将数组写入文件

    import numpy as npdata = np.array([[1,2], [3,4]]) np.savetxt('out.txt', data, fmt="%d") #保 ...

  10. zabbix-钉钉报警媒介

    (1)第三方报警平台(钉钉) 先指定要发送的群,在群里创建机器人 添加机器人 可以参考   “说明文档” 创建测试文档 vim   ceshi.sh curl 'https://oapi.dingta ...