HDFS的Shell操作

目录

一、进程启停管理

(一)一键启停脚本

(二)单进程启停

二、文件系统操作命令

(一)HDFS文件系统基本信息

1.前置介绍

(二)命令介绍

1.新旧版本命令介绍

2.创建文件夹

3.查看指定目录下内容

4.上传文件到HDFS指定目录下

5.查看HDFS文件内容

6.下载HDFS文件

7.拷贝HDFS文件

9.HDFS数据移动操作

10.HDFS数据删除操作

11.HDFS shell其它命令

12.HDFS WEB浏览


一、进程启停管理

(一)一键启停脚本

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

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

执行原理:

1.在执行此脚本的机器上,启动SecondaryNameNode

2.读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,启动NameNode

3.读取workers内容,确认DataNode所在机器,启动全部DataNode

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

执行原理:

1.在执行此脚本的机器上,关闭SecondaryNameNode

2.读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,关闭NameNode

3.读取workers内容,确认DataNode所在机器,关闭全部NameNode

(二)单进程启停

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

1. $HADOOP_HOME/sbin/hadoop-daemon.sh,此脚本可以单独控制所在机器的进程的启停

用法:hadoop-daemon.sh (start|status|stop) (namenode|secondarynamenode|datanode)

2. $HADOOP_HOME/bin/hdfs,此程序也可以用以单独控制所在机器的进程的启停

用法:hdfs --daemon (start|status|stop) (namenode|secondarynamenode|datanode)

二、文件系统操作命令

(一)HDFS文件系统基本信息

1.前置介绍

HDFS文件系统基本信息

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

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

Linux: /usr/local/hello.txt

HDFS: /usr/local/hello.txt

如何区分呢?

Linux:file:///

HDFS:hdfs://namenode:port/

hdfs://就是hdfs文件系统的协议

namenode主机名 和 通讯端口

如上路径:

Linux:file:///usr/local/hello.txt

HDFS:hdfs://hp1:8020/usr/local/hello.txt

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

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

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

(二)命令介绍

1.新旧版本命令介绍

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

hadoop命令(老版本用法),用法:hadoop fs [generic options]

hdfs命令(新版本用法),用法:hdfs dfs [generic options]

两者在文件系统操作上,用法完全一致

用哪个都可以

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

2.创建文件夹

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

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

path 为待创建的目录

-p选项的行为与Linux mkdir -p一致,它会沿着路径创建父目录。

当前作为hadoop用户,没有权限在linu本地根目录下创建文件,所以路径改为home下的hadoop,这样就在linux本地创建了一个叫test的文件夹,因为我们使用的协议头是file:///

如果你要在整个hadoop中创建,应当这样写:

这样就是创建在我们hdfs里面的

协议头也是可以不用写的,像这样:

3.查看指定目录下内容

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

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

path 指定目录路径(你要查看的路径)

-h 人性化显示文件size

-R 递归查看指定目录及其子目录

不带 -R 就只能看到根下面有什么

4.上传文件到HDFS指定目录下

是从Linux到hdfs的过程

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

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

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

上传文件有冲突的话可以直接-f覆盖掉

-p 保留访问和修改时间,所有权和权限。

localsrc 本地文件系统(客户端所在机器)

dst 目标文件系统(HDFS)

在hadoop的home目录下创建一个文件夹

里面写上你想写的内容,然后保存退出

这个时候就可以看到我们home目录下面有我们刚刚创建的txt文件

现在我们要把这个文件上传到整个hadoop系统的根目录下面

我们再上传一个

先新建

可以看到本地有了该文件

此次上传不带协议头,可以发现仍旧上传成功

5.查看HDFS文件内容

hadoop fs -cat <src> ...

hdfs dfs -cat <src> ...

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

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

hadoop fs -cat <src> | more

hdfs dfs -cat <src> | more

真正的生产环境中,数据量非常大,60GB都有可能,此时用cat看内容是输出不完整的,软件中断容易干崩溃。所以对于大文件来说,我们可以借用linux的管道符,给它一个more命令,more是Linux中对内容进行翻页的命令,然后按空格翻页

hadoop fs -cat /test.txt | more

补充一点:set nu 显示行号

6.下载HDFS文件

下载是hdfs向linux去下载

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

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

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

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

下载文件有冲突的话可以直接-f覆盖掉

-p 保留访问和修改时间,所有权和权限。

首先把我们linux本地的东西都删掉,ll 或者ls 查看会发现没有任何东西

再把hdfs的文件下载到linux本地

7.拷贝HDFS文件

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

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

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

 <src>和 <dst>都是hdfs路径,所以这是hdfs对hdfs进行复制

 hadoop fs -cp /test.ext /home/

把test.ext复制到/home里面去

 hadoop fs -cp -f /ayu.ext /home/

-f 即强制覆盖

hadoop fs -cp -f /ayu.ext /home/abc.txt

cp同Linux一样兼具改名的效果,把test.ext复制到/home里面去并改名为abc.txt

