Hadoop学习 HDFS 使用

DolphinScheduler 3.1.0 海豚集群运维使用问题记录 dolphinscheduler 3.1.0 运维使用问题记录 阅读详情

HDFS  重要 特性
首先,它是一个文件系统,用于存储文件,通过统一的命名空间目录树来定
位文件;
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器
有各自的角色。
2.1. . master/slave  架构
HDFS 采用 master/slave 架构。一般一个 HDFS 集群是有一个 Namenode 和一
定数目的 Datanode 组成。Namenode 是 HDFS 集群主节点,Datanode 是 HDFS 集群
从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。
2.2. .  分块存储
HDFS 中的文件在物理上是分块存储(block)的,块的大小可以通过配置参
数来规定,默认大小在 hadoop2.x 版本中是 128M。
2.3. .  名字空间(NameSpace )
HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,
然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文
件系统类似:用户可以创建、删除、移动或重命名文件。
Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性
的修改都将被 Namenode 记录下来。
HDFS 会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,
形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data。
2.4. . Namenode  元数据管理
我们把目录结构及文件分块位置信息叫做元数据。Namenode 负责维护整个
hdfs 文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block 的
id,及所在的 datanode 服务器)。
北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090
2.5. . Datanode  数据存储
文件的各个 block 的具体存储管理由 datanode 节点承担。每一个 block 都
可以在多个 datanode 上。Datanode 需要定时向 Namenode 汇报自己持有的 block
信息。
存储多个副本(副本数量也可以通过参数设置 dfs.replication,默认是 3)。
2.6. .  副本机制
为了容错,文件的所有 block 都会有副本。每个文件的 block 大小和副本系
数都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以在文件
创建的时候指定,也可以在之后改变。
2.7. .  一次写入,多次读出
HDFS 是设计成适应一次写入,多次读出的场景,且不支持文件的修改。
正因为如此,HDFS 适合用来做大数据分析的底层存储服务,并不适合用来
做.网盘等应用,因为,修改不方便,延迟大,网络开销大,成本太高。

 

 HDFS  写数据流程
详细步骤解析:
1、 client 发起文件上传请求,通过 RPC 与 NameNode 建立通讯,NameNode
检查目标文件是否已存在,父目录是否存在,返回是否可以上传;
2、 client 请求第一个 block 该传输到哪些 DataNode 服务器上;
3、 NameNode 根据配置文件中指定的备份数量及机架感知原理进行文件分
配,返回可用的 DataNode 的地址如:A,B,C;
注:Hadoop 在设计时考虑到数据的安全与高效,数据文件默认在 HDFS 上存放
三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一
节点上一份。
4、 client 请求 3 台 DataNode 中的一台 A 上传数据(本质上是一个 RPC 调
用,建立 pipeline),A 收到请求会继续调用 B,然后 B 调用 C,将整个
pipeline 建立完成,后逐级返回 client;
5、 client 开始往 A 上传第一个 block(先从磁盘读取数据放到一个本地内
存缓存),以 packet 为单位(默认 64K),A 收到一个 packet 就会传给 B,
B 传给 C;A 每传一个 packet 会放入一个应答队列等待应答。
6、 数据被分割成一个个 packet 数据包在 pipeline 上依次传输,在
pipeline 反方向上,逐个发送 ack(命令正确应答),最终由 pipeline
中第一个 DataNode 节点 A 将 pipeline ack 发送给 client;
7、 当一个 block 传输完成之后,client 再次请求 NameNode 上传第二个
block 到服务器

 

 

 HDFS  读数据流程
详细步骤解析:
1、 Client 向 NameNode 发起 RPC 请求,来确定请求文件 block 所在的位置;
2、 NameNode会视情况返回文件的部分或者全部block列表,对于每个block,
NameNode 都会返回含有该 block 副本的 DataNode 地址;
3、 这些返回的 DN 地址,会按照集群拓扑结构得出 DataNode 与客户端的距
离,然后进行排序,排序两个规则:网络拓扑结构中距离 Client 近的排
靠前;心跳机制中超时汇报的 DN 状态为 STALE,这样的排靠后;
4、 Client 选取排序靠前的 DataNode 来读取 block,如果客户端本身就是
DataNode,那么将从本地直接获取数据;
5、 底层上本质是建立 Socket Stream(FSDataInputStream),重复的调用
父类 DataInputStream 的 read 方法,直到这个块上的数据读取完毕;
6、 当读完列表的 block 后,若文件读取还没有结束,客户端会继续向
NameNode 获取下一批的 block 列表;
7、 读取完一个 block 都会进行 checksum 验证,如果读取 DataNode 时出现
错误,客户端会通知 NameNode,然后再从下一个拥有该 block 副本的
DataNode 继续读。
8、 read 方法是并行的读取 block 信息,不是一块一块的读取;NameNode 只
是返回Client请求包含块的DataNode地址,并不是返回请求块的数据;
9、 最终读取来所有的 block 会合并成一个完整的最终文件。

 

 

