0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

hadoop环境的基本概念和部署方法

汽车玩家 来源:今日头条 作者:不一样的程序猿 2020-03-15 17:14 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1概述

1.1目的

初步了解hadoop,初步掌握hadoop环境的部署方法。

1.2基本概念

hadoop的核心主要包含:HDFS和MapReduce

HDFS是分布式文件系统,用于分布式存储海量数据。

MapReduce是分布式数据处理模型,本质是并行处理

2基本概念

2.1HDFS

2.1.1HDFS是什么?

HADOOP DISTRIBUTED FILE SYSTEM,简称HDFS,是一个分布式文件系统。它是谷歌的GFS提出之后出现的另外一种文件系统。它有一定高度的容错性,而且提供了高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 提供了一个高度容错性和高吞吐量的海量数据存储解决方案。

在最初,HADOOP是作为Apache Nutch搜索引擎项目的基础架构而开发的,后来由于它独有的特性,让它成为HADOOP CORE项目的一部分。

2.1.2HDFS的设计思路?

是什么提供它高吞吐量的数据访问和适合大规模数据集的应用的特性呢,这就要说一下它的设计思路。

首先HDFS的设计之初就是针对超大文件的存储的,小文件不会提高访问和存储速度,反而会降低;其次它采用了最高效的访问模式,也就是经常所说的流式数据访问,特点就是一次写入多次读取;再有就是它运行在普通的硬件之上的,即使硬件故障,也就通过容错来保证数据的高可用。

2.1.3HDFS的一些概念

Block:大文件的存储会被分割为多个block进行存储。默认为64MB,每一个blok会在多个datanode上存储多份副本,默认为3份。[这些设置都能够通过配置文件进行更改]

Namenode:主要负责存储一些metadata信息,主要包括文件目录、block和文件对应关系,以及block和datanote的对应关系

Datanode:负责存储数据,上面我们所说的高度的容错性大部分在datanode上实现的[还有一部分容错性是体现在namenode和secondname,还有jobtracker的容错等]。

2.1.4HDFS的基础架构图

hadoop环境的基本概念和部署方法

HDFS的基础架构图

2.1.5解析HDFS带来的好处

高吞吐量访问:HDFS的每个block分布在不同的rack上,在用户访问时,HDFS会计算使用最近和访问量最小的服务器给用户提供。由于block在不同的rack上都有备份,所以不再是单数据访问,所以速度和效率是非常快的。另外HDFS可以并行从服务器集群中读写,增加了文件读写的访问带宽。

高容错性:上面简单的介绍了一下高度容错。系统故障是不可避免的,如何做到故障之后的数据恢复和容错处理是至关重要的。HDFS通过多方面保证数据的可靠性,多分复制并且分布到物理位置的不同服务器上,数据校验功能、后台的连续自检数据一致性功能,都为高容错提供了可能。

容量扩充:因为HDFS的block信息存放到namenode上,文件的block分布到datanode上,当扩充的时候,仅仅添加datanode数量,系统可以在不停止服务的情况下做扩充,不需要人工干预。

2.2MapReduce

从它名字上来看就大致可以看出个缘由,两个动词Map和Reduce。

Map(展开)就是将一个任务分解成为多个任务,Reduce就是将分解后多任务处理的结果汇总起来,得出最后的分析结果。

2.2.1MapReduce原理

在Hadoop中,每个MapReduce任务都被初始化为一个Job,每个Job又可以分为两种阶段:map阶段和reduce阶段。这两个阶段分别用两个函数表示,即map函数和reduce函数。map函数接收一个形式的输入,然后同样产生一个形式的中间输出,Hadoop函数接收一个如形式的输入,然后对这个value集合进行处理,每个reduce产生0或1个输出,reduce的输出也是形式的。

2.2.2Map的过程

MapRunnable从input split中读取一个个的record,然后依次调用Mapper的map函数,将结果输出。map的输出并不是直接写入硬盘,而是将其写入缓存memory buffer。当buffer中数据的到达一定的大小,一个背景线程将数据开始写入硬盘。在写入硬盘之前,内存中的数据通过partitioner分成多个partition。在同一个partition中,背景线程会将数据按照key在内存中排序。每次从内存向硬盘flush数据,都生成一个新的spill文件。

当此task结束之前,所有的spill文件被合并为一个整的被partition的而且排好序的文件。reducer可以通过http协议请求map的输出文件,tracker.http.threads可以设置http服务线程数。

2.2.3Reduce的过程

