相比于 HDFS1.0,HDFS 2.0 最主要的改进在哪几方面?

2021-04-14 19:00发布

13条回答
是开心果呀 - 热爱生活
2楼 · 2021-04-15 10:09

1.体系结构

hdfs的优点与缺点

HDFS 具有以下优点:

(1) 高容错性

数据自动保存多个副本。它通过增加副本的形式,提高容错性。

某一个副本丢失以后,它可以自动恢复,这是由 HDFS 内部机制实现的,我们不必关心。

(2) 适合批处理

它是通过移动计算而不是移动数据。

它会把数据位置暴露给计算框架。

(3) 适合大数据处理

数据规模:能够处理数据规模达到 GB、TB、甚至PB级别的数据。

文件规模:能够处理百万规模以上的文件数量,数量相当之大。

节点规模:能够处理10K节点的规模。

(4) 流式数据访问

一次写入,多次读取,不能修改,只能追加。

它能保证数据的一致性。

(5) 可构建在廉价机器上

它通过多副本机制,提高可靠性。



aijingda
3楼 · 2021-04-15 11:06

HDFS2.0解决HDFS1.0种单点故障和内存受限问题

1、解决单点故障 :通过主备NameNode解决,如果主NameNode发生故障,则切换到备NameNode

2、解决内存受限问题:HDFS Federation(联邦),水平扩展,支持多个NameNode,每个NameNode分管一部分目录,所有NameNode共享所有DataNode存储资源

我是大脸猫
4楼 · 2021-04-16 09:18

HDFS Federation是Hadoop最新发布版本Hadoop-0.23.0中为解决HDFS单点故障而提出的namenode水平扩展方案。该方案允许HDFS创建多个namespace以提高集群的扩展性和隔离性。本篇文章主要介绍了HDFS Federation的设计动机和基本原理。


1. 当前HDFS概况

1.1 当前HDFS架构

当前HDFS包含两层结构:

(1) Namespace 管理目录,文件和数据块。它支持常见的文件系统操作,如创建文件,修改文件,删除文件等。

(2) Block Storage有两部分组成:

Block Management维护集群中datanode的基本关系,它支持数据块相关的操作,如:创建数据块,删除数据块等,同时,它也会管理副本的复制和存放。

Physical Storage存储实际的数据块并提供针对数据块的读写服务。

【Block Storage的这两部分分别在namenode和datanode上实现,所以该模块由namenode和datanode分工完成】

当前HDFS架构只允许整个集群中存在一个namespace,而该namespace被仅有的一个namenode管理。这个架构使得HDFS非常容易实现,但是,它(见上图)在具体实现过程中会出现一些模糊点,进而导致了很多局限性(下面将要详细说明),当然这些局限性只有在拥有大集群的公司,像baidu,腾讯等出现。

1.2 当前HDFS局限性

【Block Storage和namespace高耦合】

当前namenode中的namespace和block management的结合使得这两层架构耦合在一起,难以让其他可能namenode实现方案直接使用block storage。

【namenode扩展性】

HDFS的底层存储是可以水平扩展的(解释:底层存储指的是datanode,当集群存储空间不够时,可简单的添加机器已进行水平扩展),但namespace不可以。当前的namespace只能存放在单个namenode上,而namenode在内存中存储了整个分布式文件系统中的元数据信息,这限制了集群中数据块,文件和目录的数目。

【性能】

文件操作的性能制约于单个namenode的吞吐量,单个namenode当前仅支持约60K的task,而下一代Apache MapReduce将支持多余100K的并发任务,这隐含着要支持多个namenode。

【隔离性】

现在大部分公司的集群都是共享的,每天有来自不同group的不同用户提交作业。单个namenode难以提供隔离性,即:某个用户提交的负载很大的job会减慢其他用户的job,单一的namenode难以像HBase按照应用类别将不同作业分派到不同namenode上。

2. HDFS Federation

