当前位置:首页 » 服务存储 » 下面哪个程序负责HDFS数据存储
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

下面哪个程序负责HDFS数据存储

发布时间: 2022-04-25 18:35:40

❶ HDFS的文件存储过程

在正式介绍HDFS小文件存储方案之前,我们先介绍一下当前HDFS上文件存取的基本流程。
(1) 读文件流程
1)client端发送读文件请求给namenode,如果文件不存在,返回错误信息,否则,将该文件对应的block及其所在datanode位置发送给client
2) client收到文件位置信息后,与不同datanode建立socket连接并行获取数据。
(2) 写文件流程
1) client端发送写文件请求,namenode检查文件是否存在,如果已存在,直接返回错误信息,否则,发送给client一些可用namenode节点
2) client将文件分块,并行存储到不同节点上datanode上,发送完成后,client同时发送信息给namenode和datanode
3) namenode收到的client信息后,发送确信信息给datanode
4) datanode同时收到namenode和datanode的确认信息后,提交写操作。

❷ hdfs有哪些进程并说明其作用

Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。 Hadoop分布式文件系统架构 1 NameNode(名称节点) HDFS命名空间采用层次化(树状——译者注)的结构存放文件和目录。 2 映像和日志 Inode和定义metadata的系统文件块列表统称为Image(映像).NameNode将整个命名空间映像保存在RAM中。而映像的持久化记录则保存在NameNode的本地文件系统中,该持久化记录被称为Checkpoint(检查点)。NameNode还会记录HDFS中写入的操作,并将其存入一个记录文件,存放在本地文件系统中,这个记录文件被叫做Journal(日志)。 3 数据节点 DataNode上的每一个块(block)副本都由两个本地文件系统上的文件共同表示。其中一个文件包含了块(block)本身所需包含的数据,另一个文件则记录了该块的元数据,包括块所含数据大小和文件生成时间戳。数据文件的大小等于该块(block)的真实大小,而不是像传统的文件系统一样,需要用额外的存储空间凑成完整的块。因此,如果一个块里只需要一半的空间存储数据,那么就只需要在本地系统上分配半块的存储空间即可。 4 HDFS客户端 用户应用程序通过HDFS客户端连接到HDFS文件系统,通过库文件可导出HDFS文件系统的接口。像很多传统的文件系统一样,HDFS支持文件的读、写和删除操作,还支持对目录的创建和删除操作。与传统的文件系统不同的是,HDFS提供一个API用以暴露文件块的位置。这个功能允许应用程序。 5 检查点节点 HDFS中的NameNode节点,除了其主要职责是相应客户端请求以外,还能够有选择地扮演一到两个其他的角色,例如做检查点节点或者备份节点。该角色是在节点启动的时候特有的。 6 备份节点 HDFS的备份节点是最近在加入系统的一项特色功能。就像CheckpintNode一样,备份节点能够定期创建检查点,但是不同的是,备份节点一直保存在内存中,随着文件系统命名空间的映像更新和不断更新,并与NameNode的状态随时保持同步。 7 系统更新和文件系统快照 在软件更新的过程中,由于软件的bug或者人为操作的失误,文件系统损坏的几率会随之提升。在HDFS中创建系统快照的目的,就在于把系统升级过程中可能对数据造成的隐患降到最低。快照机制让系统管理员将当前系统状态持久化到文件系统中,这样以来,如果系统升级后出现了数据丢失或者损坏,便有机会进行回滚操作,将HDFS的命名空间和存储状态恢复到系统快照进行的时刻。

❸ hdfs主要功能

(1)、Client其主要的职责如下

(a)、在上传数据的时候对数据进行分块,在进行数据的下载的时候对数据进行合并

(b)、与NameNode进行通信在进行数据上传的时候获取数据上传时的数据节点,在数据下载的时候获取存储数据的节点

(c)、与DataNode进行通信进行数据的上传和下载

(2)、NameNode主要的职责如下

(a)、负责数据块映射信息的管理,在上传数据的时候给Client返回可以上传的数据节点,在需要获取数据的时候返回数据所在的节点,其本身并不存储数据。

(b)、副本数据的管理策略。

(c)、管理HDFS的名称空间

(3)、DataNode的主要的职责如下

(a)、负责数据的存储以及数据的读写。

(4)、SecondaryNameNode主要职责

(a)、是NM的一个备用。

(b)、减去NM的负担,对NM中的日志以及镜像文件进行合并在把合并之后的数据发回到NM。
HDFS的写过程及内部原理


1. 使用HDFS提供的客户端开发库,向远程的Namenode发起RPC请求;

2. Namenode会检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功则会为文件创建一个记录,否则会让客户端抛出异常;

3. 当客户端开始写入文件的时候,开发库会将文件切分成多个packets(信息包),并在内部以"data queue"的形式管理这些packets,并向Namenode申请新的blocks,获取用来存储replicas(复制品)的合适的datanodes列表,列表的大小根据在Namenode中对replication的设置而定。

4. 开始以pipeline(管道)的形式将packet写入所有的replicas中。开发库把packet以流的方式写入第一个datanode,该datanode把该packet存储之后,再将其传递给在此pipeline(管道)中的下一个datanode,直到最后一个datanode,这种写数据的方式呈流水线的形式。

5. 最后一个datanode成功存储之后会返回一个ack packet,在pipeline里传递至客户端,在客户端的开发库内部维护着"ack queue",成功收到datanode返回的ack packet后会从"ack queue"移除相应的packet。

