导航:首页 > 数据分析 > 哪个程序负责hdfs数据存储

哪个程序负责hdfs数据存储

发布时间:2023-08-31 14:02:23

㈠ 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的命名空间和存储状态恢复到系统快照进行的时刻。

㈡ Hadoop生态系统-新手快速入门(含HDFS、HBase系统架构)

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。

用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。

Hadoop的框架最核心的设计就是:HDFS和MapRece。HDFS为海量的数据提供了存储,而MapRece则为海量的数据提供了计算。

广义的Hadoop,一般称为Hadoop生态系统,如下所示。

Hadoop生态系统中这些软件的作用:

HDFS 采用了主从(Master/Slave)结构模型,一个HDFS集群包括一个名称节点(NameNode)和若干个数据节点(DataNode)。

HDFS采用java语言开发,因此任何支持JVM的机器都可以部署名称节点和数据节点。

在配置好Hadoop 集群之后,可以通过浏览器访问 http://[NameNodeIP]:9870,查询HDFS文件系统。通过该Web界面,可以查看当前文件系统中各个节点的分布信息。

HBase系统架构如下所示,包括客户端、Zookeeper服务器、Master主服务器、Region服务器。一般而言,HBase会采用HDFS作为底层数据存储。

在HBase服务器集群中,包含了一个Master和多个Region服务器,Master是HBase集群的“总管”,它必须知道Region服务器的状态。

HBase中可以启动多个Master,但是Zookeeper 可以帮助选举出一个Master 作为集群的总管,并保证在任何时刻总有唯一一个Master在运行,这样可以避免Master单点失效的问题。

Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求。

Store是Region服务器的核心。每个Store对应了表中的一个列族的存储。每一个Store包含了一个MemStore缓存和若干个StoreFile文件。

HBase采用HLog来保证系统发生故障时,能够恢复到正确的状态。HLog是磁盘上面的记录文件,它记录着所有的更新操作。

HBase系统为每个Region服务器配置了一个HLog文件,它是一种预写式日志(Write Ahead Log),也就是说,用户更新数据必须首先被记入日志后,才能写入MemStore缓存。

此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。 Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

注意:Hadoop 安装完成之后,只包含HDFS和MapRece,并不含HBase,因此需要在Hadoop 之上继续安装HBase。

㈢ Java和大数据有什么关系

简单的说Java语言是做大数据研发的工具之一,不少早期做大数据平台开发的程序员都是做Java开发出身,而且Hadoop平台本身就是采用Java语言开发的,所以很多做大数据开发的程序员第一个排序实验都是使用Java语言开发的。所以,Java是早期做大数据开发的基础之一。
大数据确切的说,它并不能算一门具体的技术,而是一种概念,一种大的技术范畴。大数据主要是用来处理,分析,存储海量数据,对这些大量的数据进行加工处理等操作。大数据领域里面涉及到Hadoop,hive,flink,hbase,java等各种具体的技术,看清楚,在这里Java也可以为大数据的实现提供服务哦。所以可以说,Java可以帮助我们实现大数据的开发,Java就像是一个“建筑工人",它可以把各种数据原料整合在一起,构建出大数据这么一个环境。
通常情况下,我们说的大数据,是指基于Hadoop的大数据生态,在这个生态中,有很多很多的产品,每个产品负责解决大数据整体方案中的一个问题,如Hadoop自身包含MapRece,Yarn,HDFS等,MapRece 负责批处理计算,HDFS负责的分布式存储,YARN负责资源管理,其他如HBASE负责数据存储,等等。这些大数据生态中的不同产品,大部分都是由Java开发的,所以说它们与Java密不可分。
由于软件自身由Java开发,因此基本这些大数据产品做开发,Java语言就是首选,因为这些产品基本都提供Java语言的编程接口API。
还有一些产品,虽然不是用Java语言开发,但是使用了基于JVM的语言,如Spark是由Scala语言开发的,而Scala是基于JVM的,这就意味着可以进行Scala与Java的混合开发,同样离不开Java。
大数据框架的编写支持很多开发语言,但是Java在大数据开发方面有很大的优势,目前流行的大数据Hadoop框架,很多部分都是用开源的Java语言编写,因此Java在大数据方面有很大优势。在大数据的中,也许别的你可能不在意,但是Hadoop想必你是注意到了的吧,大数据中不得不学的重要内容。