2.1  为什么采用Federation

采用Federation的最主要原因是简单,Federation能够快速的解决了大部分单Namenode的问题。

Federation 整个核心设计实现大概用了4个月。大部分改变是在Datanode、Config和Tools,而Namenode本身的改动非常少,这样 Namenode原先的鲁棒性不会受到影响。这使得该方案与之前的HDFS版本兼容。

2.2  Federation架构

为了水平扩展namenode,federation使用了多个独立的namenode/namespace。这些namenode之间是联合的,也就是说,他们之间相互独立且不需要互相协调,各自分工,管理自己的区域。分布式的datanode被用作通用的数据块存储存储设备。每个datanode要向集群中所有的namenode注册,且周期性地向所有namenode发送心跳和块报告,并执行来自所有namenode的命令。

一个block pool由属于同一个namespace的数据块组成,每个datanode可能会存储集群中所有block pool的数据块。

每个block pool内部自治,也就是说各自管理各自的block,不会与其他block pool交流。一个namenode挂掉了,不会影响其他namenode。

某个namenode上的namespace和它对应的block pool一起被称为namespace volume。它是管理的基本单位。当一个namenode/nodespace被删除后,其所有datanode上对应的block pool也会被删除。当集群升级时,每个namespace volume作为一个基本单元进行升级。

2.3  Federation关键技术点

【命名空间管理】

Federation中存在多个命名空间,如何划分和管理这些命名空间非常关键。在Federation中并采用“文件名hash”的方法,因为该方法的locality非常差,比如:查看某个目录下面的文件,如果采用文件名hash的方法存放文件,则这些文件可能被放到不同namespace中,HDFS需要访问所有namespace,代价过大。为了方便管理多个命名空间,HDFS Federation采用了经典的Client Side Mount Table。

如上图所示,下面四个深色三角形代表一个独立的命名空间,上方浅色的三角形代表从客户角度去访问的子命名空间。各个深色的命名空间Mount到浅色的表中,客户可以访问不同的挂载点来访问不同的命名空间,这就如同在Linux系统中访问不同挂载点一样。这就是HDFS Federation中命名空间管理的基本原理:将各个命名空间挂载到全局mount-table中,就可以做将数据到全局共享;同样的命名空间挂载到个人的mount-table中,这就成为应用程序可见的命名空间视图。

更多关于Client Side Mount Table的原理,可参考:

Plan 9:http://portal.acm.org/citation.cfm?id=506413&dl=GUIDE&coll=GUIDE&CFID=82715774&CFTOKEN=20109739

The Per-Process View of Naming and Remote Execution:http://portal.acm.org/citation.cfm?id=613822

The Spring system:http://www2.informatik.hu-berlin.de/~mint/Library/Spring/spring-namingpolicy.ps

【Block Pool管理】

具体可参考文献【首要参考资料】之【2】【3】。

2.4  主要优点

【扩展性和隔离性】

支持多个namenode水平扩展整个文件系统的namespace。可按照应用程序的用户和种类分离namespace volume,进而增强了隔离性。

【通用存储服务】

Block Pool抽象层为HDFS的架构开启了创新之门。分离block storage layer使得:

<1> 新的文件系统(non-HDFS)可以在block storage上构建

<2> 新的应用程序(如HBase)可以直接使用block storage层

<3> 分离的block storage层为将来完全分布式namespace打下基础

【设计简单】

Federation 整个核心设计实现大概用了4个月。大部分改变是在Datanode、Config和Tools中,而Namenode本身的改动非常少,这样 Namenode原先的鲁棒性不会受到影响。虽然这种实现的扩展性比起真正的分布式的Namenode要小些,但是可以迅速满足需求,另外Federation具有良好的向后兼容性,已有的单Namenode的部署配置不需要任何改变就可以继续工作

3. HDFS Federation不足

【单点故障问题】

