黑马大数据学习笔记2-HDFS基本操作

news2024/11/25 18:32:27

目录

  • 进程启停管理
    • 一键启停脚本
    • 单进程启停
  • 文件系统操作命令
    • HDFS文件系统基本信息
    • 介绍
    • 创建文件夹
    • 查看指定目录下内容
    • 上传文件到HDFS指定目录
    • 查看HDFS文件内容
    • 下载HDFS文件
    • 拷贝HDFS文件
    • 追加数据到HDFS文件
    • HDFS数据移动
    • HDFS数据删除
    • 其他命令
    • HDFS WEB浏览
  • HDFS权限
    • 修改权限

https://www.bilibili.com/video/BV1WY4y197g7?p=26
切换到hadoop用户

su - hadoop

进程启停管理

一键启停脚本

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

  • $HADOOP_HOME/sbin/start-dfs.sh,一键启动HDFS集群
    执行原理:
    • 在执行此脚本的机器上,启动SecondaryNameNode
    • 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,启动NameNode
    • 读取workers内容,确认DataNode所在机器,启动全部DataNode
start-dfs.sh
  • $HADOOP_HOME/sbin/stop-dfs.sh,一键关闭HDFS集群
    执行原理:
    • 在执行此脚本的机器上,关闭SecondaryNameNode
    • 读取core-site.xml内容(fs.defaultFS项),确认NameNode所在机器,关闭NameNode
    • 读取workers内容,确认DataNode所在机器,关闭全部NameNode
stop-dfs.sh

单进程启停

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

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

start启动、status状态、stop停止

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

文件系统操作命令

HDFS文件系统基本信息

  • 如何区分呢?
    Linux:file:///
    HDFS:hdfs://namenode:port/
  • 如上路径:
    Linux:file:///usr/local/hello.txt
    HDFS:hdfs://node1:8020/usr/local/hello.txt

协议头file:/// 或 hdfs://node1:8020/可以省略
需要提供Linux路径的参数,会自动识别为file://
需要提供HDFS路径的参数,会自动识别为hdfs://
除非你明确需要写或不写会有BUG,否则一般不用写协议头

介绍

关于HDFS文件系统的操作命令,Hadoop提供了2套命令体系
hadoop命令(老版本用法),用法:hadoop fs [generic options]

hadoop fs

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

hdfs dfs

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

创建文件夹

用法:

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

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

先启动Hadoop集群

start-dfs.sh

创建Linux系统的文件

hadoop fs -mkdir -p file:///home/hadoop/test1
ls

创建HDFS文件系统的文件

hadoop fs -mkdir -p hdfs://node1:8020/test/test2

不写协议头自动识别为需要创建的是HDFS文件系统的文件

hadoop fs -mkdir -p /hello/world/test3

查看指定目录下内容

用法:

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

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

hadoop fs -ls /
hadoop fs -ls /hello
hadoop fs -ls /hello/world
hadoop fs -ls /test
hadoop fs -ls -R /

在这里插入图片描述

上传文件到HDFS指定目录

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

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

hadoop fs -put file:///home/hadoop/test.txt hdfs://node1:8020/
hadoop fs -put ./test2.txt /

协议头可写可不写,会自动识别。

在这里插入图片描述

查看HDFS文件内容

用法:

hadoop fs -cat <src> ... 
hdfs dfs -cat <src> ...

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

hadoop fs -cat /test.txt

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

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

把test2.txt的内容追加到test.txt,多执行几次,test.txt文件变得很大。

cat test2.txt >> test.txt

覆盖原文件上传

hadoop fs -put -f ./test.txt /

翻页查看,按空格键查看下一页

hadoop fs -cat /test.txt | more

在这里插入图片描述

在这里插入图片描述

下载HDFS文件

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

下载文件到本地文件系统指定目录,localdst必须是目录
-f 覆盖目标文件(已存在下)
-p 保留访问和修改时间,所有权和权限。

hadoop fs -get /test2.txt .

在这里插入图片描述

拷贝HDFS文件

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

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

两个路径都是HDFS文件系统的

hadoop fs -cp /test2.txt /hello/

复制过去,同时改名

hadoop fs -cp /test2.txt /hello/a.txt

在这里插入图片描述

追加数据到HDFS文件

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

将所有给定本地文件的内容追加到给定dst文件。
dst如果文件不存在,将创建该文件。
如果为-,则输入为从标准输入中读取。

hadoop fs -appendToFile append.txt /test2.txt

在这里插入图片描述
报错了,修改配置文件。

cd /export/server/hadoop/etc/hadoop
vim hdfs-site.xml

添加以下内容