当map task结束后,其通知TaskTracker,TaskTracker通知JobTracker。对于一个job,JobTracker知道TaskTracer和map输出的对应关系。reducer中一个线程周期性的向JobTracker请求map输出的位置,直到其取得了所有的map输出。reduce task需要其对应的partition的所有的map输出。reduce task中的copy过程即当每个map task结束的时候就开始拷贝输出,因为不同的map task完成时间不同。reduce task中有多个copy线程,可以并行拷贝map输出。当很多map输出拷贝到reduce task后,一个背景线程将其合并为一个大的排好序的文件。当所有的map输出都拷贝到reduce task后,进入sort过程,将所有的map输出合并为大的排好序的文件。最后进入reduce过程,调用reducer的reduce函数,处理排好序的输出的每个key,最后的结果写入HDFS。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Hadoop
    +关注

    关注

    1

    文章

    90

    浏览量

    16815
  • HDFS
    +关注

    关注

    1

    文章

    32

    浏览量

    10066
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TVS二极管的基本概念和主要作用

    芝识课堂的全新内容又和大家见面啦!从本期开始,我们将用四节课为大家系统介绍一位在电路设计中默默奉献的“无名英雄”——TVS二极管。我们会从它的基本概念、工作原理,聊到如何为电路挑选合适的型号、布局
    的头像 发表于 11-28 09:27 3529次阅读
    TVS二极管的<b class='flag-5'>基本概念</b>和主要作用

    如何快速在云服务器上部署Web环境

    如何快速在云服务器上部署Web环境
    的头像 发表于 10-14 14:16 299次阅读

    USB/HID及其基本概念

    USB帧概念 如上图所示,在USB1.1规范当中,把USB总线时间按帧划分,每一帧占用时间是1ms; 每一帧内的最开始处是SOF token,在SOF内包含有11位的帧号; 每一帧的SOF帧号相比前
    的头像 发表于 08-20 10:32 3089次阅读
    USB/HID及其<b class='flag-5'>基本概念</b>

    AICube生成部署文件失败的原因?怎么解决?

    我按照网上的方法安装了dotnet,和AICube,并且我是安装在非中文路径,但是尝试了一天了,都不能成功的生成部署文件,我使用软件自带的样例,但是就是不能生成部署文件 期待结果和实际结果
    发表于 08-05 06:26

    ARM入门学习方法分享

    。 以下是一些入门学习方法的分享: 一、 理解基本概念:首先,了解ARM是什么以及它的基本概念是很重要的。ARM(Advanced RISC Machines)指的是一种精简指令集计算机(RISC
    发表于 07-23 10:21

    电压波动与闪变的基本概念

    如果您是电力系统工程师、电气设备维护人员或者相关专业的学生,应该注意到了有关电能质量的国家标准GB/T 12326-2008是有关电压波动和闪变的,那这两个参数的考核意义是什么?国家标准规定这两个参数如何计算、测量和考核?这篇文章带您全面了解电压波动和闪变的基本概念、重要性以及国家标准的规定。
    的头像 发表于 07-22 14:10 2111次阅读
    电压波动与闪变的<b class='flag-5'>基本概念</b>

    群延迟的基本概念和仿真实例分析

    在高速数字通信和射频系统中,信号从发送端到接收端的传输过程中会遇到各种失真和畸变。群延迟(Group Delay)作为描述系统相位线性度的重要参数,直接影响着信号保真度和系统性能。本文将深入浅出地介绍群延迟的基本概念、应用场景,并通过仿真示例展示其在实际工程中的重要性。
    的头像 发表于 07-08 15:14 1193次阅读
    群延迟的<b class='flag-5'>基本概念</b>和仿真实例分析

    第十三章 通讯的基本概念

    本章介绍通讯基本概念,包括串行/并行、全双工/半双工/单工、同步/异步通讯,还提及通讯速率中比特率与波特率的概念
    的头像 发表于 05-22 17:29 1746次阅读
    第十三章 通讯的<b class='flag-5'>基本概念</b>

    基于RV1126开发板的板卡Docker环境部署方法

    随时随地进行部署。Dockerfile、Image(镜像)和Container(容器)为Docker中的三个重要概念。通过Image我们可以创建许多个Container,通过Dockerfile这个
    的头像 发表于 04-16 10:04 485次阅读
    基于RV1126开发板的板卡Docker<b class='flag-5'>环境</b><b class='flag-5'>部署</b><b class='flag-5'>方法</b>

    DeepSeek企业级部署RakSmart裸机云环境准备指南

    RakSmart裸机云环境部署DeepSeek的企业级环境准备指南,内容涵盖关键步骤和注意事项,主机推荐小编为您整理发布DeepSeek企业级RakSmart裸机云部署指南。
    的头像 发表于 03-24 10:07 754次阅读

    如何部署OpenVINO™工具套件应用程序?

    编写代码并测试 OpenVINO™ 工具套件应用程序后,必须将应用程序安装或部署到生产环境中的目标设备。 OpenVINO™部署管理器指南包含有关如何轻松使用部署管理器将应用程序打包并
    发表于 03-06 08:23

    了解虚拟电厂的基本概念

    虚拟电厂的基本概念: 虚拟电厂是一种基于现代信息技术和能源互联网的能源管理模式,它将分散的、可再生能源和储能设备通过虚拟化技术进行集成和管理,形成一个具有集中调度、统一运营和优化控制的虚拟化电力系统
    的头像 发表于 12-24 17:12 2049次阅读
    了解虚拟电厂的<b class='flag-5'>基本概念</b>

    傅立叶变换的基本概念 傅立叶变换在信号处理中的应用

    傅里叶变换的基本概念 傅里叶变换是一种数学变换,它能够将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。这种变换在不同的研究领域有多种变体形式,如连续傅里叶变换
    的头像 发表于 12-06 16:48 2322次阅读

    自然语言处理与机器学习的关系 自然语言处理的基本概念及步骤

    Learning,简称ML)是人工智能的一个核心领域,它使计算机能够从数据中学习并做出预测或决策。自然语言处理与机器学习之间有着密切的关系,因为机器学习提供了一种强大的工具,用于从大量文本数据中提取模式和知识,从而提高NLP系统的性能。 自然语言处理的基本概念 语言模型(Lang
    的头像 发表于 12-05 15:21 2540次阅读

    光伏是什么原理 光伏发电的基本概念

    光伏是光生伏特效应的简称,而光伏发电则是利用这一效应将光能直接转变为电能的一种发电方式。以下是关于光伏原理和光伏发电基本概念的介绍: 一、光伏原理 光伏原理主要基于半导体材料的光电效应。当光子(光
    的头像 发表于 12-05 11:01 5343次阅读