HDFS的Shell操作

1、进程启停管理

1.1、一键启停脚本

Hadoop HDFS组件内置了HDFS集群的一键启停脚本。

1.1.1、一键启动HDFS集群

$HADOOP_HOME/sbin/start-dfs.sh,一键启动HDFS集群

powershell 复制代码
start-dfs.sh

执行原理:

  • 在执行此脚本的机器上,启动SecondaryNameNode。
  • 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,启动NameNode。
  • 读取workers内容,确认DataNode所在机器,启动全部DataNode。
1.1.2、一键关闭HDFS集群

$HADOOP_HOME/sbin/stop-dfs.sh,一键关闭HDFS集群

powershell 复制代码
stop-dfs.sh

执行原理:

  • 在执行此脚本的机器上,关闭SecondaryNameNode。
  • 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,关闭NameNode。
  • 读取workers内容,确认DataNode所在机器,关闭全部NameNode。

1.2、单进程启停

除了一键启停外,也可以单独控制进程的启停。

  1. $HADOOP_HOME/sbin/hadoop-daemon.sh,此脚本可以单独控制所在机器的进程的启停
    用法:hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)
powershell 复制代码
hadoop-daemon.sh start namenode
  1. $HADOOP_HOME/bin/hdfs,此程序也可以用以单独控制所在机器的进程的启停
    用法:hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)
powershell 复制代码
hdfs --daemon start namenode

2、文件系统操作命令

2.1、HDFS文件系统基本信息

HDFS作为分布式存储的文件系统,有其对数据的路径表达方式。

HDFS同Linux系统一样,均是以/作为根目录的组织形式。

  • Linux:file:///usr/local/hello.txt
  • HDFS:hdfs://node1:8020/usr/local/hello.txt

协议头file:/// 或 hdfs://node1:8020/可以省略

需要提供Linux路径的参数,会自动识别为file://

需要提供HDFS路径的参数,会自动识别为hdfs://

除非你明确需要写或不写会有BUG,否则一般不用写协议头

.

2.2、命令介绍

关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系。

  • hadoop命令(老版本用法),用法:hadoop fs generic options
  • hdfs命令(新版本用法),用法:hdfs dfs generic options

两者在文件系统操作上,用法完全一致,用哪个都可以。

某些特殊操作需要选择hadoop命令或hdfs命令。

2.3、创建文件夹

2.3.1、旧命令

hadoop fs -mkdir -p < path> ...

  • path 为待创建的目录
  • -p 选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。
powershell 复制代码
hadoop fs -mkdir -p /it/bigdata
2.3.2、新命令

hdfs dfs -mkdir -p < path> ...

  • path 为待创建的目录
  • -p 选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。
powershell 复制代码
hdfs dfs -mkdir -p /it/hadoop

2.4、查看指定目录下内容

2.4.1、旧命令

hadoop fs -ls -h -R \< path\> ...

  • path 指定目录路径
  • -h 人性化显示文件size
  • -R 递归查看指定目录及其子目录

查看/目录下的内容

powershell 复制代码
 hadoop fs -ls /
2.4.2、新命令

hdfs dfs -ls -h -R \< path\> ...

  • path 指定目录路径
  • -h 人性化显示文件size
  • -R 递归查看指定目录及其子目录

递归查看/下的内容

powershell 复制代码
hdfs dfs -ls -R /

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

2.5.1、旧命令

hadoop fs -put -f -p < localsrc> ... < dst>

  • -f 覆盖目标文件(已存在下)
  • -p 保留访问和修改时间,所有权和权限。
  • localsrc 本地文件系统(客户端所在机器)
  • dst 目标文件系统(HDFS)

新建一个文件,复制到/it目录下

powershell 复制代码
hadoop fs -put text.txt /it
2.5.2、新命令

hdfs dfs -put -f -p < localsrc> ... < dst>

  • -f 覆盖目标文件(已存在下)
  • -p 保留访问和修改时间,所有权和权限。
  • localsrc 本地文件系统(客户端所在机器)
  • dst 目标文件系统(HDFS)

如果存在,直接覆盖

powershell 复制代码
hdfs dfs -put -f text.txt /it

2.6、查看HDFS文件内容

2.6.1、旧命令

hadoop fs -cat < src> ...

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

powershell 复制代码
hadoop fs -cat /it/text.txt
2.6.2、新命令

hdfs dfs -cat < src> ...

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

