大数据-Hadoop-基础篇-第四章-HDFS(分布式文件存储)

ops/2024/9/19 9:31:46/ 标签: 大数据, hadoop, 分布式

目录

  • 参考
  • 概念
  • 组成
    • 体系结构
  • 数据块
  • HDFS 文件读取
  • HDFS 文件写入
  • 常用命令
    • 1. Is
    • 2. put
    • 3.moveFromLocal.
    • 4.get
    • 5.rm
    • 6. mkdir
    • 7.cp
    • 8. mv
    • 9.appendToFile
    • 10. cat
  • javaAPI
    • 引入包
    • 创建文件夹

参考

经典大数据开发实战(Hadoop &HDFS&Hive&Hbase&Kafka&Flume&Storm&Elasticsearch&Spark)

概念

组成

一个HDFS集群由一个元数据节点(NameNode)和一些数据节点(DataNode)组成
在这里插入图片描述

体系结构

在这里插入图片描述

数据块

数据块(Block):HDFS中最基本的存储单位,默认128M。
鸡蛋不能放在同一个蓝子
在这里插入图片描述
以上示例是6个DataNode ,每个块分别3个副本

HDFS 文件读取

在这里插入图片描述

HDFS 文件写入

在这里插入图片描述

常用命令

注意:hdfs dfs = hadoop fs.

1. Is

使用上命令可以查看HDFS系统中的目录和文件。例如,查看HDFS文件系统根目录下的目录和文件,命令如下:"

hadooop fs -ls /

递归列出 HDFS 文件系统根目录下的所有目录和文件,命令如下:"

hadooop fs -ls -R /

2. put

将本地文件上传到 HDFS系统中。例如,将本地文件 a.txt 上传到 HDFS 文件系统的/input文件夹中,命令如下:。

hadoop fs -put a.txt /input/

3.moveFromLocal.

将本地文件移动到HDFS 文件系统中,可以一次移动多个文件。与put命令类似,不同的是该命令执行后源文件将被删除。例如,将本地文件a.txt移动到HDFS的/imnput 文件夹中,命令如下:.

hadoop fs -moveFromLocal a.txt /input/

4.get

使用 get 命令可以将 HDFS 文件系统中的文件下载到本地,注意下载时的文件名不能与本地文件相同,否则会提示文件已经存在。下载多个文件或目录到本地时,要将本地路径设置为文件夹。例如,将 HDFS 根目录的 imput 文件夹中的文件 a.txt 下载到本地当前目录,命令如下:

$ hadoop fs -get /input/a.txt a.txt

将HDFS根目录的input 文件夹下载到本地当前目录,命令如下:

hadoop fs -get /input/ ./

需要注意的是,需要确保用户对当前目录有可写权限。

5.rm

使用rm 命令可以删除 HDFS 系统中的文件或文件夹,每次可以删除多个文件或目录。例删除 HDFS 根目录的 input 文件夹中的文件 a.txt,命令如下:女1、

hadoop fs -rm /input/a.txt

递归删除 HDFS根目录的output 文件夹及该文件夹下的所有内容,命令如下:

$ hadoop fs -rm -r /output

6. mkdir

使用 mkdir 命令可以在 HDFS 系统中创建文件或目录。例如,在 HDFS 根目录下创建文件夹 imnput,命令如下:

 hadoop fs -mkdir /input/

也可使用-p参数创建多级目录,如果父目录不存在,则会自动创建父目录。命令如下

$ hadoop fs -mkdir -p /input/file

7.cp

使用 cp命令可以复制 HDFS 中的文件到另一个文件,相当于给文件重命名并保存,但源文件仍然存在。例如,将/imnputa.txt复制到/input/b.txt,并保留 a.txt,命令如下:

hadoop fs -cp /input/a.txt /input/b.txt

8. mv

使用 mv 命令可以移动 HDFS 文件到另一个文件,相当于给文件重命名并保存,源文件已不存在。例如,将/inputa.txt移动到/inputb.txt,命令如下:

hadoop fs -mv /input/a.txt /input/b.txt

9.appendToFile

使用 appendToFie 命令可以将单个或多个文件的内容从本地系统追加到 HDFS 系统的文件中。例如,将本地当前目录的文件 a.txt 的内容追加到HDFS 系统的nputb.txt 文件中,命令如下:

$ hadoop fs -appendToFile a.txt /input/b.txt

若需要一次追加多个本地系统文件的内容,则多个文件用“空格”隔开。例如,将本地文件a.txt和 b.txt的内容追加到HDFS 系统的/inputc.txt文件中,命令如下:

