大数据技术之Hadoop:使用命令操作HDFS(四)

本文介绍了在Hadoop分布式文件系统(HDFS)中进行文件和目录操作的方法,包括创建、查看、上传、下载、移动、删除等命令,以及如何使用HDFS客户端工具如BigDataTools来简化操作。同时提到了HDFSweb的权限限制和本地Hadoop环境的安装配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、创建文件夹

二、查看指定目录下的内容

三、上传文件到HDFS指定目录下

四、查看HDFS文件内容

五、下载HDFS文件

六、拷贝HDFS文件

七、HDFS数据移动操作

八、HDFS数据删除操作

九、HDFS的其他命令

十、hdfs web查看目录

十一、HDFS客户端工具

11.1 下载插件

11.2 本地安装Hadoop环境

11.3 配置Big Data Tools插件

11.4 基本功能使用


在HDFS中的命令,基本上就是照搬的Linux命令。只要你熟悉Linux命令,那么HDFS命令基本上一遍过。它的目录结构和linux非常相似。

举个例子:

Linux 中:mkdir -p /opt/mynote

HDFS中:hadoop fs -mkdir -p /opt/mynote

        或者  hdfs dfs -mkdir -p /opt/mynote

所以说,是不是没什么区别?🫢

那么我们这就引出了第一个HDFS操作命令。

一、创建文件夹

hadoop fs -mkdir [-p] <path> ...
hdfs dfs -mkdir [-p] <path> ...

path 为待创建的目录

-p选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。

举例

如何查看创建的文件夹在哪里呢?

二、查看指定目录下的内容

hadoop fs -ls [-h] [-R] [<path> ...] 
hdfs dfs -ls [-h] [-R] [<path> ...] 

path 指定目录路径 

-h 人性化显示文件size

-R 递归查看指定目录及其子目录

举例

三、上传文件到HDFS指定目录下

hadoop fs -put [-f] [-p] <localsrc> ... <dst>
hdfs dfs -put [-f] [-p] <localsrc> ... <dst>

-f 覆盖目标文件(已存在下) 

-p 保留访问和修改时间,所有权和权限。

localsrc 本地文件系统(客户端所在机器)

