Hadoop核心机制详细解析

Hadoop核心机制详细解析

Hadoop的核心机制是通过HDFS文件系统和MapReduce算法进行存储资源、内存和程序的有效利用与管理。在现实的实例中,通过Hadoop,可以轻易的将多台普通的或低性能的服务器组合成分布式的运算-存储集群,提供大数据量的存储和处理能力。

作者:InBigData来源:InBigData|2012-07-0310:57

 移动端

 收藏

  分享

Hadoop的核心机制是通过HDFS文件系统和MapReduce算法进行存储资源、内存和程序的有效利用与管理。在现实的实例中,通过Hadoop,可以轻易的将多台普通的或低性能的服务器组合成分布式的运算-存储集群,提供大数据量的存储和处理能力。

知其然,知其所以然。要想深入学习和理解Hadoop的核心机制,还要从MapReduceHDFS的原理入手。

MapReduce大事化小

作为Google提出的架构,MapReduce通过Map(映射)和Reduce(化简)来实现大规模数据(TB级)的并行计算。可以简单理解为,通过Map(映射)函数,把一组键值对映射成一组新的键值对;指定并发的Reduce(化简)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

MapReduce是一种大数据计算的开发模式和思想方法。开发人员先分析需求所提出问题的解决流程,找出数据可以并发处理的部分(Reduce),也就是那些能够分解为小段的可并行处理的数据,再将这些能够采用并发处理的需求写成Map程序(Map)。

然后就可以使用大量服务器来执行Map程序,并将待处理的庞大数据切割成很多的小份数据,由每台服务器分别执行Map程序来处理分配到的那一小段数据,接着再将每一个Map程序分析出来的结果,透过Reduce程序进行合并,最后则汇整出完整的结果。

MapReduce的整个流程就像

MapReduceHadoop分布式计算的关键技术,将要执行的问题,拆解成MapReduce的方式来执行,以达到分散运算的效果。例如要搜寻网页中的“In Big Data”这个词,可以先用Map程序,来计算出所有网页中,每一个词的位置。再使用Reduce程序,在每一个字的清单中,检索出“In Big Data”所对应的URL,您就来到了这个博客。MapReduce程序的执行过程如下:

MapReduce运行流程

MapReduce的运作方式就像快递公司一样。物流部门会将发往各地的包裹先运送到各地的物流分站,再由分站派出进行派送;快递员等每个包裹的用户签单后将数据反馈给系统汇总,完成整个快递流程。在这里,每个快递员都会负责配送,所执行的动作大致相同,且只负责少量的包裹,最后由物流公司的系统进行汇总(而不是从一个库房一个快递员直接发往各地;这样的话估计顺风、京东神马的会被人骂死)。

Hadoop集群架构中,服务器依据用途可分成Master节点和Worker节点,Master负责分配任务,而Worker负责执行任务。

Hadoop中的MasterWorker

Hadoop运算集群中的服务器依用途分成Master节点和Worker节点。Master节点中含有JobTrackerNameNodeTaskTrackerDataNode程序;Worker节点含有TaskTrackerDataNode。另外在系统的架构上,最简单的Hadoop架构,可以分成上层的MapReduce运算层以及下层的HDFS数据层。

Master节点的服务器中会执行两套程序:一个是负责安排MapReduce运算层任务的JobTracker,以及负责管理HDFS数据层的NameNode程序。而在Worker节点的服务器中也有两套程序,接受JobTracker指挥,负责执行运算层任务的是TaskTracker程序,与NameNode对应的则是DataNode程序,负责执行数据读写操作以及执行NameNode的副本策略。

MapReduce运算层上,担任Master节点的服务器负责分配运算任务,Master节点上的JobTracker程序会将MapReduce程序的执行工作指派给Worker服务器上的TaskTracker程序,由TaskTracker负责执行MapReduce工作,并将运算结果回复给Master节点上的JobTracker

