初学Hadoop——HDFS命令行客户端使用

一、HDFS简介及其基本概念

HDFS(Hadoop Distributed File System)是hadoop生态系统的一个重要组成部分,是hadoop中的存储组件,在整个Hadoop中的地位非同一般,是最基础的一部分,因为它涉及到数据存储,MapReduce等计算模型都要依赖于存储在HDFS中的数据。HDFS是一个分布式文件系统,以流式数据访问模式存储超大文件,将数据分块存储到一个商业硬件集群内的不同机器上。

二、实验环境

操作系统:Ubuntu64位
Hadoop版本:Hadoop 2.7.1
Jdk版本:jdk-8u241-linux-x64

三、实践内容

注意:
开头的Shell命令方式,有三种shell命令方式:

  1. hadoop fs # hadoop fs适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统
  2. hadoop dfs # hadoop dfs只能适用于HDFS文件系统
  3. hdfs dfs #hdfs dfs跟hadoop dfs的命令作用一样,也只能适用于HDFS文件系统

1、在使用HDFS命令行操作前,需要先启动Hadoop

命令:

cd /usr/local/hadoop
./sbin/start-dfs.sh #启动hadoop

实践:
在这里插入图片描述

2、Hadoop支持很多Shell命令,其中fs是HDFS最常用的命令,利用fs可以查看HDFS文件系统的目录结构、上传和下载数据、创建文件等。

命令:

hadoop fs #查看fs总共支持了哪些命令

实践:
在这里插入图片描述

3、查看具体某个命令的作用

命令:

扫描二维码关注公众号,回复: 12070918 查看本文章
hadoop fs -help put#查看put命令的作用

实践:

在这里插入图片描述

4、利用Shell命令与HDFS进行交互

(1)目录操作

①第一次使用HDFS时,需要首先在HDFS中创建用户目录。

命令:

cd /usr/local/hadoop
hdfs dfs –mkdir –p /user/Hadoop  #在HDFS中创建一个“/user/hadoop”目录,“–mkdir”是创建目录的操作,“-p”表示如果是多级目录,则父目录和子目录一起创建,这里“/user/hadoop”就是一个多级目录,因此必须使用参数“-p”,否则会出错。

实践:

在这里插入图片描述

②显示HDFS中与当前用户hadoop对应的用户目录下的内容

命令:

hdfs dfs –ls. #“-ls”表示列出HDFS某个目录下的所有内容,“.”表示HDFS中的当前用户目录,也就是“/user/hadoop”目录

实践:
在这里插入图片描述

等价命令:

hdfs dfs –ls /user/Hadoop

实践:

在这里插入图片描述

③列出HDFS上的所有目录

命令:

hdfs dfs –ls 

实践:

在这里插入图片描述

④创建一个input目录

命令:

hdfs dfs –mkdir input #创建此input目录时,采用了相对路径形式,实际上,这个input目录创建成功以后,它在HDFS中的完整路径是“/user/hadoop/input”

实践:

在这里插入图片描述

hdfs dfs –mkdir /input #在HDFS的根目录下创建一个名称为input的目录

实践:

在这里插入图片描述

⑤使用rm命令删除一个目录

命令:

hdfs dfs –rm –r /input #删除刚才在HDFS中创建的“/input”目录(不是“/user/hadoop/input”目录);“-r”参数表示删除“/input”目录及其子目录下的所有内容,如果要删除的一个目录包含了子目录,则必须使用“-r”参数,否则会执行失败。

实践:

在这里插入图片描述

(2) 文件操作

①创建文件

命令:

cd /usr/local/hadoop
touch mylocalfile.txt

实践:

在这里插入图片描述
在这里插入图片描述

②编辑文件

命令:

vim mylocalfile.txt

实践:

在这里插入图片描述
在这里插入图片描述

③把本地文件系统的文件上传到HDFS中的当前用户目录上

命令:

hdfs dfs -put /usr/local/hadoop/myLocalFile.txt  input #把本地文件系统的“/usr/local/hadoop/myLocalFile.txt”上传到HDFS中的当前用户目录的input目录下,也就是上传到HDFS的“/user/hadoop/input/”目录下。

实践:

在这里插入图片描述
在这里插入图片描述

④查看HDFS中文件的内容

代码:

hdfs dfs –cat input/myLocalFile.txt

实践:

在这里插入图片描述

⑤把HDFS中的文件下载到本地

代码:

hdfs dfs -get input/myLocalFile.txt/home/hadoop/下载 #把HDFS中的myLocalFile.txt文件下载到本地文件系统中的“/home/hadoop/下载/”这个目录下

实践:

在这里插入图片描述
在这里插入图片描述

到本地文件系统查看下载下来的文件mylocalfile.txt

命令:

cd ~
cd 下载
ls
cat myLocalFile.txt

实践:

在这里插入图片描述

⑥把文件从HDFS中的一个目录拷贝到HDFS中的另外一个目录

命令:

hdfs dfs -cp input/myLocalFile.txt/input #把HDFS的“/user/hadoop/input/myLocalFile.txt”文件,拷贝到HDFS的另外一个目录“/input”中(注意,这个input目录位于HDFS根目录下)

(3)其他shell常用命令

①输出这个命令参数手册

命令:

Hdfs dfs -help 命令名

实例:

Hdfs dfs -help cat

在这里插入图片描述

②上传文件

命令:

hdfs dfs -put file(本地文件路径) /hdfsfile(hdfs文件路径)

实例:

hdfs dfs -put /usr/local/hadoop/myLocalFile.txt input

在这里插入图片描述
在这里插入图片描述

③剪切文件

命令:

hdfs dfs -moveFromLocal file(文件路径) /hdfsfile(hdfs文件路径)

实例:

hdfs dfs -moveFromLocal /usr/local/hadoop/myLocalFile.txt input

在这里插入图片描述

④下载文件到本地

命令:

hdfs dfs -get /hdfsfile(hdfs文件路径) file(本地路径)

实例:

hdfs dfs -get input/mylocalfile.txt /usr/local/hadoop

在这里插入图片描述

⑤合并下载

命令:

hdfs dfs -getmerge /hdfsdir    file

实例:

hdfs dfs -get input /usr/local/hadoop

在这里插入图片描述

⑥创建文件夹

命令:

hdfs dfs -mkdir /dirname

实例:

在这里插入图片描述
在这里插入图片描述
多级强制创建命令:

hdfs dfs -mkdir -p /dirname/dirname

实例:

在这里插入图片描述

⑦移动文件夹

命令:

hdfs dfs -mv /hdfsfile /hdfsdir/hdfsfile
# -mv a.txt b.txt    //重命名
# -mv a.txt /    //移动

⑧复制

命令:

hdfs dfs -cp /hdfsfile /hdfsdir

⑨删除

命令:

hdfs dfs -rm /hdfsfile

删除文件夹命令:

hdfs dfs -rm -r /hdfsdir

⑩查看

命令:

hdfs dfs -cat /hdfsfile
hdfs dfs -tail -f /hdfsfile

查看文件夹中有多少个文件

命令:

hdfs dfs -count /hdfsdir

查看hdfs的总空间

命令:

hdfs dfs -df /
hdfs dfs -df -h /    可读性更高

猜你喜欢

转载自blog.csdn.net/qq_45154565/article/details/109180824