在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.dll和winutils.exe放入$HADOOP_HOME/bin中
11.3 配置Big Data Tools插件
11.4 基本功能使用
这部分不用多说,有手就行🫢。
版权归原作者 何苏三月 所有, 如有侵权,请联系我们删除。