㈣ 大数据技术Hadoop笔试题

大数据技术Hadoop笔试题

导读:Hadoop有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。以下是由我J.L为您整理推荐的面试笔试题目和经验,欢迎参考阅读。

单项选择题

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

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

2. HDfS 中的 block 默认保存几份?

a)3 份

b)2 份

c)1 份

d)不确定

3. 下列哪个程序通常与 NameNode 在一个节点启动?

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

4. Hadoop 作者

a)Martin Fowler

b)Kent Beck

c)Doug cutting

5. HDFS 默认 Block Size

a)32MB

b)64MB

c)128MB

6. 下列哪项通常是集群的最主要瓶颈

a)CPU

b)网络

c)磁盘

d)内存

7. 关于 SecondaryNameNode 哪项是正确的?

a)它是 NameNode 的热备

b)它对内存没有要求

c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

d)SecondaryNameNode 应与 NameNode 部署到一个节点

多选题

8. 下列哪项可以作为集群的管理工具

a)Puppet

b)Pdsh

c)Cloudera Manager

d)d)Zookeeper

9. 配置机架感知的下面哪项正确

a)如果一个机架出问题,不会影响数据读写

b)写入数据的时候会写到不同机架的 DataNode 中

c)MapRece 会根据机架获取离自己比较近的网络数据

10. Client 端上传文件的时候下列哪项正确

a)数据经过 NameNode 传递给 DataNode

b)Client 端将文件切分为 Block,依次上传

c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作

11. 下列哪个是 Hadoop 运行的模式

a)单机版

b)伪分布式

c)分布式

12. Cloudera 提供哪几种安装 CDH 的方法

a)Cloudera manager

b)Tar ball

c)Yum d)Rpm

判断题

13. Ganglia 不仅可以进行监控,也可以进行告警。( )

14. Block Size 是不可以修改的。( )

15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。( )

16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。( )

17. Cloudera CDH 是需要付费使用的。( )

18. Hadoop 是 Java 开发的,所以 MapRece 只支持 Java 语言编写。( )

19. Hadoop 支持数据的随机读写。( )

20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。( )

21. NameNode 本地磁盘保存了 Block 的位置信息。( )

22. DataNode 通过长连接与 NameNode 保持通信。( )

23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。( )

24. Slave 节点要存储数据,所以它的磁盘越大越好。( )

25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。( )

26. Hadoop 默认调度器策略为 FIFO( )

27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。( )

28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。( )

29. 每个 map 槽就是一个线程。( )

30. Maprece 的 input split 就是一个 block。( )

31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。( )

32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( )

33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。( )

别走开,答案在后面哦!

1. 下面哪个程序负责 HDFS 数据存储。答案C datanode

a)NameNode

b)Jobtracker

c)Datanode

d)secondaryNameNode

e)tasktracker

2. HDfS 中的 block 默认保存几份? 答案A默认3分

a)3 份

b)2 份

c)1 份

d)不确定

3. 下列哪个程序通常与 NameNode 在一个节点启动?答案D

a)SecondaryNameNode

b)DataNode

c)TaskTracker

d)Jobtracker

此题分析:

hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和 tasktracker属于slave,master只有一个,而slave有多个SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)和NameNode运行在不同的机器上。

JobTracker和TaskTracker

JobTracker 对应于 NameNode

TaskTracker 对应于 DataNode

DataNode 和NameNode 是针对数据存放来而言的

JobTracker和TaskTracker是对于MapRece执行而言的

maprece中几个主要概念,maprece整体上可以分为这么几条执行线索:obclient,JobTracker与TaskTracker。

1、JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到Jobtracker, 然后由JobTracker创建每一个Task(即MapTask和ReceTask)并将它们分发到各个TaskTracker服务中去执行。