powershell 复制代码
hdfs dfs -cat /it/text.txt
2.6.3、大文件配合管道命令

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

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

按空格下一页

powershell 复制代码
hdfs dfs -cat /it/text2.txt | more

2.7、下载HDFS文件

hadoop fs -get -f -p < src> ... < localdst>

hdfs dfs -get -f -p < src> ... < localdst>

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

  • -f 覆盖目标文件(已存在下)
  • -p 保留访问和修改时间,所有权和权限。

下载text.txt文件到当前的本地目录

powershell 复制代码
hdfs dfs -get /it/text.txt ./

2.8、拷贝HDFS文件

hadoop fs -cp -f < src> ... < dst>

hdfs dfs -cp -f < src> ... < dst>

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

  • 拷贝HDFS文件到HDFS目录

powershell 复制代码
hdfs dfs -cp /it/text.txt /it/test
  • 拷贝并重命名
powershell 复制代码
hdfs dfs -cp /it/text.txt /it/test/text11.txt

2.9、追加数据到HDFS文件中

hadoop fs -appendToFile < localsrc> ... < dst>

hdfs dfs -appendToFile < localsrc> ... < dst>

将所有给定本地文件的内容追加到给定dst文件。

  • dst如果文件不存在,将创建该文件。
  • 如果< localSrc>为-,则输入为从标准输入中读取。
powershell 复制代码
hdfs dfs -appendToFile 2.txt 3.txt /it/1.txt

2.10、HDFS数据移动操作

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

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

移动文件到指定文件夹下。

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

powershell 复制代码
 hdfs dfs -mv /it/1.txt /it/test

2.11、HDFS数据删除操作

hadoop fs -rm -r -skipTrash URI URI ...

hdfs dfs -rm -r -skipTrash URI URI ...

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

  • -skipTrash 跳过回收站,直接删除。
powershell 复制代码
hdfs dfs -rm -r /it/text2.txt
开启回收站

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

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

2.12、其他命令:

官方指导文档:https://hadoop.apache.org/docs/r3.3.4/hadoop-project-dist/hadoop-common/FileSystemShell.html

3、hdfs客户端

Big Data Tools插件

在Jetbrains的产品中,均可以安装插件,其中:Big Data Tools插件可以帮助我们方便的操作HDFS,比如

  • IntelliJ IDEA(Java IDE)
  • PyCharm(Python IDE)
  • DataGrip(SQL IDE)

均可以支持Bigdata Tool插件。

3.1、idea安装Big Data Tools插件
3.2、配置Windows

需要对Windows系统做一些基础设置,配合插件使用

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

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

下载

将hadoop.dll和winutils.exe放入$HADOOP_HOME/bin中

3.3、打开插件链接

3.4、可以进行文件的一些操作


结束!!!!!!

hy:34


复制代码
						我们只需要活好今天,因为永恒由每个今天构成,每个今天都可以触摸永恒。 
相关推荐
marvelyu14 小时前
每天10分钟学会OceanBase系列(Day 20):跨机房容灾实战——构建多数据中心高可用架构
java·大数据·数据库
ZCBUS实时计算14 小时前
金融证券实时数仓建设实践:轻量化实时计算平台落地,实现交易数据端到端秒级处理
大数据·数据库·数据仓库·金融·flink·dba·etl
烟雨江南78515 小时前
2026汽车制造与新能源整车柔性产线Agentic-Workflow白皮书:跨APS_MES_ERP多智能体动态排产与装配容错实战
大数据·网络·人工智能·自动化·ai客服·企业agent
zhexunnb17 小时前
专业SAP ERP实施,赋能制造企业构建一体化数字内核
大数据
明源云18 小时前
租赁管理系统软件推荐:如何选到真正好用的不动产租赁管理软件
大数据·人工智能·架构
Meya112719 小时前
机柜可视化不靠复杂坐标!三参数轻量化 U 位管理系统落地思路
大数据·人工智能
行思理19 小时前
OPPO PUSH新消息分类,新手教程
大数据·人工智能·推送
发量惊人的中年网工19 小时前
什么是AI基础设施出海?企业如何选择全链路闭环的海外算力部署方案
大数据·出海·ai基础设施
无忧智库19 小时前
企业数字化底座与数字化转型方案拆解:从贴源数据区到管理分析平台的完整落地路径(PPT)
大数据·架构
无忧智库19 小时前
烟草物流企业数字化转型规划方案拆解:从战略绩效到物流作业的全链条信息化设计(PPT)
大数据·架构