Configuration conf = new Configuration();
//这里指定使用的是 hdfs 文件系统
conf.set("fs.defaultFS", "hdfs://node-21:9000");
//通过如下的方式进行客户端身份的设置
System.setProperty("HADOOP_USER_NAME", "root");
//通过 FileSystem 的静态方法获取文件系统客户端对象
FileSystem fs = FileSystem.get(conf);
//也可以通过如下的方式去指定文件系统的类型 并且同时设置用户身份
//FileSystem fs = FileSystem.get(new URI("hdfs://node-21:9000"), conf, "root");
//创建一个目录
fs.create(new Path("/hdfsbyjava-ha"), false);
//上传一个文件
fs.copyFromLocalFile(new Path("e:/hello.sh"), new Path("/hdfsbyjava-ha"));
//关闭我们的文件系统
fs.close();

 

在 java 中操作 HDFS,主要涉及以下 Class:
Configuration:该类的对象封转了客户端或者服务器的配置;
FileSystem:该类的对象是一个文件系统对象,可以用该对象的一些方法来
对文件进行操作,通过 FileSystem 的静态方法 get 获得该对象。
FileSystem fs = FileSystem.get(conf)
get 方法从 conf 中的一个参数 fs.defaultFS 的配置值判断具体是什么类
型的文件系统。如果我们的代码中没有指定 fs.defaultFS,并且工程 classpath
下也没有给定相应的配置,conf中的默认值就来自于hadoop的jar包中的core-
default.xml , 默 认 值 为 : file:/// , 则 获 取 的 将 不 是 一 个
DistributedFileSystem 的实例,而是一个本地文件系统的客户端对象。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HDFS完全分布式集群搭建与配置及常见问题总结(上) 本篇描述关于HDFS完全分布式集群的搭建与配置相关步骤,还有一些常见问题,供大家参考。 阅读详情

相关推荐

DolphinScheduler(海豚调度器)安装与试玩一下

DolphinScheduler部署

KasarJ的博客 3836

搭建Hadoop HA环境

Hadoop HA基础知识 HDFS存在的问题 NN单点故障,难以应用于在线场景 HA NN压力过大,且内存受限,影响扩展 F(联邦机制) 原理图 搭建Hadoop HA环境 步骤 实现逻辑到物理的映射,HA由两个namenode,一个是active,一个是standby,需要指定具体的物理节点(rpc和http地址做配置端口) 配置journalnode集群(第一次需要手动启动,第二次可以使用服务脚本开启) 配置故障转移代理和实现方式 开启自动化,启动ZKFC进程,实现真正的故障转移 配置Zoo

achu19的博客 424

Hadoop中的HDFS学习总结

博主自己学习hdfs的一些笔记,整理了一下(有什么不懂的可以问我。尽量解答,希望对大家有帮助) Hadoop组成 Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统,对海量数据的存储。 Hadoop MapReduce:一个分布式的资源调度和离线并行计算框架。 Hadoop Yarn:基于HDFS,用于作业调度和集群资源管理的框架。 Hadoop Common:Hadoop工具包...

登峰造极胡子球手 3936

Hadoop入门学习笔记-第一天 (HDFS:分布式存储系统简单集群)

1.准备三台服务器(nameNode10、dataNode20、dataNode30) 2.配置三台机器网络ip分别为(192.168.18.10、192.168.18.20、192.168.18.30) 2.1 进入/etc/sysconfig/network-scripts 修改 ifcfg-ens33 文件,定义网卡 信息如下,三台机器都要配置 ONBOOT=yes IPADDR=192.168.18.30 GATEWAY=192.168.18.2 DNS1=114.114.114.114 2.2配

dreamflying33的博客 317

Hadoop学习总结-上篇(HDFS、MapReduce)

跟学尚硅谷Hadoop3.x, 1 入门 1.1 优势与组成(面试重点) HDFS-Hadoop Distributed File System,一个分布式文件系统 NameNode(nn);DataNode(dn);Secondary NameNode(2nn) YARN-Yet Another Resource Negotiator ,另一种资源协调者,是 Hadoop 的资源管理器 MapReduce -Map 阶段并行处理输入数据; Reduce 阶段对 ..

qq_42274571的博客 469

大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】

