什么是hadoop?

什么是hadoop?学习最好的方式个人建议就是看官方文档

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.

Apache™Hadoop®项目开发用于可靠可伸缩分布式计算的开源软件。
Apache Hadoop软件库是一个框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它被设计成从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。库本身不是依赖硬件来提供高可用性,而是设计用于在应用程序层检测和处理故障,因此在计算机集群之上提供高可用性服务,而集群中的每台计算机都可能容易发生故障。

官网对于hadoop模块的整体介绍:
Modules
The project includes these modules:
Hadoop Common: The common utilities that support the other Hadoop modules.
Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
Hadoop YARN: A framework for job scheduling and cluster resource management.
Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.
Hadoop Ozone: An object store for Hadoop.
Hadoop Submarine: A machine learning engine for Hadoop.

模块
项目包括以下模块:
Hadoop Common:支持其他Hadoop模块的公共实用程序。
Hadoop分布式文件系统(HDFS™):提供对应用程序数据的高吞吐量访问的分布式文件系统。
**Hadoop YARN:**一个用于作业调度和集群资源管理的框架。
Hadoop MapReduce:一个基于yarn的系统,用于并行处理大型数据集。
Hadoop Ozone: Hadoop的对象存储。
Hadoop Submarine:Hadoop的机器学习引擎。

简而言之:
hadoop:提供分布式的存储(一个文件被拆分成很多个块,并且以副本的方式存储在各个节点上)和计算,是一个分布式的系统基础架构:用户可以在不了解分布式底层的情况下进行使用

一.分布式文件系统:HDFS实现将文件分布式存储在很多的服务器上
1.源自于google的GFS论文,论文发表于2003年10月**
2.HDFS事故GFS的克隆版**
3.HDFS特点:扩展性&容错性&海量的数据存储

1).扩展性:单机的时候存储的数据是有限的,分布式相当于把机器拆开存储在很多的机器之上,比如一个集群有是台机器,机器已经存储不下数据,超过存储范围,则需要进行扩展,比如加机器
2).容错性:数据存储到文件系统上去,无缘无故数据丢了,HDFS就是把文件拆成块以单位块block进行存储,把这些块以副本的方式存储在多个机器上,以提高容错
主要概念
将文件切分成制定大小的数据块并以多副本的存储在多个机器上

官网概述:
Introduction
The Hadoop Distributed File System (HDFS) is a distributed file system designed to run on commodity hardware. It has many similarities with existing distributed file systems. However, the differences from other distributed file systems are significant. HDFS is highly fault-tolerant and is designed to be deployed on low-cost hardware. HDFS provides high throughput access to application data and is suitable for applications that have large data sets. HDFS relaxes a few POSIX requirements to enable streaming access to file system data. HDFS was originally built as infrastructure for the Apache Nutch web search engine project. HDFS is part of the Apache Hadoop Core project. The project URL is http://hadoop.apache.org/.
介绍
Hadoop分布式文件系统(HDFS)是一个分布式文件系统,设计用于在普通硬件上运行。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的区别非常明显。HDFS是高度容错的,设计用于部署在低成本硬件上。HDFS提供对应用程序数据的高吞吐量访问,适用于具有大数据集的应用程序。HDFS放宽了一些POSIX要求,以支持对文件系统数据的流访问。HDFS最初是作为Apache Nutch web搜索引擎项目的基础设施构建的。HDFS是Apache Hadoop Core项目的一部分。项目URL是http://hadoop.apache.org/。

在这里插入图片描述
HDFS体系结构:
NameNode和DataNodes(官网概述)
HDFS具有主/从架构。HDFS集群由单个NameNode一个管理文件系统命名空间的主服务器和管理客户端对文件的访问组成。此外,还有许多DataNode,通常是群集中每个节点一个,用于管理连接到它们运行的​​节点的存储。HDFS公开文件系统命名空间,并允许用户数据存储在文件中。在内部,文件被分成一个或多个块,这些块存储在一组DataNode中。NameNode执行文件系统命名空间操作,如打开,关闭和重命名文件和目录。它还确定了块到DataNode的映射。DataNode负责提供来自文件系统客户端的读写请求。DataNodes还执行块创建,删除。NameNode和DataNode是设计用于在商用机器上运行的软件。这些机器通常运行GNU / Linux操作系统(OS)。HDFS是使用Java语言构建的; 任何支持Java的机器都可以运行NameNode或DataNode软件。使用高度可移植的Java语言意味着可以在各种计算机上部署HDFS。典型部署具有仅运行NameNode软件的专用计算机。群集中的每台其他计算机都运行一个DataNode软件实例。该体系结构不排除在同一台机器上运行多个DataNode,但在实际部署中很少出现这种情况。

群集中存在单个NameNode极大地简化了系统的体系结构。NameNode是所有HDFS元数据的仲裁者和存储库。系统的设计使用户数据永远不会流经NameNode。

在这里插入图片描述
数据复制
HDFS旨在可靠地在大型群集中的计算机上存储非常大的文件。它将每个文件存储为一系列块。复制文件的块以实现容错。块大小和复制因子可根据文件进行配置。

除最后一个块之外的文件中的所有块都具有相同的大小,而用户可以在添加对可变长度块的支持以追加和hsync之后启动新块而不将最后一个块填充到配置的块大小。

应用程序可以指定文件的副本数。复制因子可以在文件创建时指定,并可以在以后更改。HDFS中的文件是一次写入的(除了追加和截断),并且在任何时候都有一个写入器。

NameNode做出有关块复制的所有决定。它定期从群集中的每个DataNode接收Heartbeat和Blockreport。收到心跳意味着DataNode正常运行。Blockreport包含DataNode上所有块的列表。
在这里插入图片描述

二.分布式计算框架:MapReduce实现在很多机器上分布式并行计算
简单的词频统计流程图:
简单的词频统计流程图
三.分布式资源调度框架:YARN实现集群资源管理以及作业的调度
*YARN: Yet Another Resource Negottiator
*负责整个集群资源的管理和调度
*YARN特点:扩展性&容错性&多框架资源统一调度

YARN在生态圈中的位置:
在这里插入图片描述
YARN与MapReduce关系:
在这里插入图片描述

 YARN是一个资源管理系统,负责资源管理和调度。
 MapReduce只是运行在YARN上的一个应用程序。 如果把YARN看做"android",则MapReduce 只是一个"app"。
 MapReduce 1.0是一个独立的系统,直接运行在Linux之上。
 MapReduce 2.0则是运行YARN上的框架,且可与多种框架一起运行在YARN

这只是大致的介绍Hadoop后续学习请关注博客!欢迎大家一起探讨,共同学习进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值