<property>
        <name>dfs.support.append</name>
        <value>true</value>
</property>

<property>
        <name>dfs.client.block.write.replace-datanode-on-failure.policy</name>
        <value>NEVER</value>
</property>
<property>
        <name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
        <value>true</value>
</property>

再次执行命令

hadoop fs -appendToFile append.txt /test2.txt
hadoop fs -cat /test2.txt

在这里插入图片描述

HDFS数据移动

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

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

hadoop fs -mv /test.txt /test/

移动文件同时改名

hadoop fs -mv /test2.txt /test/a.txt

在这里插入图片描述

HDFS数据删除

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

删除指定路径的文件或文件夹
-skipTrash 跳过回收站,直接删除

hadoop fs -rm -r /hello

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

vim /export/server/hadoop/etc/hadoop/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
在这里插入图片描述

其他命令

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

HDFS WEB浏览

http://node1:9870/
除了使用命令操作HDFS文件系统外,在HDFS的WEB UI上也可以查看HDFS文件系统的内容。
在这里插入图片描述

在这里插入图片描述

使用WEB浏览操作文件系统,一般会遇到权限问题
在这里插入图片描述
这是因为WEB浏览器中是以匿名用户(dr.who)登陆的,其只有只读权限,多数操作是做不了的。
如果需要以特权用户在浏览器中进行操作,需要配置如下内容到core-site.xml并重启集群。

但是,不推荐这样做
HDFS WEBUI,只读权限挺好的,简单浏览即可。
如果给与高权限,会有很大的安全问题,造成数据泄露或丢失。

HDFS权限

修改权限

在HDFS中,可以使用和Linux一样的授权语句,即:chown和chmod
修改所属用户和组:
hadoop fs -chown [-R] root:root /xxx.txt
hdfs dfs -chown [-R] root:root /xxx.txt
修改权限
hadoop fs -chmod [-R] 777 /xxx.txt
hdfs dfs -chmod [-R] 777 /xxx.txt

hadoop fs -chown root:supergroup /test.txt
hadoop fs -chmod 777 /test.txt

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何设计一个注册中心?(2)实现注册接口

1. 创建SpringBoot工程 创建父工程及三个子模块&#xff0c;其中一个模块作为注册中心&#xff0c;另外两个作为服务提供者。 pom <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns…

OpenCV for Python 入坑第三天 :图片处理(2)

上一篇博客我们了解了图像在OpenCV中的保存方式。并且我们自己上手创建了一张灰度图像和一张彩色图像。除此之外&#xff0c;我们还了解到了彩色图像通道在OpenCV中和我们日常所了解的不一样&#xff0c;是通过BGR的顺序进行编码的。咱们一定要记清楚哦~ 那么今天&#xff0c;我…

tinymce编辑器导入docx、doc格式Word文档完整版

看此文章之前需要注意一点 在前端使用导入Word文档并自动解析成html再插入到tinymce编辑器中&#xff0c;在这里我使用的是mammoth.js识别Word内容&#xff0c;并set到编辑器中&#xff0c;使用mammoth只可解析.docx格式的Word&#xff0c;目前的mammoth不支持.doc格式&#x…

Ghost Buster Pro for mac(快速清理卸载的应用残存文件)

Ghost Buster Pro for mac可从您已卸载的应用程序中查找并删除文件。该应用程序速度快如闪电&#xff0c;可立即释放内存。 许多应用程序都安装在计算机上&#xff0c;但它们通常只会在您的计算机上停留很短的时间。每个应用程序都会创建文件&#xff0c;但删除应用程序不会删…

01 - 如何制定性能调优标准?

1、为什么要做性能调优&#xff1f; 一款线上产品如果没有经过性能测试&#xff0c;那它就好比是一颗定时炸弹&#xff0c;你不知道它什么时候会出现问题&#xff0c;你也不清楚它能承受的极限在哪儿。 有些性能问题是时间累积慢慢产生的&#xff0c;到了一定时间自然就爆炸了…

使用dhtmlx-gantt甘特图插件定制预约表【实战】

示例传送门 定制预约表展示 一、安装 npm i dhtmlx-gantt二、配置解释与汇总 //自定义表头列 gantt.config.columns = [{name: "

服务器部署 Python 项目总结

title: 服务器部署 Python 项目总结 date: 2023-07-05 16:33:49 tags: 服务器Python categories:服务器 cover: https://cover.png feature: false 1. 准备 Python 项目需要 Python 的环境&#xff0c;假如服务器操作系统为 CentOS 7 的话&#xff0c;默认安装了 Python2 与 …

安达发|APS高级排程系统界的天花板!