大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】

upward 1475

hadoop_3 HDFS学习及API开发

hadoop_3 HDFS学习及API开发hadoop_3 HDFS学习及API开发1 hdfs的概述1.1 hdfs的背景及定义1.2 hdfs的优缺点1.3 hdfs的组成架构1.4 hdfs的文件块大小(面试重点)2 hdfs的shell操作(开发重点)2.1 hdfs的命令行操作2.2 解决web端权限问题3 hdfs的客户端的操作3.1 api环境准备3.2 测试准备3.3 文件操作4 掌握hdfs的io流4.1 文件上传4.2 文件下载 目标: 1 掌握hdfs的架构 2 掌握hdfs的命令行操

qq_14919937的博客 1024

AI时代,程序员何去何从?别慌,看完这篇你就明白了

AI时代程序员的发展方向 摘要:随着AI代码助手的普及,程序员行业面临变革。本文通过实际案例展示AI写代码的能力与局限:AI能生成基础功能代码(如RESTful API、数据处理脚本),但缺乏业务理解、系统设计和复杂逻辑处理能力。程序员的核心价值在于需求分析、架构设计、性能优化等高层能力。未来程序员应: 掌握AI工具提升效率 专注于创新和架构设计 培养业务理解能力 持续学习新技术 AI不会取代程序员,但会淘汰不会使用AI的程序员。建议开发者拥抱AI工具,将其作为助手而非威胁,聚焦高价值工作。

yunque_xianguang的博客 907

HADOOP学习-HDFS

HADOOP学习—HDFS 下面我来介绍一下有关hdfs的内容,话不多说,上图:

For_ZZHacker的博客 264

如何下载era5数据?(两种方式)

供水利大数据云计算课程同学参考使用#

Camiel_sweet的博客 1万+

保姆级教程:从OrthoFinder到CAFE5,手把手搞定基因家族收缩扩张分析(附完整代码与避坑指南)

本文提供从OrthoFinder到CAFE5的基因家族收缩扩张分析全流程教程,涵盖数据预处理、系统发育树准备、CAFE5运行与参数优化等关键步骤。通过详细代码示例和避坑指南,帮助研究者高效完成基因家族进化分析,特别适合生物信息学初学者。

dianshu1593的博客 390

大数据Hadoop学习之HDFS

HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。HDFS的使用场景:适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。

qq_43399188的博客 1499

手把手教你用AirSim生成无人机训练数据集:RGB/深度图/分割图全攻略

本文详细介绍了如何使用AirSim仿真插件在UE4环境中生成无人机训练数据集,涵盖RGB、深度图和分割图等多种模态数据的采集与处理。通过实战指南,读者可以掌握环境配置、多模态数据采集、自动化流程设计及数据后处理等关键技术,为无人机视觉算法开发提供高质量训练数据。

weixin_29008805的博客 445

Hadoop学习记录1-什么是HDFS?

Hadoop学习记录(1)-什么是HDFS? Hadoop作为处理大数据的分布式存储和计算框架,很多程序员已经对他耳熟能详了。作为一个工作三年的java后端程序员,准备学习了解一下该框架,特立此贴记录学习。 HDFS简介 HDFS(Hadoop Distributed File System)是高扩展、高容错、高性能的分布式文件系统,负责数据的分布式存储和备份。本质是一个主/从体系结构的分布式...

weixin_35735381的博客 330

Sigrity SPEED2000 General SI Simulation模式如何进行信号仿真分析操作指导-DDR

本例是几个简单的板载DDR颗粒的结构,本例中使用General SI Simulation模式仿真DDR信号,结构拓扑如下,Addcmd,clk,cke都是T拓扑。Sigrity SPEED2000 General SI Simulation模式可以对信号进行仿真分析,仿真将电源视为理想电源,以下图为例进行说明。DQS的接收端模型设置为DQS_34_ODT60_1333。模式如何进行信号仿真分析操作指导-DDR。附带驱动和接收端的IBIS模型。

weixin_54787054的博客 510

PCL点云DBSCAN聚类算法:基于密度的点云聚类

核心点是在给定半径内拥有足够多邻居点的点,边界点是在给定半径内没有足够多邻居点但是位于核心点的邻域内的点,噪声点是既不是核心点也不是边界点的点。本文将介绍PCL中的DBSCAN(基于密度的空间聚类应用噪声)算法,用于点云数据的聚类。上述示例代码首先从PCD文件中读取点云数据,并设置了DBSCAN聚类的参数,包括邻域搜索半径(epsilon)和邻域内最小点数(min_points)。需要注意的是,示例代码中的点云数据格式为pcl::PointXYZ,如果使用其他类型的点云数据,需要相应地修改代码。

