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

    浏览量

    15971
  • HDFS
    +关注

    关注

    1

    文章

    30

    浏览量

    9585
收藏 人收藏

    评论

    相关推荐

    地线基本概念、分类及在应用中的设计与处理方法

    地线在电气系统中的作用常被忽略,但它却是保障设备运行和人身安全的重要组成部分。本文将带您深入了解地线的基本概念、分类及其在实际应用中的设计与处理方法。 一、地线的主要作用 地线的核心功能是当电器发生
    的头像 发表于 12-03 09:55 230次阅读

    Linux应用编程的基本概念

    Linux应用编程涉及到在Linux环境下开发和运行应用程序的一系列概念。以下是一些涵盖Linux应用编程的基本概念
    的头像 发表于 10-24 17:19 220次阅读

    集电极开路的基本概念与原理

    在集成电路的广阔领域中,集电极开路作为一种独特的输出形式,扮演着举足轻重的角色。它如同一个精密控制的开关,既能实现电路的通断,又能灵活应对不同的电流需求。 集电极开路的基本概念与原理 集电极开路
    的头像 发表于 09-19 10:19 519次阅读
    集电极开路的<b class='flag-5'>基本概念</b>与原理

    纹波电压的基本概念、产生原因及测量方法

    ,因此对纹波电压的研究具有重要的实际意义。 纹波电压的基本概念 2.1 纹波电压的定义 纹波电压是指在直流电源或信号中叠加的周期性波动电压。纹波电压通常表现为正弦波形,其频率与电源或信号的频率相同。纹波电压的大小通常用
    的头像 发表于 08-29 09:34 1790次阅读

    时序逻辑电路的基本概念、组成、分类及设计方法

    时序逻辑电路是数字电路中的一种重要类型,它不仅在计算机、通信、控制等领域有着广泛的应用,而且对于理解和设计现代电子系统具有重要意义。 1. 时序逻辑电路的基本概念 时序逻辑电路(Sequential
    的头像 发表于 08-28 11:45 1158次阅读

    socket的基本概念和原理

    的通信。它是一个抽象的概念,用于表示网络中的一个通信实体。在计算机网络中,Socket允许应用程序通过网络发送和接收数据。Socket的概念最早由UNIX操作系统引入,后来被广泛应用于各种操作系统和编程语言中。 2. Socket的基本
    的头像 发表于 08-16 10:51 1104次阅读

    BP网络的基本概念和训练原理

    )的多层前馈神经网络。BP网络自1985年提出以来,因其强大的学习和适应能力,在机器学习、数据挖掘、模式识别等领域得到了广泛应用。以下将对BP网络的基本概念、训练原理及其优缺点进行详细阐述。
    的头像 发表于 07-19 17:24 1534次阅读

    卷积神经网络的基本概念、原理及特点

    基本概念、原理、特点以及在不同领域的应用情况。 一、卷积神经网络的基本概念 卷积神经网络是一种深度学习算法,它由多层卷积层和池化层堆叠而成。卷积层负责提取图像中的局部特征,而池化层则负责降低特征的空间维度,同时增加对图像位移的不变性。通过这种方式,CNN能够自
    的头像 发表于 07-11 14:38 984次阅读

    迁移学习的基本概念和实现方法

    迁移学习(Transfer Learning)是机器学习领域中的一个重要概念,其核心思想是利用在一个任务或领域中学到的知识来加速或改进另一个相关任务或领域的学习过程。这种方法在数据稀缺或领域迁移的情况下尤为有效,因为它能够显著减少对大量标记数据的需求,提高模型的学习效率和
    的头像 发表于 07-04 17:30 1585次阅读

    循环神经网络的基本概念

    循环神经网络的基本概念、循环机制、长短时记忆网络(LSTM)、门控循环单元(GRU)等方面进行介绍。 循环神经网络的基本概念 循环神经网络是一种时间序列模型,其基本思想是将序列数据中的每个元素(例如,单词、时间点等)作为输入,通过循环结构将前一个时间步的
    的头像 发表于 07-04 14:31 646次阅读

    组合逻辑控制器的基本概念、实现原理及设计方法

    广泛应用于计算机、通信、控制等领域。 本文将详细介绍组合逻辑控制器的基本概念、实现原理、设计方法、应用场景等方面的内容,以帮助读者全面了解组合逻辑控制器。 基本概念 1.1 组合逻辑 组合逻辑(Combinatorial Log
    的头像 发表于 06-30 10:26 1905次阅读

    串口通信的基本概念

    串口通信(Serial Communications)的基本概念可以归纳为以下几个方面:
    的头像 发表于 06-12 09:28 603次阅读
    串口通信的<b class='flag-5'>基本概念</b>

    频率计的基本概念和组成部分

    在现代电子科技领域,信号的频率测量是不可或缺的一部分。频率计,作为专门用于测量信号频率的电子设备,其精准度和可靠性对于电子设备的调试、维护和研发都至关重要。本文将详细介绍频率计的基本概念、工作原理、组成部分、应用领域、使用方法及注意事项,以期为读者提供全面的了解和指导。
    的头像 发表于 05-15 16:52 1117次阅读

    毫伏表的基本概念和工作原理 毫伏表的应用领域和使用方法

    和灵敏度在电压测量领域具有举足轻重的地位。本文将对毫伏表的基本概念、工作原理、应用领域、使用方法以及发展趋势等方面进行详细阐述,以期为读者提供一份全面深入的毫伏表知识手册。
    的头像 发表于 05-11 15:52 2239次阅读

    电源路径的基本概念

    电源路径是指电流从电源到负载的传输路径。在电路中,电源是提供电能的设备,而负载则是消耗电能的设备。电源路径的稳定性和效率对电路的性能和可靠性有着重要的影响。本文将介绍电源路径的基本概念。 下图展示了
    的头像 发表于 01-18 15:39 797次阅读
    电源路径的<b class='flag-5'>基本概念</b>