$ hadoop fs -appendToFile a.txt b.txt /input/c.txt

10. cat

使用 cat 命令可以查看并输出 HDFS 系统中某个文件的所有内容。例如,查看 HDFS 系统中的文件/inputa.txt的所有内容,命令如下:

$ hadoop fs -cat /input/a.txt

也可以同时查看并输出HDES中的多个文件内容,结果会将多个文件的内容按照顺序合并轮出。例如,查看HDFS中的文件/inputa.txt和文件nputb.txt 的所有内容,命令如下:

$ hadoop fs -cat /input/a.txt /input/b.txt

javaAPI

引入包

<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>3.3.1</version>
</dependency>

创建文件夹

package hdfs.demo,
import java.io.IoException;
/**
* 创建HDFS日录mydir
* /
public class CreateDir{publie statie void main(string[]args) throws IOException{Confiquration conf = new Confiquration();conf.set("fs.default.name","hdfs://192.168.170.133:9000");FileSystem hdfs =FileSystem.get(conf);// 创建目录boolean isok = hdfs.mkdirs(new Path("hdfs:/mydir"));if(isok){System.out.println("创建目录成功!");}else {System.out.println("创建目录失败!");}hdfs.close();}
}

http://www.ppmy.cn/ops/111990.html

相关文章

红帽9中nginx-源码编译php

什么是PHP-FPM&#xff1f; PHP-FPM(FastCGI Process Manager&#xff1a; FastCGI进程管理器)是一个实现了Fastcgi的程序&#xff0c;并且提供进程管理的功能。 进程包括master进程和worker进程。master进程只有一个&#xff0c;负责监听端口&#xff0c;接受来自web server 的…

【重学 MySQL】三十、数值类型的函数

【重学 MySQL】三十、数值类型的函数 基本函数角度与弧度互换函数三角函数指数与对数进制间的转换示例 基本函数 MySQL提供了一系列基本的数值函数&#xff0c;用于处理数学运算和数值转换。以下是一些常用的基本函数及其用法&#xff1a; 函数用法ABS(x)返回x的绝对值。SIGN…

手机玩机常识____展讯芯片刷机平台ResearchDownload的一些基本常识与问题解决

展讯ResearchDownload工具 展讯芯片的刷机工具--ResearchDownload下载工具"是一款专为用户设计的高效、便捷的下载管理软件&#xff0c;它能够帮助用户快速、稳定地从互联网上获取各种文件。这款工具以其强大的功能和良好的用户体验&#xff0c;在众多展讯芯片下载工具中脱…

springboot+security为什么@ControllerAdvice自定义的异常处理没有生效

意外遇到一个无语的bug。项目架构差不多&#xff0c;为什么本项目的ControllerAdvice自定义的异常处理没有生效&#xff0c;其他的就可以。 调试如下&#xff1a; 在捕获异常的位置debug ControllerAdvice 标注的类是否被 Spring 容器正确管理。 很明显&#xff0c;没有。找到…

QT --- 初识QT

一、通过代码构建helloworld界面 一般通过代码来构造界面的时候&#xff0c;通常会把构造界面的代码放到Widget/MainWindow的构造函数中。 Qt中每个类都有对应同名的头文件 上古时期&#xff0c;Qt用的是这种风格的文件。1998年之后&#xff0c;C标准成立了&#xff0c;C98标准…

《深度学习》深度学习 框架、流程解析、动态展示及推导

目录 一、深度学习 1、什么是深度学习 2、特点 3、神经网络构造 1&#xff09;单层神经元 • 推导 • 示例 2&#xff09;多层神经网络 3&#xff09;小结 4、感知器 神经网络的本质 5、多层感知器 6、动态图像示例 1&#xff09;一个神经元 相当于下列状态&…

软件工程知识点总结(7):软件项目管理

目录 1 软件项目管理 2 进度计划 2.1 WBS 2.2 WBS 工作分解结构 2.3 制定进度计划 ——Gantt 1 软件项目管理 软件项目管理是指软件生命周期中软件管理者所进行的一系列活动&#xff0c;其目的是在 一定的时间和预设范围内有效的利用人力、资源、技术和工具&#xff0c;使…

[数据集][目标检测]智慧交通铁路异物入侵检测数据集VOC+YOLO格式802张7类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;802 标注数量(xml文件个数)&#xff1a;802 标注数量(txt文件个数)&#xff1a;802 标注类别…

F12抓包11:UI自动化 - Recoder(记录器)

课程大纲 使用场景&#xff08;导入和导出&#xff09;: ① 测试的重复性工作&#xff0c;本浏览器录制并进行replay&#xff1b; ② 导入/导出录制脚本&#xff0c;移植后replay&#xff1b; ③ 导出给开发进行replay复现bug&#xff1b; ④ 进行前端性能分析。 1、录制脚…

Eureka原理与实践:构建高效的微服务架构

Eureka原理与实践&#xff1a;构建高效的微服务架构 引言 随着微服务架构的日益普及&#xff0c;服务的数量和复杂性不断增加&#xff0c;如何有效地管理这些服务成为了一个重要的挑战。Eureka&#xff0c;作为Netflix开源的服务发现组件&#xff0c;凭借其简单、健壮的特性&…

SpringBoot 消息队列RabbitMQ使用延迟消息插件 接收延迟消息

介绍 需要确保MQ已经安装好了延迟插件。 创建延迟交换机与队列 RabbitListener(bindings QueueBinding(value Queue(value "test.queue",durable "true"),exchange Exchange(value "test.fanout",delayed "true"),key {&quo…

23ai DGPDB,Oracle资源池战略的最后一块拼图

Oracle对资源池是有执念的&#xff01; 在我看来&#xff0c;这种执念一方面是应用架构的微服务化&#xff0c;数据库被拆分的越来越小&#xff0c;而服务器的硬件能力是不断提升的&#xff0c;CPU核心数、内存和存储的容量都按照摩尔定律在不断增加&#xff0c;这就使得数据库…

QUIC的loss detection学习

PTO backoff backoff 补偿 /ˈbkɒf/PTO backoff 是QUIC&#xff08;Quick UDP Internet Connections&#xff09;协议中的一种机制&#xff0c;用于处理探测超时&#xff08;Probe Timeout, PTO&#xff09;重传策略 它逐步增加探测超时的等待时间&#xff0c;以避免网络拥塞…

P1056 [NOIP2008 普及组] 排座椅(模拟)

1.用x,y数组存放切了几对学生&#xff0c;用数组的下标记录切的位置 2.按照题目要求k和l依次取出最大的数组的值&#xff0c;并将其变为-1&#xff0c; 再次循环取出第二大的值&#xff0c;之后所有下标为-1的的下标就是切的学生对多的 3.切的意思是把两个学生分开 #includ…

初学Linux(学习笔记)

初学Linux&#xff08;学习笔记&#xff09; 前言 本文跳过了Linux前期的环境准备&#xff0c;直接从知识点和指令开始。 知识点&#xff1a; 1.目录文件夹&#xff08;Windows&#xff09; 2.文件内容属性 3.在Windows当中区分文件类型是通过后缀&#xff0c;而Linux是通过…

如何理解BCEWithLogitsLoss()

1.示例1 logit[0.5 -1.0 2.0] targets[1 0 1]# δsigmoid(x) pδ(logits)[δ(0.5) δ(-1.0) δ(2.0)][0.6225 0.2689 0.8808]loss1 -[1 log(0.6225) 0 log(1 - 0.6225)] ≈ 0.4744 loss2 -[0 log(0.2689) 1 log(1 - 0.2689)] ≈ 0.3133 loss3 -[1 log(0.8808) 0 …

Linux tr命令

参考资料 【 tr 】コマンド――テキストファイルの文字を置換する&#xff0f;削除する【Linux】trコマンド使ってみた【trコマンド】 目录 一. 基本语法二. 替换2.1 匹配模式进行替换2.2 只支持字符的替换 三. 选项3.1 -d 删除指定字符3.2 -s 替换多个重复出现的字符为单个字…

new/delete和malloc/free到底有什么区别

new和malloc 文章目录 new和malloc前言一、属性上的区别二、使用上的区别三、内存位置的区别四、返回类型的区别五、分配失败的区别六、扩张内存的区别七、系统调度过程的区别总结 前言 new和malloc的知识点&#xff0c;作为一个嵌入式工程师是必须要了解清楚的。new和malloc的…

【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(二十九)

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

python画图|极坐标下的3D surface

前述学习过程中&#xff0c;我们已经掌握了3D surface的基本绘制技巧&#xff0c;详见链接&#xff1a; python画图|3D surface基础教程-CSDN博客 基础教程中的3D surface绘制位于笛卡尔坐标系&#xff0c;但有时候会用到极坐标绘图。虽然我们已经学过简单的极坐标绘图技巧&a…