Hadoop的Shell操作

简介: Hadoop的Shell操作

Hadoop的Shell操作

在使用Hadoop的Shell命令前,我们需要启动Hadoop。执行如下命令:

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

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

实际上有三种shell命令方式:

1、hadoop fs:适用于任何不同的文件系统,比如本地文件系统和HDFS文件系统

2、hadoop dfs:只适用于HDFS文件系统

3、hdfs dfs:只适用于HDFS文件系统

我们可以在终端输入如下命令,查看fs总共支持了哪些命令:

./bin/hadoop fs

在终端输入如下命令,可以查看具体某个命令的作用。

例如:我们查看put命令如何使用,可以输入如下命令:

./bin/hadoop fs -help put

1、目录操作

1.1 创建用户目录

需要注意的是,Hadoop系统安装好以后,第一次使用HDFS时,需要首先在HDFS中创建用户目录。因此,需要在HDFS中为hadoop用户创建一个用户目录,命令如下:

cd /usr/local/hadoop
./bin/hdfs dfs -mkdir -p /user/hadoop

该命令中表示在HDFS中创建一个/user/hadoop目录:

  • –mkdir:创建目录的操作
  • -p:表示如果是多级目录,则父目录和子目录一起创建
  • /user/hadoop:一个多级目录,因此必须使用参数 -p,否则会出错。

/user/hadoop目录就成为hadoop用户对应的用户目录。

1.2 创建目录

下面,可以使用如下命令创建一个liang目录:

./bin/hdfs dfs -mkdir liang

在创建个liang目录时,采用了相对路径形式,实际上,这个liang目录创建成功以后,它在HDFS中的完整路是/user/hadoop/liang

如果要在HDFS的根目录下创建一个名称为liang的目录,则需要使用如下命令:

./bin/hdfs dfs -mkdir /liang

1.3 删除目录

可以使用rm命令删除一个目录,比如,可以使用如下命令删除刚才在HDFS中创建的/liang目录(不是/user/hadoop/liang目录):

./bin/hdfs dfs -rm -r /liang

上面命令中,-r参数表示如果删除/liang目录及其子目录下的所有内容,如果要删除的一个目录包含了子目录,则必须使用-r参数,否则会执行失败。

1.4 查看目录

可以使用如下命令显示HDFS中与当前用户hadoop对应的用户目录下的内容:

./bin/hdfs dfs -ls .
  • -ls:列出HDFS某个目录下的所有内容
  • .:HDFS中的当前用户目录,也就是/user/hadoop目录,因此,上面的命令和下面的命令是等价的:
./bin/hdfs dfs -ls /user/hadoop

如果要列出HDFS上的所有目录,可以使用如下命令:

./bin/hdfs dfs -ls

2、文件操作

2.1 上传文件

在实际应用中,经常需要从本地文件系统向HDFS中上传文件,或者把HDFS中的文件下载到本地文件系统中。

首先,使用vim编辑器,在本地Linux文件系统的/home/hadoop/目录下创建一个文件myLocalFile.txt,里面可以随意输入一些单词,比如,输入如下:

然后,可以使用如下命令把本地文件系统的/home/hadoop/myLocalFile.txt上传到HDFS中的当前用户目录的liang目录下,也就是上传到HDFS的/user/hadoop/liang/目录下:

./bin/hdfs dfs -put /home/hadoop/myLocalFile.txt  liang

可以使用ls命令查看一下文件是否成功上传到HDFS中,具体如下:

./bin/hdfs dfs -ls liang

该命令执行后会显示类似如下的信息:

Found 1 items
-rw-r--r--   1 hadoop supergroup         53 2022-10-04 20:42 liang/myLocalFile.txt

2.2 查看文件

下面使用如下命令查看HDFS中的myLocalFile.txt这个文件的内容:

./bin/hdfs dfs -cat liang/myLocalFile.txt

2.3 下载文件

下面把HDFS中的myLocalFile.txt文件下载到本地文件系统中的/home/hadoop/下载/这个目录下,命令如下:

./bin/hdfs dfs -get liang/myLocalFile.txt  /home/hadoop/下载

可以使用如下命令,到本地文件系统查看下载下来的文件myLocalFile.txt:

cd ~
cd 下载
ls
cat myLocalFile.txt

2.4 拷贝文件

最后,了解一下如何把文件从HDFS中的一个目录拷贝到HDFS中的另外一个目录。比如,如果要把HDFS的/user/hadoop/liang/myLocalFile.txt文件,拷贝到HDFS的另外一个目录/output中(注意,这个out目录位于HDFS根目录下),可以使用如下命令:

./bin/hdfs dfs -cp liang/myLocalFile.txt  /output

目录
相关文章
|
1月前
|
存储 算法 Shell
【Shell 命令集合 磁盘维护 】Linux 对软盘进行格式化操作 fdformat命令使用指南
【Shell 命令集合 磁盘维护 】Linux 对软盘进行格式化操作 fdformat命令使用指南
32 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 磁盘管理 】Linux 控制光驱或可移动媒体设备的弹出和关闭操作 eject命令使用教程
【Shell 命令集合 磁盘管理 】Linux 控制光驱或可移动媒体设备的弹出和关闭操作 eject命令使用教程
36 1
|
4月前
|
Java Shell 分布式数据库
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
【大数据技术Hadoop+Spark】HBase数据模型、Shell操作、Java API示例程序讲解(附源码 超详细)
84 0
|
4月前
|
分布式计算 Java 大数据
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
【大数据技术Hadoop+Spark】HDFS Shell常用命令及HDFS Java API详解及实战(超详细 附源码)
215 0
|
4月前
|
分布式计算 大数据 Scala
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
【大数据技术Hadoop+Spark】Spark RDD创建、操作及词频统计、倒排索引实战(超详细 附源码)
94 1
|
4月前
|
分布式计算 Hadoop Shell
|
3月前
|
监控 Linux Shell
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
在线上排查问题时,查询日志、查看系统配置和分析操作系统信息是至关重要的。这些操作可以帮助我们深入了解软件和服务的兼容性,并解决潜在的问题。在本次学习中,我们将介绍并深入学习一些我在处理类似问题时常用的指令。通过掌握这些指令,你将能够更加高效地定位和解决线上问题,提高系统的稳定性和性能。让我们一同进入这个学习过程吧!
43 0
【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(排查问题指令 - 下)
|
14天前
|
分布式计算 Hadoop Shell
Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
【4月更文挑战第4天】Hadoop【基础知识 04】【HDFS常用shell命令】(hadoop fs + hadoop dfs + hdfs dfs 使用举例)
28 5
|
25天前
|
人工智能 机器人 Shell
【shell】shell数组的操作(定义、索引、长度、获取、删除、修改、拼接)
【shell】shell数组的操作(定义、索引、长度、获取、删除、修改、拼接)
|
1月前
|
算法 Shell Linux
【Shell 命令集合 文档编辑 内建命令】Linux数值运算和赋值操作 let命令使用指南
【Shell 命令集合 文档编辑 内建命令】Linux数值运算和赋值操作 let命令使用指南
26 0