HDFS的Shell操作

2023-09-16 14:04:47

1、进程启停管理

1.1、一键启停脚本

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

1.1.1、一键启动HDFS集群

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

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集群

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)
hadoop-daemon.sh start namenode
  1. $HADOOP_HOME/bin/hdfs,此程序也可以用以单独控制所在机器的进程的启停
    用法:hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)
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一致,它会沿着路径创建父目录。
hadoop fs -mkdir -p /it/bigdata

在这里插入图片描述

2.3.2、新命令

hdfs dfs -mkdir [-p] < path> …

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

在这里插入图片描述

2.4、查看指定目录下内容

2.4.1、旧命令

hadoop fs -ls [-h] [-R] [< path> …]

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

查看/目录下的内容

 hadoop fs -ls /

在这里插入图片描述

2.4.2、新命令

hdfs dfs -ls [-h] [-R] [< path> …]

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

递归查看/下的内容

hdfs dfs -ls -R /

在这里插入图片描述

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

2.5.1、旧命令

hadoop fs -put [-f] [-p] < localsrc> … < dst>

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

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

hadoop fs -put text.txt /it

在这里插入图片描述

2.5.2、新命令

hdfs dfs -put [-f] [-p] < localsrc> … < dst>

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

如果存在,直接覆盖

hdfs dfs -put -f text.txt /it

在这里插入图片描述

2.6、查看HDFS文件内容

2.6.1、旧命令

hadoop fs -cat < src> …
读取指定文件全部内容,显示在标准输出控制台。

hadoop fs -cat /it/text.txt

在这里插入图片描述

2.6.2、新命令

hdfs dfs -cat < src> …
读取指定文件全部内容,显示在标准输出控制台。

hdfs dfs -cat /it/text.txt

在这里插入图片描述

2.6.3、大文件配合管道命令

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

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

按空格下一页

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文件到当前的本地目录

hdfs dfs -get /it/text.txt ./

在这里插入图片描述

2.8、拷贝HDFS文件

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

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

  • 拷贝HDFS文件到HDFS目录

hdfs dfs -cp /it/text.txt /it/test

在这里插入图片描述

  • 拷贝并重命名
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>为-,则输入为从标准输入中读取。
hdfs dfs -appendToFile 2.txt 3.txt /it/1.txt

在这里插入图片描述在这里插入图片描述

2.10、HDFS数据移动操作

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

移动文件到指定文件夹下。
可以使用该命令移动数据,重命名文件的名称。

 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 跳过回收站,直接删除。
hdfs dfs -rm -r /it/text2.txt

在这里插入图片描述

开启回收站

回收站功能默认关闭,如果要开启需要在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

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(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中
在这里插入图片描述

3.3、打开插件链接

在这里插入图片描述在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

结束!!!!!!
hy:34


						我们只需要活好今天,因为永恒由每个今天构成,每个今天都可以触摸永恒。 
更多推荐

【MySQL】MySQL 数据库锁知识 讲解

MySQL数据库锁知识讲解1.为什么需要加锁在日常生活中,如果你心情不好想静静,不想被比别人打扰,你就可以把自己关进房间里,并且反锁。这就是生活中的加锁。同理,对于MySQL数据库来说的话,一般的对象都是一个事务一个事务来说的。所以,如果一个事务内,一个SQL正在更新某条记录,我们肯定不想它被别的事务影响到嘛?因此,数

PG大小版本升级步骤

版本介绍当前PostgreSQL版本号由主要版本号和小版本号组成。例如,在版本号10.1中,10是主要版本号,1是小要版本号,这意味着这将是主要版本10的第一个小版本。对于PostgreSQL版本10.0之前的版本,版本号由三个数字组成,例如9.5.3。在这些情况下,主要版本由版本号的前两位数组组成,例如9.5,而小版

分享一个基于uniapp+springboot技术开发的校园失物招领小程序(源码、lw、调试)

💕💕作者:计算机源码社💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流!💕💕学习资料、程序开发、技术解答、文档报告💕💕如需要源码,可以扫取文章下方二维码联系咨询💕💕JavaWeb项目💕💕微信小程序项目💕💕

数据结构与算法(五)--链表概念以及向链表添加元素

一、前言今天我们学习另一种非常重要的线性数据结构–链表,之前我们已经学习了三种线性数据结构,分别是动态数组,栈和队列。其中队列我们额外学习了队列的另一种实现方式–循环队列。其实我们自己实现过前三个数据结构就知道,它们底层均依托静态数组,靠resize解决固定容量问题。而链表和前三种均不同,它是真正的动态数据结构。学好链

SpingBoot:整合Mybatis-plus+Druid+mysql

SpingBoot:整合Mybatis-plus+Druid一、特别说明二、创建springboot新工程三、配置3.1配置pom.xml文件3.2配置数据源和durid连接池3.3编写拦截器配置类四、自动生成代码五、测试六、附件-mysql数据库表本文参考链接:[Java]SpringBoot集成MyBatisPlu

有没有普通人可以做的项目?分享几个项目适合普通人做的!

当谈到副业时,我们通常会想到能够轻松实施的兼职方式,并且希望通过这些副业增加我们的收入。那么,以下是我推荐的几种副业,这些副业不仅有良好的收入潜力,而且在执行过程中也很有趣。让我们一起看看吧!第一种:闲鱼卖货对于闲鱼的操作,之前已经说过,闲鱼是目前最大的二手交易平台,另外一个平台就是腾讯合作的转转,转转上面主要是以卖手

gRpc入门和springboot整合

gRpc入门和springboot整合一、简介1、gprc概念gRpc是有google开源的一个高性能的pc框架,Stubbygoogle内部的rpc,2015年正式开源,云原生时代一个RPC标准。tips:异构系统,就是不同编程语言的系统。2、grpc核心设计思路grpc核心设计思路1.网络通信-->grpc自己封装

激光雷达在ADAS测试中的应用与方案

在科技高速发展的今天,汽车智能化已是必然的趋势,且自动驾驶汽车的研究也在世界范围内进行得如火如荼。而在ADAS测试与开发中,激光雷达以其高性能和高精度占据着非常重要的地位,它是ADAS测试与开发中不可缺少的组成。一激光雷达介绍|激光雷达原理1.全称激光雷达(英文:Lidar),英文全称为LaserDetectingan

智能合约漏洞案例,Euler Finance 1.96 亿美元闪电贷漏洞分析

智能合约漏洞案例,EulerFinance1.96亿美元闪电贷漏洞分析2023年3月13日上午08:56:35+UTC,DeFi借贷协议EulerFinance遭遇闪电贷攻击。EulerFinance是一种作为无许可借贷协议运行的协议。其主要目标是为用户提供各种加密货币的借贷便利。这家总部位于英国的科技初创公司利用数学

学习jQuery库的第一天

简介什么是jQuery?jQuery是一个广泛使用的JavaScript库。它简化了网页开发中常见的许多任务,例如HTML文档遍历、操作HTML元素、处理事件、动画效果、Ajax网络请求等。通过使用jQuery,开发人员可以更加高效地编写跨浏览器兼容的JavaScript代码。jQuery提供了简洁明了的API,使得操

肖sir__mysql之多表练习题__007

已知2张基本表:部门表:dept(部门号,部门名称);员工表emp(员工号,员工姓名,年龄,入职时间,收入,部门号)1:dept表中有4条记录:部门号(dept1)部门名称(dept_name)101财务102销售103IT技术104行政2:emp表中有6条记录:员工号员工姓名年龄入职时间收入部门号对应字段名称为:(s

热文推荐