HDFS数据层上,NameNode负责管理和维护HDFS的名称空间、并且控制档案的任何读写动作,同时NameNode会将要处理的数据切割成一个个档案区块(Block),每个区块是64MB,例如1GB的数据就会切割成16个档案区块。NameNode还会决定每一份档案区块要建立多少个副本,一般来说,一个档案区块总共会复制成3份,并且会分散储存到3个不同Worker服务器的DataNode程序中管理,只要其中任何一份档案区块遗失或损坏,NameNode会自动寻找位于其他DataNode上的副本来回复,维持3份的副本策略。

在一套Hadoop集群中,分配MapReduce任务的JobTracker只有1个,而TaskTracker可以有很多个。同样地,负责管理HDFS文件系统的NameNode也只有一个,和JobTracker同样位于Master节点中,而DataNode可以有很多个。

不过,Master节点中除了有JobTrackerNameNode以外,也会有TaskTrackerDataNode程序,也就是说Master节点的服务器也可以在本地端扮演Worker角色的工作。

在部署上,因为Hadoop采用Java开发,所以Master服务器除了安装操作系统如Linux之外,还要安装Java执行环境,然后再安装Master需要的程序,包括了NameNodeJobTrackerDataNodeTaskTracker。而在Worker服务器上,则只需安装LinuxJava环境、DataNodeTaskTracker

在之后的文章中将详细说明Hadoop安装部署方面的问题。这里只针对Hadoop的运行机制及内部细节做了讨论;在实际的应用中虽然还需要很多知识,但就理解HadoopMapReduce核心思想来说,以上的内容值得反复推敲。对技术,要知其然,知其所以然!

Hadoop核心机制详细解析-hadoop三大核心组件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/117490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫网易云音乐,Tkinter制作音乐播放器

目录 一、效果展示 二、环境 三、实现过程 四、源码 一、效果展示 页面的美化以及功能还有待升级~ 先来说一下已有功能吧: 可以在搜索框中通过歌曲或歌手名称进行搜索,效果和在网易云官网搜索一样。 点击开始下载,就会将搜索结果的第一…

关于语雀 23 日故障的公告

10 月 23 日语雀出现重大服务故障,且持续 7 个多小时才完全恢复,给用户使用造成极大不便,对此我们深感抱歉。经过复盘,我们在这里向大家进一步说明故障原因、修复过程和改进措施。 故障原因及处理过程: 10 月 23 日下…

xshell+xming显示jmeter的gui页面

1.下载和安装xming,下载地址:https://sourceforge.net/projects/xming/ 2.配置xming 记住这个端口,一会要用到 修改进入xming安装目录修改host文件 此处是远程服务器的ip 3.服务器执行vi /etc/ssh/sshd_config,修改成如图所示…

Class类文件中的“咖啡宝贝”