8.追加数据到HDFS文件中

hdfs文件系统,还可以完成文件的修改工作。这个修改工作跟linux中的vim不一样,整个hdfs的文件修改只支持两种。第一种是直接删掉,第二种是追加内容。我们整个文件系统,只能够进行删除和追加,不能修改里面某一行或某一个字符。

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

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

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

dst如果文件不存在,将创建该文件。

如果<localSrc>为-,则输入为从标准输入中读取。

9.HDFS数据移动操作

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

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

移动文件到指定文件夹下

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

hadoop fs -mv /test.txt /bigdata/

把test.txt移动到/bigdata里面去

同时具有改名效果:

hadoop fs -mv /test.txt /bigdata/abc.txt

把test.txt移动到/bigdata里面并改名为abc.txt

10.HDFS数据删除操作

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

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

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

删文件 -rm

删文件夹 -rm -r

(此图由于网络超时没能传上来,将就看一下)

-skipTrash 跳过回收站,直接删除

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

<property>

<name>fs.trash.interval</name>

<value>1440</value>

</property>

<property>

<name>fs.trash.checkpoint.interval</name>

<value>120</value>

</property>

配置如下内容:

1440表示回收站的数据能够保留一天

120表示的是分钟,每两小时检查一次,如果超过1440的限制,就彻底清空。

无需重启集群,配置后即刻生效。在哪个机器配置的,在哪个机器执行命令就生效。

回收站默认位置在:/user/用户名(hadoop)/.Trash

11.HDFS shell其它命令

命令官方指导文档

Apache Hadoop 3.3.4 – Overview

12.HDFS WEB浏览

除了使用命令操作HDFS文件系统外,在HDFS的WEB UI上也可以查看HDFS文件系统的内容。

使用WEB浏览操作文件系统,一般会遇到权限问题

这是因为WEB浏览器中是以匿名用户(dr.who)登陆的,其只有只读权限,多数操作是做不了的。

如果需要以特权用户在浏览器中进行操作,需要配置如下内容到core-site.xml并重启集群

  <property>

    <name>hadoop.http.staticuser.user</name>

    <value>hadoop</value>

  </property>

但是,不推荐这样做

HDFS WEBUI,只读权限挺好的,简单浏览即可

如果给与高权限,会有很大的安全问题,造成数据泄露或丢失

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/311304.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

秋招算法刷题7

20240410 1.接雨水 方法一&#xff0c;动态规划&#xff0c;时间复杂度O&#xff08;n^2&#xff09;&#xff0c;空间复杂度O&#xff08;n&#xff09; public int trap(int[] height) { int nheight.length; if(n0){ return 0; } …

VR紧急情况模拟|V R体验中心加盟|元宇宙文旅

通过VR技术实现紧急情况模拟&#xff0c;提升安全应急能力&#xff01; 简介&#xff1a;面对突发紧急情况&#xff0c;如火灾、地震、交通事故等&#xff0c;正确的反应和应对能够有效减少伤害和损失。为了提高人们在紧急情况下的应急能力&#xff0c;我们借助先进的虚拟现实…

linux项目部署 解决Nginx浏览器刷新出现404,但是不刷新是能够正常请求成功

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 提示&#xff1a;部署成功&#xff0c;访问登录页面登录也成功&#xff0c;强制刷新浏览器报404问题 进入到系统 刷新页面 解决流程 参考如图&#xff0c;再下面添加这条配置信息 location / {try_file…

Qt---控件的基本属性