2、JobTracker是一个master服务,软件启动之后JobTracker接收Job,负责调度Job的每一个子任务task运行于 TaskTracker上,并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。

3、TaskTracker是运行在多个节点上的slaver服务。TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务。TaskTracker都需要运行在HDFS的DataNode上。

4. Hadoop 作者 答案C Doug cutting

a)Martin Fowler

b)Kent Beck

c)Doug cutting

5. HDFS 默认 Block Size 答案:B

a)32MB

b)64MB

c)128MB

(因为版本更换较快,这里答案只供参考)

6. 下列哪项通常是集群的最主要瓶颈:答案:C磁盘

a)CPU

b)网络

c)磁盘IO

d)内存

该题解析:

首先集群的目的是为了节省成本,用廉价的pc机,取代小型机及大型机。小型机和大型机有什么特点?

1.cpu处理能力强

2.内存够大

所以集群的瓶颈不可能是a和d

3.网络是一种稀缺资源,但是并不是瓶颈。

4.由于大数据面临海量数据,读写数据都需要io,然后还要冗余数据,hadoop一般备3份数据,所以IO就会打折扣。

7. 关于 SecondaryNameNode 哪项是正确的?答案C

a)它是 NameNode 的热备

b)它对内存没有要求

c)它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间

d)SecondaryNameNode 应与 NameNode 部署到一个节点。

多选题:

8. 下列哪项可以作为集群的管理?答案:ABD

a)Puppet

b)Pdsh

c)Cloudera Manager

d)Zookeeper

9. 配置机架感知的下面哪项正确:答案ABC

a)如果一个机架出问题,不会影响数据读写

b)写入数据的时候会写到不同机架的 DataNode 中

c)MapRece 会根据机架获取离自己比较近的网络数据

10. Client 端上传文件的时候下列哪项正确?答案B

a)数据经过 NameNode 传递给 DataNode

b)Client 端将文件切分为 Block,依次上传

c)Client 只上传数据到一台 DataNode,然后由 NameNode 负责 Block 复制工作

该题分析:

Client向NameNode发起文件写入的请求。

NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

11. 下列哪个是 Hadoop 运行的模式:答案ABC

a)单机版

b)伪分布式

c)分布式

12. Cloudera 提供哪几种安装 CDH 的方法?答案:ABCD

a)Cloudera manager

b)Tarball

c)Yum

d)Rpm

判断题:

13. Ganglia 不仅可以进行监控,也可以进行告警。( 正确)

分析:此题的目的是考Ganglia的'了解。严格意义上来讲是正确。ganglia作为一款最常用的Linux环境中的监控软件,它擅长的的是从节点中按照用户的需求以较低的代价采集数据。但是ganglia在预警以及发生事件后通知用户上并不擅长。最新的ganglia已经有了部分这方面的功能。但是更擅长做警告的还有Nagios。Nagios,就是一款精于预警、通知的软件。通过将Ganglia和Nagios组合起来,把Ganglia采集的数据作为Nagios的数据源,然后利用Nagios来发送预警通知,可以完美的实现一整套监控管理的系统。

14. Block Size 是不可以修改的。(错误 )

分析:它是可以被修改的Hadoop的基础配置文件是hadoop-default.xml,默认建立一个Job的时候会建立Job的Config,Config首先读入hadoop-default.xml的配置,然后再读入hadoop- site.xml的配置(这个文件初始的时候配置为空),hadoop-site.xml中主要配置需要覆盖的hadoop-default.xml的系统级配置。

15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。(错误 )

分析:Nagios是集群监控工具,而且是云计算三大利器之一

16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。(错误 )

分析:SecondaryNameNode是帮助恢复,而不是替代,如何恢复,可以查看

17. Cloudera CDH 是需要付费使用的。(错误 )

分析:第一套付费产品是Cloudera Enterpris,Cloudera Enterprise在美国加州举行的 Hadoop 大会 (Hadoop Summit) 上公开,以若干私有管理、监控、运作工具加强 Hadoop 的功能。收费采取合约订购方式,价格随用的 Hadoop 丛集大小变动。