HDFS Federation并没有完全解决单点故障问题。虽然namenode/namespace存在多个,但是从单个namenode/namespace看,仍然存在单点故障:如果某个namenode挂掉了,其管理的相应的文件便不可以访问。Federation中每个namenode仍然像之前HDFS上实现一样,配有一个secondary namenode,以便主namenode挂掉一下,用于还原元数据信息。

【负载均衡问题】

HDFS Federation采用了Client Side Mount Table分摊文件和负载,该方法更多的需要人工介入已达到理想的负载均衡。


熊晓燕
5楼 · 2021-04-16 09:23

HDFS2.0解决HDFS1.0种单点故障和内存受限问题

1、解决单点故障 :通过主备NameNode解决,如果主NameNode发生故障,则切换到备NameNode

2、解决内存受限问题:HDFS Federation(联邦),水平扩展,支持多个NameNode,每个NameNode分管一部分目录,所有NameNode共享所有DataNode存储资源


不想说话-
6楼 · 2021-04-16 09:34

1.体系结构

hdfs的优点与缺点

HDFS 具有以下优点:

(1) 高容错性

数据自动保存多个副本。它通过增加副本的形式,提高容错性。

某一个副本丢失以后,它可以自动恢复,这是由 HDFS 内部机制实现的,我们不必关心。

(2) 适合批处理

它是通过移动计算而不是移动数据。

它会把数据位置暴露给计算框架。

(3) 适合大数据处理

数据规模:能够处理数据规模达到 GB、TB、甚至PB级别的数据。

文件规模:能够处理百万规模以上的文件数量,数量相当之大。

节点规模:能够处理10K节点的规模。

(4) 流式数据访问

一次写入,多次读取,不能修改,只能追加。

它能保证数据的一致性。

(5) 可构建在廉价机器上

它通过多副本机制,提高可靠性。


杨晓春
7楼 · 2021-04-16 11:05

HDFS1.0

HDFS 由三个组件构成,完全是两种不同的进程(NameNode,DataNode):

NameNode  只有一个,在一个集群上

SecondaryNmaeNode

DataNode 在集群上有很多,但是一个机器只有一个

1,2属于Master 上,3属于Slave上也叫做work上


HDFS(存储)上的各个节点说明:

Master 主节点,负责分配用户给的任务,相当于公司的老板

Slave 从节点,负责处理Master分配的任务,相当于公司的员工

Client 客户端 ,负责给Master分配任务, 相当于用户出钱给公司,给公司的Master分配任务,也可以直接和Slave通信


三岁奶猫
8楼 · 2021-04-16 13:44

1、解决单点故障 :通过主备NameNode解决,如果主NameNode发生故障,则切换到备NameNode

2、解决内存受限问题:HDFS Federation(联邦),水平扩展,支持多个NameNode,每个NameNode分管一部分目录,所有NameNode共享所有DataNode存储资源


梵梵
9楼 · 2021-04-16 15:23

HDFS2.0解决HDFS1.0种单点故障和内存受限问题

1、解决单点故障 :通过主备NameNode解决,如果主NameNode发生故障,则切换到备NameNode

2、解决内存受限问题:HDFS Federation(联邦),水平扩展,支持多个NameNode,每个NameNode分管一部分目录,所有NameNode共享所有DataNode存储资源