dst 目标文件系统(HDFS

例如

注意:如果是客户端所在的机器,我们一般用file://前缀指代,hdfs用hdfs://指代,当然了默认情况下,我们一般选择省略。

四、查看HDFS文件内容

hadoop fs -cat <src> ... 
hdfs dfs -cat <src> ...
        

读取指定文件全部内容,显示在标准输出控制台。

例如

读取大文件可以使用管道符配合 more

hadoop fs -cat <src> | more
hdfs dfs -cat <src> | more

、下载HDFS文件

hadoop fs -get [-f] [-p] <src> ... <localdst>
hdfs dfs -get [-f] [-p] <src> ... <localdst>

下载文件到本地文件系统指定目录localdst必须是目录

-f 覆盖目标文件(已存在下)

-p 保留访问和修改时间,所有权和权限

六、拷贝HDFS文件

hadoop fs -cp [-f] <src> ... <dst> 
hdfs dfs -cp [-f] <src> ... <dst>

-f 覆盖目标文件(已存在下

例如

七、HDFS数据移动操作

hadoop fs -mv <src> ... <dst>
hdfs dfs -mv <src> ... <dst>

移动文件到指定文件夹下

可以使用该命令移动数据,重命名文件的名称

八、HDFS数据删除操作

hadoop fs -rm -r [-skipTrash] URI [URI ...]
hdfs dfs -rm -r [-skipTrash] URI [URI ...]

删除指定路径的文件或文件夹

-skipTrash 跳过回收站,直接删除

ps

回收站功能默认关闭,如果要开启需要在core-site.xml内配置:

<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

<property>
    <name>fs.trash.checkpoint.interval</name>
    <value>120</value>
</property>

无需重启集群,在哪个机器配置的,在哪个机器执行命令就生效。

回收站默认位置在:/user/用户名(hadoop)/.Trash

九、HDFS的其他命令

以上命令能够满足绝大多数的hdfs场景,如需更详细的命令,请参考官方文档:

https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html

十、hdfs web查看目录

默认只能查看,不能增删改操作。如果使用WEB浏览操作文件系统,一般会遇到权限问题

这是因为WEB浏览器中是以匿名用户(dr.who)登陆的,其只有只读权限,多数操作是做不了的。

如果需要以特权用户在浏览器中进行操作,需要配置如下内容到core-site.xml并重启集群

  <property>
    <name>hadoop.http.staticuser.user</name>
    <value>hadoop</value>
  </property>

但是,不推荐这样做!

HDFS WEBUI,只读权限挺好的,简单浏览即可

如果给与高权限,会有很大的安全问题,造成数据泄露或丢失

十一、HDFS客户端工具

如果觉得通过命令操作hdfs比较麻烦,其实我们还可以使用客户端工具。

11.1 下载插件

如果你用的IDE工具是IDEA或者Pycharm,又或者使用的是DataGrip这种数据库工具,它们都是Jetbrains家的产品。

那么我们可以在插件市场下载一个插件:Big Data Tools。

它能够更加方便的让我们操作HDFS。

11.2 本地安装Hadoop环境

解压Hadoop安装包到Windows系统,如解压到:D:\it\hadoop-3.3.4\hadoop-3.3.4

设置$HADOOP_HOME环境变量指向:D:\it\hadoop-3.3.4\hadoop-3.3.4

下载如下两个资源

hadoop.dll(https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/bin/hadoop.dll)

winutils.exe(https://github.com/steveloughran/winutils/blob/master/hadoop-3.0.0/bin/winutils.exe)

将hadoop.dllwinutils.exe放入$HADOOP_HOME/bin

11.3 配置Big Data Tools插件

11.4 基本功能使用

这部分不用多说,有手就行🫢。

<think>好的,我现在需要帮助用户了解HDFS上传数据的过程。首先,我得回顾一下HDFS的基本概念,因为用户可能对HDFS不熟悉,所以需要先简单介绍一下HDFS是什么,它的主要作用是什么。HDFSHadoop分布式文件系统,设计用于存储大规模数据,并且具有高容错性,适合部署在廉价硬件上。这点很重要,用户可能想知道为什么选择HDFS上传数据。 接下来,用户的问题是关于上传数据的具体步骤。我需要分步骤解释,从命令操作开始,因为这是最常见的方式。首先想到的是hadoop fs -put命令,这是最基础的命令,用户需要知道如何将本地文件上传HDFS的指定路径。同时,可能需要提到其他类似的命令,比如-put和-copyFromLocal的区别,以及-moveFromLocal的作用,这样用户可以了解不同命令的适用场景。 然后,用户可能想知道上传过程中需要注意的事项,比如路径是否存在,权限问题,或者是否覆盖文件。比如,使用-f参数强制覆盖,或者检查目标目录是否存在,这些细节对用户实际操作很重要。此外,如果用户上传的是大文件,可能需要提到HDFS的块大小和分块上传的机制,但可能属于进阶内容,暂时不需要深入。 另外,用户可能需要了解上传后的验证步骤,比如如何检查文件是否成功上传使用-ls命令查看HDFS中的文件列表,或者使用-cat查看文件内容。这部分可以放在步骤之后作为确认步骤。 还有,用户可能对HDFS的架构不太清楚,比如NameNode和DataNode的角色,上传过程中客户端如何与这些组件交互。不过,是否需要深入这部分取决于用户的需求,但根据问题,可能不需要太深入,除非用户后续有更多问题。 还需要考虑权限问题,比如HDFS的权限检查是否开启,用户是否有权限写入目标目录。如果用户遇到权限错误,可能需要指导他们如何设置权限,比如使用chmod命令。 另外,可能有一些常见问题需要提及,例如网络连接问题,HDFS服务是否正常运行,或者存储空间不足的情况。用户在上传数据时可能会遇到这些问题,提前说明可以帮助他们排查。 关于图形界面工具,虽然用户可能主要使用命令行,但也可以简要提到Hadoop的Web界面,比如通过NameNode的Web UI查看上传文件,或者使用Hue这样的工具进行上传,但重点还是在命令操作上。 总结下来,回答的结构应该是先介绍HDFS上传数据的基本概念,然后分步骤讲解命令操作,包括常用命令和参数,接着说明注意事项和常见问题,最后可能提到验证步骤和其他工具。这样用户能够有一个清晰的流程,从上传到验证,再到问题处理,逐步掌握整个过程。 需要确保使用中文,避免技术术语过于晦涩,同时保持准确性。例如,在解释hadoop fs -put命令时,要正确写出命令格式,变量部分用斜体或者使用$...$格式,但根据系统级指令,数学表达式需要用$...$,但这里可能更多是代码或命令,所以可能需要调整。不过根据用户层的指示,结构清晰,步骤明确是关键。</think>HDFSHadoop分布式文件系统)上传数据是Hadoop生态系统中常见的操作,主要用于将本地数据存储到分布式集群中。以下是详细的步骤和注意事项: --- ### **1. HDFS上传数据的基本命令** #### **1.1 使用 `-put` 或 `-copyFromLocal` 命令** **作用**:将本地文件上传HDFS指定路径。 **命令格式**: ```bash hadoop fs -put <本地文件路径> <HDFS目标路径> # 或 hadoop fs -copyFromLocal <本地文件路径> <HDFS目标路径> ``` **示例**: ```bash hadoop fs -put /home/user/data.txt /user/hadoop/input/ ``` #### **1.2 使用 `-moveFromLocal` 命令** **作用**:上传后删除本地文件。 **命令格式**: ```bash hadoop fs -moveFromLocal <本地文件路径> <HDFS目标路径> ``` #### **1.3 上传整个目录** **作用**:递归上传本地目录及其内容。 **命令格式**: ```bash hadoop fs -put /本地/目录 /HDFS/目标路径 ``` --- ### **2. 关键参数说明** - **`-f`**:强制覆盖已存在的HDFS文件。 ```bash hadoop fs -put -f data.txt /user/hadoop/input/ ``` - **`-p`**:保留文件的访问权限、时间戳等属性。 ```bash hadoop fs -put -p data.txt /user/hadoop/input/ ``` --- ### **3. 操作验证** #### **3.1 检查上传结果** 查看HDFS目标路径下的文件: ```bash hadoop fs -ls /user/hadoop/input/ ``` #### **3.2 查看文件内容** ```bash hadoop fs -cat /user/hadoop/input/data.txt ``` --- ### **4. 注意事项** 1. **目标路径必须存在** 如果HDFS目标路径不存在,需先创建目录: ```bash hadoop fs -mkdir -p /user/hadoop/input/ ``` 2. **权限问题** - 确保用户对HDFS目标路径有写入权限。 - 若权限不足,可通过以下命令修改: ```bash hadoop fs -chmod 755 /user/hadoop/input/ ``` 3. **文件覆盖** HDFS默认不允许覆盖同名文件,需使用 `-f` 参数强制覆盖。 4. **大文件分块上传** HDFS会将文件自动切分为块(默认128MB),无需手动处理。 --- ### **5. 常见问题与解决方法** - **报错:`No such file or directory`** 检查本地文件路径或HDFS目标路径是否正确。 - **报错:`Permission d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何苏三月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值