18. Hadoop 是 Java 开发的,所以 MapRece 只支持 Java 语言编写。(错误 )

分析:rhadoop是用R语言开发的,MapRece是一个框架,可以理解是一种思想,可以使用其他语言开发。

19. Hadoop 支持数据的随机读写。(错 )

分析:lucene是支持随机读写的,而hdfs只支持随机读。但是HBase可以来补救。HBase提供随机读写,来解决Hadoop不能处理的问题。HBase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”,有数十亿个数据行;也可以很“宽”,有数百万个列;水平分区并在上千个普通商用机节点上自动复制。表的模式是物理存储的直接反映,使系统有可能提高高效的数据结构的序列化、存储和检索。

20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。(错误)

此题分析:

NameNode 不需要从磁盘读取 metadata,所有数据都在内存中,硬盘上的只是序列化的结果,只有每次 namenode 启动的时候才会读取。

1)文件写入

Client向NameNode发起文件写入的请求。

NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

2)文件读取

Client向NameNode发起文件读取的请求。

21. NameNode 本地磁盘保存了 Block 的位置信息。( 个人认为正确,欢迎提出其它意见)

分析:DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。NameNode返回文件存储的DataNode的信息。

Client读取文件信息。

22. DataNode 通过长连接与 NameNode 保持通信。( )

这个有分歧:具体正在找这方面的有利资料。下面提供资料可参考。

首先明确一下概念:

(1).长连接

Client方与Server方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在,此种方式常用于点对点通讯。

(2).短连接

Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.

23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。(错误 )

hadoop只能阻止好人犯错,但是不能阻止坏人干坏事

24. Slave 节点要存储数据,所以它的磁盘越大越好。( 错误)

分析:一旦Slave节点宕机,数据恢复是一个难题

25. hadoop dfsadmin –report 命令用于检测 HDFS 损坏块。(错误 )

26. Hadoop 默认调度器策略为 FIFO(正确 )

27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。(错误 )

分析:首先明白什么是RAID,可以参考网络磁盘阵列。这句话错误的地方在于太绝对,具体情况具体分析。题目不是重点,知识才是最重要的。因为hadoop本身就具有冗余能力,所以如果不是很严格不需要都配备RAID。具体参考第二题。

28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。(错误 )

29. 每个 map 槽就是一个线程。(错误 )

分析:首先我们知道什么是map 槽,map 槽->map slotmap slot 只是一个逻辑值 ( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是对应着一个线程或者进程

30. Maprece 的 input split 就是一个 block。(错误 )

31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。(错误 )

32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( 错误)

hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。

33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。(错误 )

分析:

首先明白介绍,什么ClusterID

ClusterID

添加了一个新的标识符ClusterID用于标识集群中所有的节点。当格式化一个Namenode,需要提供这个标识符或者自动生成。这个ID可以被用来格式化加入集群的其他Namenode。

二次整理

有的同学问题的重点不是上面分析内容:内容如下:

这个报错是说明 DataNode 所装的Hadoop版本和其它节点不一致,应该检查DataNode的Hadoop版本

;

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

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

阅读全文

与哪个程序负责hdfs数据存储相关的资料

热点内容
win10重置高级选项 浏览:531
昂克塞拉导航怎么升级 浏览:972
长虹空调如何配对万能遥控器app 浏览:835
怎样知道手机用过什么app 浏览:321
logfile文件夹在哪里 浏览:586
哪些数据线适合泰国 浏览:113
win732位怎么升级到64位 浏览:603
ug怎么利用宏录制编程 浏览:299
硬盘文件与Excel表格超链接 浏览:726
iphone6可用空间 浏览:485
iphone6光学变焦 浏览:24
盈彩网网站是多少 浏览:786
科豆编程scratch怎么下载 浏览:987
为什么无法连接到网络 浏览:630
linuxrcu崩溃 浏览:231
潘多拉设置访客网络 浏览:598
海外球鞋网站怎么用 浏览:910
iphone无法连接cmcc 浏览:813
电脑上的文件怎么传到苹果手机上 浏览:928
顺丰寄文件哪里可以写文件名称 浏览:290

友情链接