李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
大数据
正文
02.HDFS常用命令
Leefs
2021-09-14 PM
1754℃
0条
# 02.HDFS常用命令 ### 前言 在通过hdfs命令行操作时,我们通常会用到`hadoop fs`、`hadoop dfs`、或者是`hdfs dfs`,但是很少在意三者的区别。 + `hadoop fs`:该命令可以用于其他文件系统,不止是hdfs文件系统内,使用范围更加广泛 + `hadoop dfs`:专门针对hdfs分布式文件系统 + `hdfs dfs`:和上方命令作用相同,当使用`hadoop dfs`时内部会被转为`hdfs dfs`命令 **总结:单从操作HDFS来说,使用上面三种的命令作用都相同。** 本篇使用的是`hadoop fs`来完成命令行操作 ### 一、HDFS命令实操 #### 1.1 上传 (1)`-moveFromLocal`:从本地剪切粘贴到HDFS ```bash # 将llc.txt文件剪切粘贴到hdfs的/data目录下 [root@host102 lilinchao]# hadoop fs -moveFromLocal ./llc.txt /data ``` (2)`-copyFromLocal`:从本地文件系统中拷贝文件到 HDFS 路径去 ```shell # 将word.csv文件拷贝到HDFS的/data目录下 [root@host102 lilinchao]# hadoop fs -copyFromLocal word.csv /data ``` (3)`-put`:等同于 `copyFromLocal`,生产环境更习惯用 put ```shell # 将user.json文件拷贝到HDFS的/data目录下 [root@host102 lilinchao]# hadoop fs -put ./user.json /data ``` (4)`-appendToFile`:追加一个文件到已经存在的文件末尾 ```shell # 将word.csv文件追加到HDFS中/data/llc.txt文件末尾 [root@host102 lilinchao]# hadoop fs -appendToFile ./word.csv /data/llc.txt ``` #### 1.2 下载 (1)`-copyToLocal`:从HDFS拷贝到本地 ```shell # 将HDFS中/data/llc.txt文件拷贝到本地当前目录下 [root@host102 lilinchao]# hadoop fs -copyToLocal /data/llc.txt ./ ``` (2)`-get`:等同于 `copyToLocal`,生产环境更习惯用 get ```shell # 将HDFS中/data/llc.txt文件拷贝到本地当前目录下并重新命名为llc2.txt [root@host102 lilinchao]# hadoop fs -get /data/llc.txt ./llc2.txt ``` *说明:在进行拷贝操作时支持文件名称修改。* #### 1.3 HDFS直接操作 (1)`-ls`:显示目录信息 ```shell # 查询HDFS中/data下的所有目录信息 [root@host102 lilinchao]# hadoop fs -ls /data ``` (2)`-cat`:显示文件内容 ```shell # 查询HDFS中/data/llc.txt的文件内容 [root@host102 lilinchao]# hadoop fs -cat /data/llc.txt ``` (3)权限修改相关命令 + `chgrp`:改变文件所属的组 + `chmod`:改变文件的权限 + `chown`:改变文件的拥有者 ```shell # 修改/data/llc/llc.txt文件的权限 [root@host172 lilinchao]# hadoop fs -chmod 666 /data/llc/llc.txt # 修改/data/llc/word.csv文件的所有者[Owner]和所有者组[Group]都为root [root@host172 lilinchao]# hadoop fs -chown root:root /data/llc/word.csv # 修改/data/llc/word.csv文件的所有者组[Group]为supergroup [root@host172 lilinchao]# hadoop fs -chgrp supergroup /data/llc/word.csv ``` *说明:使用-R将使改变在目录结构下递归进行。命令的使用者必须是超级用户。* (4)`-mkdir`:创建路径 ```shell # HDFS中创建/data/llc目录 [root@host102 lilinchao]# hadoop fs -mkdir /data/llc ``` (5)`-cp`:从 HDFS 的一个路径拷贝到 HDFS 的另一个路径 ```shell # 将HDFS中/data/llc.txt文件拷贝到/data/llc文件夹下 [root@host102 lilinchao]# hadoop fs -cp /data/llc.txt /data/llc ``` (6)`-mv`:在 HDFS 目录中移动文件 ```shell # 将HDFS中/data/word.csv文件移动到/data/llc目录 [root@host102 lilinchao]# hadoop fs -mv /data/word.csv /data/llc ``` (7)`-tail`:显示一个文件的末尾 1kb 的数据 ```shell # 显示/data/llc/word.csv文件末尾1kb的数据 [root@host172 lilinchao]# hadoop fs -tail /data/llc/word.csv ``` (8)`-rm`:删除文件或文件夹 ```shell # 将HDFS中/data/llc.txt文件删除 [root@host172 lilinchao]# hadoop fs -rm /data/llc.txt ``` (9)`-rm -r`:递归删除目录及目录里面内容 ```shell # HDFS删除/data/张三文件夹 [root@host172 lilinchao]# hadoop fs -rm -r /data/张三 ``` (10)`-du`:统计文件夹的大小信息 ```shell # HDFS中,统计/data/llc文件夹下文件的大小信息 [root@host172 lilinchao]# hadoop fs -du /data/llc 72 144 /data/llc/llc.txt 47 94 /data/llc/word.csv ``` *说明:72和47表示文件大小,144和94分别表示`72*2`和`47*2`个副本。* (11)`-setrep`:设置 HDFS 中文件的副本数量 ```shell # 将/data/llc/llc.txt文件的副本数改成10个 [root@host172 lilinchao]# hadoop fs -setrep 10 /data/llc/llc.txt ``` 这里设置的副本数只是记录在 `NameNode` 的元数据中,是否真的会有这么多副本,还得看 `DataNode` 的数量。因为目前只有 3 台设备,最多也就 3 个副本,只有节点数的增加到 10 台时,副本数才能达到 10。
标签:
Hadoop
,
HDFS
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://lilinchao.com/archives/1486.html
上一篇
01.HDFS概述
下一篇
03.HDFS读写流程
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
散列
正则表达式
Jquery
链表
Spark
Redis
nginx
MyBatis-Plus
工具
Spark Streaming
SpringCloudAlibaba
Golang
并发线程
Yarn
哈希表
Jenkins
机器学习
HDFS
前端
随笔
队列
Map
ClickHouse
Kafka
Sentinel
Netty
MyBatis
Ubuntu
Eclipse
Azkaban
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