Class文件是一组以8个字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在文件之中,中间没有添加任何分隔符,整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。 字节码(Byte Code&am…

力扣第134题 加油站 c++ 暴力 + 贪心

题目 134. 加油站 中等 相关标签 贪心 数组 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,…

Mybit-Plus

1.MyBatis-Plus的代码生成器快速生成后端代码 实体类 持久层代码 注意:mapper接口都继承于BaseMapper 服务层代码 注意:service接口都继承于IService,service实现类都继承ServiceImpl 控制层代码 注意:只有类&a…

SpringAOP源码解析之advice构建排序(二)

上一章我们知道Spring开启AOP之后会注册AnnotationAwareAspectJAutoProxyCreator类的定义信息,所以在属性注入之后initializeBean的applyBeanPostProcessorsAfterInitialization方法执行的时候调用AnnotationAwareAspectJAutoProxyCreator父类(AbstractAutoProxyCre…

CDC实时数据同步

一丶CDC实时数据同步介绍 CDC实时数据同步指的是Change Data Capture(数据变更捕获)技术在数据同步过程中的应用。CDC技术允许在数据源发生变化时,实时地捕获这些变化,并将其应用到目标系统中,从而保持数据的同步性。…

Spring Security漏洞防护—HTTP 安全响应头

一、默认的 Security Header Spring Security提供了 一套默认的安全HTTP响应头,以提供安全默认值。虽然这些头信息中的每一个都被认为是最佳实践,但应该注意的是,并不是所有的客户端都使用这些头信息,所以鼓励进行额外的测试。 …

电脑软件:推荐一款非常强大的pdf阅读编辑软件

目录 一、软件简介 二、功能介绍 1、界面美观,打开速度快 2、可直接编辑pdf 3、非常强大好用的注释功能 4、很好用的页面组织和提取功能 5、PDF转word效果非常棒 6、强大的OCR功能 三、软件特色 四、软件下载 pdf是日常办公非常常见的文档格式,…

手写 Promise(2)实例方法与静态方法的实现

一:什么是 Promise Promise 是异步编程的一种解决方案,其实是一个构造函数,自己身上有all、reject、resolve这几个方法,原型上有then、catch等方法。 Promise对象有以下两个特点。 (1)对象的状态不受…

SOCKS5代理与网络安全:如何安全地进行爬虫操作

随着网络技术的不断发展,代理技术在网络安全和数据爬取中扮演着越来越重要的角色。本文将重点介绍SOCKS5代理、SK5代理和IP代理的基本概念,以及如何在保证网络安全的前提下,利用这些技术进行有效的爬虫操作。 1. SOCKS5代理与SK5代理 SOCKS…

大学兼职教师管理系统 用JAVA语言开发

一、项目介绍 基于VueSpringBootMySQL的大学兼职教师管理系统包含学生管理、教师管理、课程档案管理、课程评价管理、课程考勤管理、授课管理、课程成绩管理教龄/薪资分析可视化图表,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管…

【pdf密码】为什么我的PDF文件不能复制文字?

大家现在接触PDF文件越来越多,有的时候在网上下载的PDF文件打开之后,发现选中文字之后无法复制。甚至其他功能也都无法使用,这是怎么回事?该怎么办? 当我们发现文件打开之后,编辑功能无法使用,很…

【Bash】记录一个长命令换行的BUG

假设现在我要在terminal执行如下命令跑模型: CUDA_VISIBLE_DEVICES6 python finetune.py -c configs/quantized/resnet32_cifar100_finetune.yml --model resnet32 --data-dir ~/datasets --apex-amp --initial-checkpoint /home/zwx/projects/hawq/resnet32.pth.t…

HTTP介绍 原理 消息结构 客户端请求 服务器响应 HTTP状态码

一、HTTP介绍二、HTTP工作原理HTTP三点注意事项 三、HTTP消息结构四、客户端请求消息五、服务器响应消息HTTP请求方法 七、HTTP响应头信息八、HTTP状态码(HTTP Status Code)下面是常见的HTTP状态码:HTTP状态码分类HTTP状态码列表 一、HTTP介绍…

golang 工程组件:grpc-gateway option自定义http规则

option自定义http规则和http body响应 简介 本篇接上文 golang 工程组件:grpc-gateway 环境安装默认网关测试 默认网关配置终究是难用,本篇介绍一下proto里采用option自定义http规则以及让网关返回http响应而不是我们定义的grpc响应 option定义http…

LVS+keepalived高可用负载均衡集群

keepalived介绍 keepalived为LVS应运而生的高可用服务。LVS的调度器无法做高可用,于是keepalived这个软件。实现的是调度器的高可用。 但是keepalived不是专门为LVS集群服务的,也可以做其他代理服务器的高可用。 LVS高可用集群的组成 主调度器备调度器&…

C语言程序设计——题目:用*号输出字母C的图案。程序分析:可先用‘*‘号在纸上写出字母C,再分行输出。

题目&#xff1a;用*号输出字母C的图案。 程序分析&#xff1a;可先用*号在纸上写出字母C&#xff0c;再分行输出。 #include<stdio.h> int main() {printf(" *****\n");printf(" *\n");printf("*\n");printf("*\n");printf(&…

Ubuntu deadsnakes 源安装新版 python

前言 适用于 Ubuntu 安装 python3.11 等新版本。 因为比较常用并且不想重新编译就记录一下&#xff0c;方便以后面向CV安装。 安装 添加 deadsnakes ppa 源 sudo add-apt-repository ppa:deadsnakes/ppa更新 apt sudo apt update安装 python3.11 sudo apt install python…