文章目录 enabled(控件可用状态)geometry(位置和尺寸)简单恶搞程序 windowIcon(顶层 widget 窗口图标)使用 qrc 机制 windowOpacity(窗口的不透明值)cursor(当鼠标悬停空间上的形状)自定义鼠标图标 toolTip(鼠标悬停时的提示)focusPolicy(控件获取焦点的策略)styleSheet(通过CS…

算法练习第15天|226.翻转二叉树

226.翻转二叉树 力扣链接https://leetcode.cn/problems/invert-binary-tree/description/ 题目描述&#xff1a; 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&am…

EDI是什么:EDI系统功能介绍

EDI全称Electronic Data Interchange&#xff0c;中文名称是电子数据交换&#xff0c;也被称为“无纸化贸易”。EDI实现企业间&#xff08;B2B&#xff09;自动化通信&#xff0c;帮助贸易伙伴和组织完成更多的工作、加快物流时间并消除人为错误。 目前国内企业实现EDI通信大多…

智慧公厕系统厂家,打造创新性智慧公厕的窍门

智慧公厕系统是利用物联网、大数据、云计算、网络通信、自动化控制等技术&#xff0c;监测公厕内部多个方面的变化&#xff0c;从而实现公厕的智能化管理。通过智慧公厕云管理平台&#xff0c;可以实现厕位空余智能引导、环境监测、资源消耗监测、安全防范管理等多种功能&#…

创建spring项目

新建spring项目时&#xff0c;而Spring3.X版本不支持JDK8&#xff0c;JDK11&#xff0c;最低支持JDK17。当JDK版本低于17时&#xff0c;选择2.x的版本。无法选择2.x的版本&#xff0c;可从pom.xml处修改。

mybatis后,将代码生成器生成的代码合并到原有的项目中去

【明白了解&#xff1a; 1&#xff09;接口只定义方法&#xff0c;&#xff08;告诉你要做什么&#xff09; 2&#xff09;具体的逻辑都写在Impl 实现类里】 3&#xff09;【不是问题 &#xff0c; idea2023对界面进行了优化&#xff0c;变好看了 】 一、鱼皮操作 1.1拖拽…

<计算机网络自顶向下> CDN

视频服务挑战 规模性异构性&#xff1a;不同用户有不同的能力&#xff08;比如有线接入和移动用户&#xff1b;贷款丰富和受限用户&#xff09;解决方法是&#xff1a;分布式的应用层面的基础设施CDN 多媒体&#xff1a;视频 视频是固定速度显示的一系列图像的序列&#xff…

优惠券布局的最终方案------css属性mask

先贴图&#xff1a; 以上这些都是通过mask去实现出来&#xff1a; <!DOCTYPE html><html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&g…

如何将PHP的Webman框架打包成二进制文件运行

看了看webman的官方文档&#xff0c;发现居然还能打包为二进制&#xff0c;这样太厉害了吧&#xff01; 先执行这个 composer require webman/console ^1.2.24 安装这个console的包&#xff0c;然后 执行 php webman build:bin 8.1 结果谁想到它报错提示&#xff1a; 好…

清明三天,用Python赚了4万?

每年4月&#xff0c;是Python圈子里接私活的旺季&#xff0c;特别是在节假日这种数据暴增的时间段&#xff0c;爬虫采集、逆向破解类的私活订单会集中爆发&#xff0c;量大价高。几乎所有的圈内人都在趁着旺季接私活。 正好&#xff0c;我昨天就做了一单爬虫逆向私活&#xff…

自动化测试-如何优雅实现方法的依赖

在复杂的测试场景中&#xff0c;常常会存在用例依赖&#xff0c;以一个接口自动化平台为例&#xff0c;依赖关系&#xff1a; 创建用例 --> 创建模块 --> 创建项目 --> 登录。 用例依赖的问题 • 用例的依赖对于的执行顺序有严格的要求&#xff0c;比如让被依赖的方…

如何使用Fiddler做弱网测试?

1、打开Fiddler工具&#xff0c;点击Rules-Customize Rules 2、打开了一个配置文件&#xff0c;ctrlF搜索Delay sends by 300ms per KB uploaded&#xff0c; 3、修改发送延迟和下载延迟的时间&#xff0c;可以修改的大一些&#xff0c;越大延迟越久&#xff0c;修改后保存 4、…

(GPT-PLUS,RawChat,choose-car,Kimi,智谱清言)分享5个好用的ChatGPT

目录 1、GPT-PLUS拼车 2、RawChat公益站点 3、GPT-PLUS共享 4、choose-car 5、AI提示器 6、Kimi.ai - 帮你看更大的世界 7、智谱清言 1、GPT-PLUS拼车 https://home.topai.vip/list GPT-PLUS拼车 TOPAI宇宙 | Link3 2、RawChat公益站点 https://sharedchat.cn/ 3、GPT-PLUS共享…

我用了6年的 SpringBoot 项目部署方案,稳得一批!

本篇和大家分享的是springboot打包并结合shell脚本命令部署&#xff0c;重点在分享一个shell程序启动工具&#xff0c;希望能便利工作&#xff1b; profiles指定不同环境的配置 maven-assembly-plugin打发布压缩包 分享shenniu_publish.sh程序启动工具 linux上使用shenniu_pub…

【MATLAB源码-第54期】基于白鲸优化算法(WOA)和遗传算法(GA)的栅格地图路径规划最短路径和适应度曲线对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1.白鲸优化算法&#xff08;WOA&#xff09;&#xff1a; 白鲸优化算法是一种受白鲸捕食行为启发的优化算法。该算法模拟了白鲸群体捕食的策略和行为&#xff0c;用以寻找问题的最优解。其基本思想主要包括以下几点&#xff…

Python统计分析库之statsmodels使用详解

概要 Python statsmodels是一个强大的统计分析库,提供了丰富的统计模型和数据处理功能,可用于数据分析、预测建模等多个领域。本文将介绍statsmodels库的安装、特性、基本功能、高级功能、实际应用场景等方面。 安装 安装statsmodels库非常简单,可以使用pip命令进行安装:…

4.配置USART串口实现printf打印

通过TTL转USB实现电脑和单片机连通,是我们调试必不可少的工具 查看原理图,使用USART1,它们的TX和RX分别在PA9和PA10 新建Usart.c存放串口模块的初始化 这段代码是复制了正点原子的工程,添加到前面 #if SYSTEM_SUPPORT_OS #include "includes.h" //ucos 使用 …