6. 如果传输过程中,有某个datanode出现了故障,那么当前的pipeline会被关闭,出现故障的datanode会从当前的pipeline中移除,剩余的block会继续剩下的datanode中继续以pipeline的形式传输,同时Namenode会分配一个新的datanode,保持replicas设定的数量。

❹ 下面哪个程序负责 hdfs 数据存储

负责“hdfs”和“数据存储”的程序是HDFS。

❺ hadoop中主机有多少个进程是对的

概述:
Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapRece编程模型和框架,能够把应用程序分割成许多的 小的工作单元,并把这些单元放到任何集群节点上执行。在MapRece中,一个准备提交执行的应用程序称为“作业(job)”,而从一个作业划分出 得、运行于各个计算节点的工作单元称为“任务(task)”。此外,Hadoop提供的分布式文件系统(HDFS)主要负责各个节点的数据存储,并实现了 高吞吐率的数据读写。

在分布式存储和分布式计算方面,Hadoop都是用从/从(Master/Slave)架构。在一个配置完整的集群上,想让Hadoop这头大 象奔跑起来,需要在集群中运行一系列后台(deamon)程序。不同的后台程序扮演不用的角色,这些角色由NameNode、DataNode、 Secondary NameNode、JobTracker、TaskTracker组成。其中NameNode、SecondaryNameNode、JobTracker运行在Master节点上,而在每个Slave节点上,部署一个DataNode和TaskTracker,以便 这个Slave服务器运行的数据处理程序能尽可能直接处理本机的数据。对Master节点需要特别说明的是,在小集群中,SecondaryNameNode可以属于某个从节点;在大型集群中,NameNode和JobTracker被分别部署在两台服务器上。

我们已经很熟悉这个5个进程,但是在使用的过程中,我们经常遇到问题,那么该如何入手解决这些问题。那么首先我们需了解的他们的原理和作用。1.Namenode介绍

Namenode 管理者文件系统的Namespace。它维护着文件系统树(filesystem tree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace 镜像文件(Namespace image)和操作日志文件(edit log),这些信息被Cache在RAM中,当然,这两个文件也会被持久化存储在本地硬盘。Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,因为这些信息会在系统启动时从数据节点重建。

Namenode结构图课抽象为如图:




下面来详细的介绍这三类组件:

服务组件

TaskTracker节点内部的服务组件不仅用来为TaskTracker节点、客户端提供服务,而且还负责向TaskTracker节点请求服务,这一类组件主要包括HttpServer、TaskReportServer、JobClient三大组件。

1.HttpServer

TaskTracker节点在其内部使用Jetty Web容器来开启http服务,这个http服务一是用来为客户端提供Task日志查询服务,二是用来提供数据传输服务,即在执行Rece任务时是通过TaskTracker节点提供的该http服务来获取属于自己的map输出数据。这里需要详细介绍的是与该服务相关的配置参数,集群管理者可以通过TaskTracker节点的配置文件来配置该服务地址和端口号,对应的配置项为:mapred.task.tracker.http.address。同时,为了能够灵活的控制该该服务的吞吐量,管理者还可以设置该http服务的内部工作线程数量,对应的配置为:tasktracker.http.threads。

2.Task Reporter

TaskTracker节点在接收到JobTracker节点发送过来的Map/Rece任务之后,会把它们交给JVM实例来执行,而自己则需要收集这些任务的执行进度信息,这就使得Task在JVM实例中执行的时候需要不断地向TaskTracker节点报告当前的执行情况。虽然TaskTracker节点和JVM实例在同一台机器上,但是它们之间的进程通信却是通过网络I/O来完成的(此处并不讨论这种通信方式的性能),也就是TaskTracker节点在其内部开启一个端口来专门为任务实例提供进度报告服务。该服务地址可以通过配置项mapred.task.tracker.report.address来设置,而服务内部的工作线程的数量取2倍于该TaskTracker节点上的Map/Rece Slot数量中的大者。


❻ hdfs数据存储在集群什么地方

1、存储文件的时候需要指定存储的路径,这个路径是HDFS的路径。而不是哪个节点的某个目录。比如./hadoopfs-putlocalfilehdfspat一般操作的当前路径是/user/hadoop比如执行./hadoopfs-ls.实际上就相当于./hadoopfs-ls/user/hadoop2、HDFS本身就是一个文件系统,在使用的时候其实不用关心具体的文件是存储在哪个节点上的。如果需要查询可以通过页面来查看,也可以通过API来实现查询。

❼ hadoop的核心是什么

Hadoop是一个开源框架,用于以分布式方式存储和处理大数据。Hadoop的核心组件是 -

  • HDFS(Hadoop分布式文件系统) - HDFS是Hadoop的基本存储系统。在商用硬件集群上运行的大型数据文件存储在HDFS中。即使硬件出现故障,它也能以可靠的方式存储数据。

  • Hadoop MapRece - MapRece是负责数据处理的Hadoop层。它编写了一个应用程序来处理存储在HDFS中的非结构化和结构化数据。它负责通过将数据划分为独立任务来并行处理大量数据。处理分两个阶段完成Map和Rece。Map是指定复杂逻辑代码的第一个处理阶段,Rece是指定轻量级操作的第二阶段处理。

  • YARN - Hadoop中的处理框架是YARN。它用于资源管理并提供多种数据处理引擎,即数据科学,实时流和批处理。

❽ 下面哪个程序负责hdfs数据存储

存放到HDFS 一般都是要分析的数据。分析完成的数据直接存储到MYSQL 或者ORACLE 中。这种处理方式是离线处理。如日志文件存储到hdfs 分析出网站的流量 UV PV 等等。一般都是用pig hive 和mr 等进行分析的。 存放到HBASE 一般都是数据拿过来直接用...