APS 系统不仅为生产部门提供制造依据&#xff0c;而且涉及到采购计划、安全库存、订单交付等方面。这是非常复杂的管理。一个易于使用的 APS 系统不仅能够充分整合生产相关业务流程&#xff0c;保证生产计划的顺利进行&#xff0c;而且能够大大提高生产效率&#xff0c;降低管理…

导出python环境的所有安装包

导出操作 pip freeze > requests.txt批量导入操作 pip install -r requests.txt

redis数据类型基本操作(list,string,hash,keys相关操作),mongodb(增删改查)

1、 string类型数据的命令操作&#xff1a; &#xff08;1&#xff09; 设置键值&#xff1a; &#xff08;2&#xff09; 读取键值&#xff1a; &#xff08;3&#xff09; 数值类型自增1&#xff1a; &#xff08;4&#xff09; 数值类型自减1&#xff1a; &#xff08;5…

Java面试突击

Java面向对象有哪些特征&#xff0c;如何应用 ​ 面向对象编程是利用类和对象编程的一种思想。万物可归类&#xff0c;类是对于世界事物的高度抽象 &#xff0c;不同的事物之间有不同的关系 &#xff0c;一个类自身与外界的封装关系&#xff0c;一个父类和子类的继承关系&…

三菱PLC 控制灯一秒钟交替闪烁

三菱PLC中常用的特殊继电器&#xff1a; M8000 上电一直ON标志 M8002 上电导通一次 M8004 PLC出错 M8005 PLC备用电池电量低标志 M8011 10ms时钟脉冲 M8012 100ms时钟脉冲 M8013 1s时钟脉冲 M8014 1min时钟脉冲 M8034…

【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析

目录 一、介绍 二、使用方法 1.推理 2.训练 三、MPRNet结构 1.整体结构 2.CAB(Channel Attention Block) 3.Stage1 Encoder 4.Stage2 Encoder 5.Decoder 6.SAM(Supervised Attention Module) 7.ORSNet(Original Resolution Subnetwork) 四、损失函数 1.Charbonni…

[LINUX]之grep文本过滤

linux通过使用grep -v操作来实现文本过滤 新创建文本如下 执行过滤命令如下&#xff0c;已经过滤了test3 cat test.txt |grep -v "test3"

Dockerd的迁移与备份

1、容器保存为镜像 &#xff08;1&#xff09; 通过以下命令将容器保存为镜像 # 保存nginx容器为镜像 docker commit 容器名称 镜像名称 例如&#xff1a;docker commit mynginx mynginx_i&#xff08;2&#xff09;用 docker ps -a 查看所有的容器 &#xff08;3&#xf…

15-C++基本算法-贪心法

&#x1f4da; 理论基础 贪心法&#xff08;Greedy Algorithm&#xff09;是一种常见的算法思想&#xff0c;它在每一步选择中都采取当前状态下最优的选择&#xff0c;以期望获得全局最优解。贪心法通常适用于问题具有最优子结构和贪心选择性质的情况。 适用场景 贪心法适用…

react 实现浮动可吸附悬浮窗,悬浮球,悬浮按钮,支持拖动拖拽功能(suspend-button)

前言&#xff1a; 最近在做移动端&#xff0c;有个需求是 实现一个浮动球可拖拽&#xff0c;能吸附&#xff08;吸附到 左右两则&#xff0c;距离哪进就吸附到哪边&#xff09;。 实现过程&#xff1a; 使用 suspend-button &#xff08;但是此组件不支持 ts 和pc端&#x…

VMWare安装统信UOS虚拟机

单击 创建新的虚拟机 按钮&#xff0c;然后选择 自定义&#xff0c; 然后 下一步 硬件兼容性 选择 Workstation16.x &#xff0c;然后 下一步 选择“稍后安装操作系统”&#xff0c; 然后 下一步 选择 Linux &#xff0c; 再选 版本 CentOS 8 64位/ Ubuntu 均可&#xff0c;然…

【数据结构之树】初阶数据结构之树的实现及其各种方式(上)

文章目录 &#x1f60f;专栏导读&#x1f916;文章导读&#x1f640;树的预备知识&#x1f640;二叉树&#x1f633;树的代码实现及其各类讲解&#x1f332;树的结构体初始化 总结 &#x1f60f;专栏导读 &#x1f47b;作者简介&#xff1a;M malloc&#xff0c;致力于成为嵌入…

LinkNet分割模型搭建

原论文&#xff1a;LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation 直接步入正题~~~ 一、LinkNet 1.decoder模块 class DecoderBlock(nn.Module):def __init__(self, in_channels, n_filters): #512, 256super(DecoderBlock, self).__in…