相关问题推荐

  • 什么是大数据时代?2021-01-13 21:23
    回答 100

    大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,而这个海量数据的时代则被称为大数据时代。随着云时代的来临,大数据(Big data)也吸引了越来越多的关注。大数据(Big data)通常用来形容一个公司创造的大量非结...

  • 回答 84

    Java和大数据的关系:Java是计算机的一门编程语言;可以用来做很多工作,大数据开发属于其中一种;大数据属于互联网方向,就像现在建立在大数据基础上的AI方向一样,他两不是一个同类,但是属于包含和被包含的关系;Java可以用来做大数据工作,大数据开发或者...

  • 回答 52
    已采纳

    学完大数据可以从事很多工作,比如说:hadoop 研发工程师、大数据研发工程师、大数据分析工程师、数据库工程师、hadoop运维工程师、大数据运维工程师、java大数据工程师、spark工程师等等都是我们可以从事的工作岗位!不同的岗位,所具备的技术知识也是不一样...

  • 回答 29

    简言之,大数据是指大数据集,这些数据集经过计算分析可以用于揭示某个方面相关的模式和趋势。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。大数据的特点:数据量大、数据种类多、 要求实时性强、数据所蕴藏的...

  • 回答 14

    tail -f的时候,发现一个奇怪的现象,首先 我在一个窗口中 tail -f test.txt 然后在另一个窗口中用vim编辑这个文件,增加了几行字符,并保存,这个时候发现第一个窗口中并没有变化,没有将最新的内容显示出来。tail -F,重复上面的实验过程, 发现这次有变化了...

  • 回答 18

    您好针对您的问题,做出以下回答,希望有所帮助!1、大数据行业还是有非常大的人才需求的,对于就业也有不同的岗位可选,比如大数据工程师,大数据运维,大数据架构师,大数据分析师等等,就业难就难在能否找到适合的工作,能否与你的能力和就业预期匹配。2、...

  • 回答 17

    最小的基本单位是Byte应该没多少人不知道吧,下面先按顺序给出所有单位:Byte、KB、MB、GB、TB、PB、EB、ZB、YB、DB、NB,按照进率1024(2的十次方)计算:1Byte = 8 Bit1 KB = 1,024 Bytes 1 MB = 1,024 KB = 1,048,576 Bytes 1 GB = 1,024 MB = 1,048,576...

  • 回答 33

    大数据的定义。大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法通过人脑甚至主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。大数据是对大量、动态、能持续的数据,通过运用新系统、新工具、新...

  • 回答 5

    MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的版本:针对不同的用户,MySQL分为两种不同的版本:MySQL Community Server社区版本,免费,但是Mysql不提供...

  • mysql安装步骤mysql 2022-05-07 18:01
    回答 2

    mysql安装需要先使用yum安装mysql数据库的软件包 ;然后启动数据库服务并运行mysql_secure_installation去除安全隐患,最后登录数据库,便可完成安装

  • 回答 5

    1.查看所有数据库showdatabases;2.查看当前使用的数据库selectdatabase();3.查看数据库使用端口showvariableslike&#39;port&#39;;4.查看数据库编码showvariableslike‘%char%’;character_set_client 为客户端编码方式; character_set_connection 为建立连接...

  • 回答 5

    CREATE TABLE IF NOT EXISTS `runoob_tbl`(    `runoob_id` INT UNSIGNED AUTO_INCREMENT,    `runoob_title` VARCHAR(100) NOT NULL,    `runoob_author` VARCHAR(40) NOT NULL,    `submission_date` DATE,    PRI...

  • 回答 9

    学习多久,我觉得看你基础情况。1、如果原来什么语言也没有学过,也没有基础,那我觉得最基础的要先选择一种语言来学习,是VB,C..,pascal,看个人的喜好,一般情况下,选择C语言来学习。2、如果是有过语言的学习,我看应该一个星期差不多,因为语言的理念互通...

  • 回答 7

    添加语句 INSERT插入语句:INSERT INTO 表名 VALUES (‘xx’,‘xx’)不指定插入的列INSERT INTO table_name VALUES (值1, 值2,…)指定插入的列INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)查询插入语句: INSERT INTO 插入表 SELECT * FROM 查...

  • 回答 5

    看你什么岗位吧。如果是后端,只会CRUD。应该是可以找到实习的,不过公司应该不会太好。如果是数据库开发岗位,那这应该是不会找到的。

  • 回答 7

    查找数据列 SELECT column1, column2, … FROM table_name; SELECT column_name(s) FROM table_name 

没有解决我的问题,去提问