Hadoop之HDFS(实践篇)

本文详细介绍了HDFS的命令行操作,包括文件的创建、修改、删除等,以及如何使用Java API和Web Console进行操作。此外,文章还深入探讨了HDFS的高级功能,如回收站、快照、配额和安全模式,并提供了具体的使用示例和原理分析。

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

上一篇文章介绍了HDFS的体系结构及基本原理等偏理论性的内容,本文将更多地从命令行操作、Java程序编写等实践角度着手,对HDFS的使用进行介绍。

1、HDFS的命令行操作

HDFS是存取数据的分布式文件系统,对HDFS的操作,就是文件系统的基本操作,如文件的创建、修改、删除、修改权限等。对HDFS的操作命令类似于Linux的shell对文件的操作,如ls、mkdir、rm等。总的来说,HDFS的命令行操作可以分为两类,一类为基本操作命令:hdfs dfs;另一类为管理命令:hdfs dfsadmin。HDFS常用基本操作命令列举如下:

这里写图片描述
这里写图片描述

命令hdfs dfs -getmerge使用实例:
  • [root@hadoop221 data]# vi data1.txt (在文件中输入I love Beijing)

  • [root@hadoop221 data]# vi data2.txt (在文件中输入 I love ShangHai)

  • [root@hadoop221 data]# hdfs dfs -mkdir /data (在HDFS上创建目录/data)

  • [root@hadoop221 data]# hdfs dfs -put data*.txt /data (将data1.txt和data2.txt文件上传到HDFS上的/data目录下)

  • [root@hadoop221 data]# hdfs dfs -getmerge /data/root/data/data3.txt (将HDFS上的/data目录下所有文件的内容合并后,下载到本地文件data3.txt)

执行结果如下图所示:

这里写图片描述

这些基本命令的使用方法都非常简单,这里不做过多介绍,简单举两个例子,如:(1)查询hdfs文件系统根目录下有哪些文件和目录,运行命令:

hdfs dfs–ls /

结果如下图所示:

这里写图片描述

(2)统计HDFS某个路径下的目录个数,文件个数,以及文件总大小,运行命令:

hdfs dfs –count /data

运行结果如下图所示:

这里写图片描述

—————————–目录个数为1 ———————–文件个数为2 ————————————–文件总大小为31字节

HDFS常用管理命令列举如下:

这里写图片描述

管理命令不仅仅上面表格列出的这几个,还包括快照、配额等相关的一些命令,这将在后面进行介绍。下面简单介绍下安全模式相关命令的使用方法,如下图所示。从图中可以看到,当开启安全模式后,在HDFS文件系统中创建aaa目录时,创建失败,原因是安全模式下HDFS文件系统仅为可读的,不能写入。当关闭安全模式后,再在HDFS文件系统中创建aaa目录,便创建成功了。

这里写图片描述

2、使用Java程序操作HDFS

A、准备工作

编写Java程序操作HDFS文件系统,不可避免地需要使用Hadoop提供的相关Jar包,需要使用到的所有Jar包位于如下四个路径:

  • /root/training/hadoop-2.7.3/share/hadoop/common

  • /root/training/hadoop-2.7.3/share/hadoop/common/lib

  • /root/training/hadoop-2.7.3/share/hadoop/hdfs

  • /root/training/hadoop-2.7.3/share/hadoop/hdfs/lib

在Eclipse中创建一个普通的Java Project,命名为OperateHDFS,再创建一个文件夹lib,将上述四个目录下所有的Jar文件都拷贝到lib目录下,然后选中所有这些Jar,添加到编译路径中Add to Build Path。

B、使用Java程序对HDFS文件系统进行操作

通过HDFS文件系统提供的Java API,我们可以完成如下的操作:

① 在HDFS文件系统中创建目录;

② 查看HDF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值