hadoop系统概览(三)

大数据不可避免地需要在计算机集群上进行分布式并行计算。因此,我们需要一个分布式数据操作系统来管理各种资源,数据和计算任务。今天,Apache Hadoop是现有的分布式数据操作系统。 Apache Hadoop是一个用于分布式存储的开源软件框架,以及商用硬件群集上的大数据的分布式处理。本质上,Hadoop由三部分组成:

•HDFS是一种分布式高吞吐量文件系统

•MapReduce用于并行数据处理的作业框架

•YARN用于作业调度和集群资源管理

HDFS将文件拆分为分布(并复制)在群集中的节点之间的大块。 为了处理数据,MapReduce通过将代码发送到具有所需数据并可以并行处理数据的节点来利用本地数据。

最初Hadoop集群资源管理是MapReduce的一部分,因为它是主要的计算范式。今天,Hadoop生态系统超越了MapReduce,并包括许多额外的并行计算框架,如Apache Spark,Apache Tez,Apache Storm等。因此,资源管理器(称为YARN)从MapReduce中分割出来,并改进以在Hadoop v2支持其他计算框架。现在MapReduce是在YARN容器中运行的一种应用程序,其他类型的应用程序也可以正常地写在YARN上运行。

HDFS

Hadoop分布式文件系统(HDFS)是一个多机器文件系统,运行在机器的本地文件系统之上,但是显示为单个命名空间,可通过hdfs:// URIs访问。它设计用于在大型廉价商品硬件群集中的机器上可靠地存储非常大的文件。 HDFS与Google文件系统(GFS)的设计相当相似。

Assumptions

HDFS实例可以由数百或数千个节点组成,这些节点由常常失效的廉价商品组件构成。这意味着一些组件在任何给定时间实际上不起作用,并且一些组件将不能从它们当前的故障中恢复。因此,持续监视,错误检测,容错和自动恢复必须是文件系统的一个组成部分。

HDFS被调整为支持一个适当数量(数千万)的大文件,通常是大小为千兆字节到太字节。最初,HDFS假设文件的一次写入多次访问模型。创建,写入和关闭的文件不需要更改。这个假设简化了数据一致性问题并实现了高吞吐量数据访问。后来添加了追加操作(仅限单个追加器)。

HDFS应用程序通常具有对其数据集的大型流式访问。HDFS主要设计用于批处理,而不是交互使用。重点在于数据访问的高吞吐量,而不是低延迟。

Architecture

HDFS具有主/从架构。 HDFS集群由单个NameNode组成,该NameNode是管理文件系统命名空间并调节客户端对文件的访问的主服务器。此外,还有一些DataNodes管理存储附加到它们运行的节点。典型的部署是具有仅运行NameNode的专用机器。集群中的每个其他计算机都运行DataNode的一个实例。

HDFS支持由目录和文件组成的传统分层文件组织。在HDFS中,每个文件存储为一个块序列(由64位唯一ID标识);文件中除最后一个之外的所有块都是相同大小(通常为64 MB)。 DataNode将每个块存储在本地文件系统上的单独文件中,并提供读/写访问。当DataNode启动时,它扫描其本地文件系统,并将托管数据块列表(称为Blockreport)发送到NameNode。

为了可靠性,每个块在多个DataNode(默认情况下为三个副本)上复制。复制品的放置对于HDFS的可靠性和性能至关重要。 HDFS采用机架感知复制放置策略来提高数据可靠性,可用性和网络带宽利用率。当复制因子为三时,HDFS将一个副本放在本地机架中的一个节点上,另一个副本位于同一机架中的不同节点上,而最后一个副本位于不同机架中的节点上。此策略减少了机架间写入通信量,这通常会提高写入性能。由于机架故障的机率远远小于节点故障的机率,所以此策略不会显着影响数据的可靠性和可用性。

--未完待续

原文发布于微信公众号 - 鸿的学习笔记(shujuxuexizhilu)

原文发表时间:2017-01-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

大数据入门基础系列之浅谈Hive和HBase的区别

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 在前面的博文里,我已经介绍了 Hive和HBase分别是什么? Apache Hive是一个构建...

2316
来自专栏美图数据技术团队

Spark on Yarn | Spark,从入门到精通

欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你,...

1741
来自专栏祝威廉

Spark Streaming 数据产生与导入相关的内存分析

我这篇文章会分几个点来描述Spark Streaming 的Receiver在内存方面的表现。

1023
来自专栏LuckQI

大数据学习~Hadoop初识三Yarn模式

1053
来自专栏蒋专的专栏

Spark 以及 spark streaming 核心原理及实践

作者在接触spark以及spark streaming之后,对spark技术的使用的经验积累以及心得体会,在此分享给大家。本文依次从spark生态,原理,基本概...

2.4K4
来自专栏祝威廉

Spark Streaming 数据接收优化

看这篇文章前,请先移步Spark Streaming 数据产生与导入相关的内存分析, 文章重点讲的是从Kafka消费到数据进入BlockManager的这条线路...

1011
来自专栏大数据

大数据干货系列(三)-Hadoop2.0总结

本文共计810字,预计阅读时长五分钟 Hadoop2.0总结 一、本质 Hadoop2.0,相比于Hadoop1.0,最明显的区别是YARN系统和HDFS2.0...

2009
来自专栏数据科学与人工智能

【Hadoop研究】Hadoop分布式文件系统HDFS的工作原理详述

Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。它能提供高吞吐...

3247
来自专栏kevindroid

Hadoop Yarn初探

2546
来自专栏Hadoop实操

Cloudera产品支持生命周期策略

本文主要介绍Cloudera企业版产品支持的生命周期,包括CDH每个版本终止支持的预计日期。了解该策略主要是方便大家在规划搭建/升级CDH集群时的版本选择,不代...

2463

扫码关注云+社区

领取腾讯云代金券