LpmShell的博客 1237

学习Hadoop——HDFS 思维导图

   

y805805的博客 1326

搭建你的第一个MCP服务器(Python版)

在上两篇博客中,我们已经对MCP(Model Context Protocol)有了初步的了解。MCP是一种强大的协议,能够简化LLM(大型语言模型)与外部工具的交互。今天,我们将通过一个具体的例子,展示如何使用Python搭建一个简单的MCP服务器。通过这个过程,你将能够更好地理解MCP的工作原理,并为后续的应用开发打下基础。在MCP中,工具(Tool)是服务器提供给LLM的接口。我们将定义一个简单的工具,用于接收输入文本并返回处理后的结果。首先,我们需要定义一个工具类。这个工具类将继承自,并实现run。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 8093

Hadoop HDFS——Hadoop实战初级部分学习笔记

5、Hadoop HDFS HDFS 分布式文件系统,高容错性,部署到成本低的硬件;   HDFS架构设计 典型的观察者结构,NameNode(1)-----(*)DataNode, NameNode存储元数据,DataNode存小数据,   HDFS设计目标 假设节点失效是常态,任何一个节点挂了,不影响使用(自动的备份,副本); 简单一致的模型,假设一次写

hdngbj的专栏 1990

【离线OCR】微信离线实现图片OCR文本和表格识别

基于微信本地OCR引擎(由最新版微信自动安装)。通过Python对其官方调用逻辑进行完整翻译和封装,使开发者可以用简单的API调用其强大的OCR功能。

专注于医院数据分析技术与系统开发的创作与分享。 2620

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Hadoop 学习 第二章 HDFS

Hadoop 学习 第二章 HDFS第二章 HDFSHDFS概述HDFS定义HDFS优缺点HDFS架构HDFS文件块大小(面试重点)常用命令实操HDFS客户端操作(开发重点)HDFS客户端环境准备HDFS文件下载HDFS文件夹删除HDFS文件名更改HDFS文件详情查看HDFS文件和文件夹判断HDFS的I/O流操作HDFS文件下载定位文件读取HDFS的数据流(面试重点)HDFS写数据流程剖析文件写入...

bw_ustc的博客 1010

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Hadoop之HDFS的学习

实习一个月,学的是有关大数据方面的东西,其中主要学习的是 Hadoop ,学的也没有太深入,现在只是将自己所学以及所理解的在这里写出来。先给大家推荐一篇我写的在 Windows 系统上编写代码对 linux 中的 hdfs 的文件进行处理的代码,其实也可以用于对 Windows 上部署的 hdfs 进行操作,代码所实现的功能其实跟本篇文章最后所讲的 hdfs 的命令相同。 网址...

豪气冲天 330

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Hadoop技术的HDFS学习

Hadoop核心技术的课程总结主要涵盖了Hadoop的基本概念、核心技术模块以及其在大数据处理领域的优势和应用。首先,Hadoop是一个由Apache基金会开发的分布式系统基础架构,主要用于解决大数据集的存储和计算分析问题。它使用Java语言开发,具有跨平台性,并且是开源的。Hadoop运行在廉价机器上,并考虑到机器故障是常态,因此具有高可靠性和容错性。它利用集群的CPU的并发和计算能力,提供了高性能的处理能力。主机IP主机的主机名(自定义,含学号HDFSYARNmasterNameNode。

qq_57817282的博客 751

Hadoop学习笔记之HDFS架构

1 Master(NameNode/NN)  带 N个Slaves(DataNode/DN)HDFS/YARN/HBase1个文件会被拆分成多个Blockblocksize:128M130M ==> 2个Block: 128M 和 2MNN:1)负责客户端请求的响应2)负责元数据(文件的名称、副本系数、Block存放的DN)的管理DN:1)存储用户的文件对应的数据块(Block)2)要定期向...

Archer9511的博客 490

Hadoop学习之HDFS

Hadoop学习之HDFS文件系统

qq_43508810的博客 359

Hadoop-HDFS学习

HDFS学习 0x01 摘要 本文介绍了Hadoop体系中最重要的HDFS原理。 0x02 Hadoop的整体框架 Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等成员组成,其中最基础最重要元素为底层用于存储集群中所有存储节点文件的文件系统HDFS(Hadoop Distributed File System)来执行MapReduce程序的MapReduce引...

迷路剑客个人博客 3980
上一篇: Apache Hadoop介绍
下一篇: Hadoop学习 MapReduce
Code_My_Dream
博客等级 码龄10年 75粉丝 236原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值