膜拜,华为内部都在强推的783页大数据处理系统:Hadoop源代码pdf

news2024/9/25 23:18:04

前言

都说程序员工资高、待遇好, 2022 金九银十到了,你的小目标是 30K、40K,还是 16薪的 20K?作为一名 Java 开发工程师,当能力可以满足公司业务需求时,拿到超预期的 Offer 并不算难。然而,提升 Java 核心能力最快、最有效,短期内升职加薪的方法,到底是什么?

首先,你需要跳出日常工作,接触更有深度、更前沿的顶级项目。一个简单的逻辑:大厂之所以能够给到高于行业水准的薪资,正是因为即使是普通开发人员,也要应对很多复杂的场景。这些复杂场景和项目,就像“墙外的世界”,没有看过,没有接触过,你就无法进行体系化的学习和建立认知,技术壁垒自然就出现了。

所以,如果你期望通过个人努力,实现收入增长和职位晋升,那最好的方式,一定是多学多看多做。

大数据处理系统:Hadoop源代码情景分析,采用的是Hadoop2.6。如果你有点野心,想对大数据处理系统有比较深入透彻的了解,特别是想有朝一日自己也设计一个这样的系统,甚至自己把它写出来,那么你真应该认真读一下这本文,以及 Hadoop的源代码,看看人家是怎么设计怎么实现的。

然后,在最后一章,再看看Spark又是什么样的,有些什么改进。你将看到,在一个计算机集群上构筑一个大数据处理系统,哪些成分是必不可少的,哪些方面又是可以改进的,它与操作系统的关系怎样,而作为大规模计算机集群的“操作系统”又可以和应该是什么样的。

不过也尽力把它写成让非计算机专业的读者也能读懂,当然他们的困难会多一些,但也绝非无法理解。正因如此,本文叙述也许显得过于通俗直白,有时候可能还有点啰嗦。

学习目录

主要内容

全文总共分为20章的内容,因为内容比较多,所以接下来我就给大家做个粗略的介绍,每一节都有更加细化的内容!

第1章大数据与Hadoop,

第2章研究方法,我们的目的是要研究 Hadoop的源代码,而研究必须有研究方法。这里所说的研究方法是指如何阅读、分析、理解各种计算机程序源代码的方法和手段。实际上对此并没有一种标准的或者公认的方法,各人所用的方法和手段可能都不一样,这里只是把我所用的方法介绍给读者,以期抛砖引玉

第3章Hadoop集群和YARN,虽然 Hadoop也可以在单机上运行,但是这个平台的典型运行场景无疑是在多机的集群(Cluster)上。我们把运行着 Hadoop平台的集群,就Hadoop平台的边界所及,称为“Hadoop集群”。其中的每台机器都成为集群的一个“节点(node)”,节点之间连成一个局域网。这个局域网一般都是交换网,而不是路由网。这就是说,集群中只有交换机(switch),一般是二层交换机,也可能是三层交换机,但是没有普通的路由器,因为那些路由器引入的延迟太大了。不过这也不绝对,有时候可能确实需要将一个集群分处在不同网段中,而通过路由器相连,但是这并不影响 Hadoop的运行(除性能降低之外)。就 Hadoop而言,路由器与交换机在逻辑上是一样的。

第4章Hadoop的RPC机制,RPC是“RemoteProcedureCall”即“远地过程调用”的缩写。这个机制的目的,是让一台机器上的程序能像调用本地的“过程”那样来调用别的机器上的某些过程。这里所谓“过程”,在传统的 C程序设计中统称为“函数”,在 Pascal程序设计中既可以是 PROCEDURE 也可以是 FUNCTION,在Java等 OO 程序设计语言中就是 “方 法 (method)”。所 以,Java传 统 的RPC机制称为 RMI,即“远地方法启用(RemoteMethodInvocation)”。

第5章Hadoop作业的提交,在计算机上启动运行一个应用,首先要把这个应用作为“作业(Job)”提交给计算机系统。

一般这是通过键入一个命令行或点击某个图标而实现的,操作很简单。但是,如果我们要考察在提交作业时系统内部的流程,那就比较复杂了。学过操作系统的人对单机上的作业提交过程会有比较深入的了解,不过那不是本书所要关注的问题。本书所关注的是,在通常运行于计算机集群的 Hadoop系统上,作业是怎样提交的。

第6章作业的调度与指派,

第7章NodeManager与任务投运,用户提交的作业为 ResourceManager接受并得到调度运行之后,RM会设法将其投入运行。但是一 个 作 业 (Job 或 App)通常都包含着很多任务,比方说N个MapTask和1个ReduceTask,所以作业的投运终究会分解成许多任务的投运。

第8章MRAppMaster与作业投运,

第9章YARN子系统的计算框架,Hadoop中 YARN 子系统的使命是为用户提供大数据的计算框架。早期的 Hadoop,甚至早期的 YARN 都只提供一种计算框架,那就是 MapReduce。如前所述,MapReduce是一种极简的,然而在很多情况下颇为有效的计算模型和框架。

但是Hadoop的MapReduce框架要求使用者提供用Java语言编写的 Mapper和 Reducer,而 App本身则虽然简单但也要求用Java编写,这又使有些用户感到有点不便,而且 MapReduce这个模式也过于简单和单调。所以 Hadoop后来有了一些新的发展,除 MapReduce外又提供了称为Chain和Stream的计算框架。一来使用户不必非得用Java编程;二来更允许用户利用 Linux上的 Utility工具软件搭建更像“数据流”的结构。本章介绍 YARN 子系统为用户提供的计算框架,当然主要还是传统的 MapReduce框架。

第10章MapReduce框架中的数据流

第11章Hadoop的文件系统HDFS

第12章HDFS的DataNode

第13章DataNode与NameNode的互动,数据节点DataNode在运行中会与三种对端有互动。

第一种是NameNode,如前所述,对于数据块的存储地点,虽然最初是由NameNode分配和指定的,但相关的信息最终来自DataNode的报告。

第二种是用户的App(包括Shell),用户的App可以存在于集群内的任何节点上,不过那是在独立的JVM上,即使与DataNode同在-一个节点上也互相独立;然而真正把数据存储在DataNode上或从DataNode读取数据的却是App(或Shell)。

第三种是集群中别的DataNode,就是说DataNode与DataNode之间也会有通信和互动,这主要来自数据块复份replica的传输和转储。

数据块在HDFS文件系统中的存储是“狡兔三窟”的,一个数据块要分别存储在若干不同的DataNode.上,但是系统并不要求App把–个数据块分别发送给几个DataNode,而只需发送给其中的一个,后面就是DataNode之间的事了。

第14章DataNode间的互动

第15章HDFS的文件访问

第16章Hadoop的容错机制

第17章Hadoop的安全机制

第18章Hadoop的人机界面,供人们直接使用的系统须提供人机交互的手段,或称“人机界面(UserInterface)”即 UI,更确切地说是“Man-MachineInterface”,使人们得以使用和管理这个系统或平台。比

第19章Hadoop的部署和启动,系统的安装部署本来就不是小事,对于大规模的集群就更不用说了。Hadoop 一般都是在集群_上运行,但是要运维人员跑到每一台机器上去部署或启动却是不现实的,得要能在一个集中的控制台节点上完成Hadoop的部署和启动(还有关机)才好,这当然又会使整个过程增加许多技术上的复杂度。既然是在一个集中的控制台节点上部署和启动一个集群,那当然就离不开远程操作,所以Linux的远程操作工具ssh和rsyne就成了整个过程的基石。之所以是ssh和rsync,而不是别的远程操作工具(比方说Telnet),是因为这二者的安全性比较好,通信中采用了较强的加密手段。

第20章Spark的优化与改进

近年来, Hadoop与Spark 之间就像展开了一场你追我赶的竞赛。时至今日,Hadoop和Spark已经成为大数据处理平台的两个“de facto standard”,即“事实标准”。

不过Spark之于Hadoop也并非完全是对立的两种平台或产品,在很大程度上倒是对于Hadoop的补充,而并不完全是作为对于Hadoop的替代。

事实上,Spark虽然也能以“Stand alone"模式独立存在和运行,但是更多地还是利用YARN,在YARN框架上运行。而且Spark也不提供自己的文件系统,大多只是直接利用HDFS。虽然Spark并不要求必须使用HDFS,但是在大规模集群的条件下要实现“数据在哪里,计算就去哪里”这个原则,而且还要容错,实际上也没有太多的选择。

所以从功能上看,Spark的作用只是相当于一个更好的YARN子系统。

Hadoop的不足是明摆着的,总而言之,一是不够灵活、比较死板,就是专门针对MapReduce;二是性能不够好;三是使用不够方便,动不动就得写个Java程序。

那么Spark对此又有些什么样的改进呢?下面就作些介绍和评述,同时也对Hadoop和Spark做个粗泛的比较研究。

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

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

相关文章

数据结构和常用排序算法复杂度

1.顺序表 插入操作时间复杂度 最好O(1),最坏O(n),平均O(n) 移动结点的平均次数n/2 删除操作时间复杂度 最好O(1),最坏O(n),平均O(n) 移动结点的平均次数(n-1)/2 按值查找时间复杂度 最好O(1),最坏O(n),平…

数据库DQL数据查询语言

文章目录DQL数据查询语言语法:基础查询语法:WHERE子句使用AND"与"和OR"或"来连接多个条件进行查询IN(列表):等于列表其中之一(在列表中)NOT IN(列表):不在列表中,不能等于列表中的所有项BETWEEN...AND...:在一个范围之内DISTINCT去重操作。在结…

01.一个页面为啥有四个进程

打开了1个页面,Chrome启动了4个进程 并行处理 计算机中的并行处理就是同一时刻处理多个任务,比如我们要计算下面这三个表达式的值,并显示出结果。 A 12 B 20/5 C 7*8在编写代码的时候,我们可以把这个过程拆分为四个任务&…

sqli-labs/Less-57

这一关还是有14次尝试机会的 而且还是以id作为注入点的 首先输入如下语句 id1 and 12 查看回显 属于字符型 接着判断一下属于单引号还是双引号 输入1 查看回显 正确回显 在尝试一下双引号 输入1" 回显如下 肯定存在双引号包裹 但是是否有括号呢 不得而知 接着佐证一…

大一学生HTML期末作业 【html体育羽毛球6页面带注册】学生网页设计作业源码

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 校园篮球网页设计 | 足球体育运动 | 体育游泳运动 | 兵乓球 | 网球 | 等网站的设计与制作 | HTML期末大学生网页设计作业 HTML:结构 CSS&…

【仿真建模】第五课:AnyLogic入门基础课程 - 地铁车站仿真讲解

文章目录一、新建模型二、修改相关属性三、OutPart 站外部分四、站内部分4.1 FirstFloor 第一层楼一、新建模型 新建模型,单位改为分钟 二、修改相关属性 修改比例尺 三、OutPart 站外部分 新建 OutPart 智能体类型 重命名为 OutPart 修改OutPart的比例尺为50&am…

【JVM】类加载机制:分析与验证

一、加载 将类的字节码载入方法区中,内部采用 C 的 instanceKlass 描述 java 类。它的重要 field 有: _java_mirror : java 的类镜像,例如对 String 来说,就是 String.class,作用是把 klass 暴露给 java 使…

直播预约|Flink + StarRocks 实时数据分析新范式

11月 26-27 日,Apache Flink (以下简称 Flink)社区官方技术大会 Flink Forward Asia 2022 将在线举行,聚集国内外一线厂商围绕 Flink 生态的生产实践经验进行分享。 本次大会上,StarRocks 将于 27 日 中午现身实时湖仓…

CSRF 漏洞学习笔记

什么是 CSRF 漏洞 CSRF(Cross Site Request Forgery,跨站请求伪造,也叫 XSRF)漏洞是由于未校验请求来源,导致攻击者可在第三方站点发起 HTTP 请求,并以受害者的目标网站登录态(cookie、session…

ImmunoChemistry艾美捷自噬试验,红色解决方案

ImmunoChemistry艾美捷ICT的自噬测定,红色使研究人员能够检测和监测活细胞中自噬的体外发育。自噬探针是细胞渗透性的,插入自噬体和自溶体的脂质膜时发出红色荧光。可以使用流式细胞仪读取结果。 自噬是一种保守的溶酶体循环过程,细胞通过该过…

Linux——文件描述符(fd)与重定向、dup/dup2

目录 一.文件描述符 (一).含义 (二).使用 (三).标准输入/输出/错误 二.重定向与dup/dup2 (一).dup/dup2 (二).重定向 一.文件描述符 (一…

MCE | 淀粉样蛋白沉积或是阿尔茨海默症发展“驱动者”

近日,Cell 在线发表的论文 “Spatial Transcriptomics and In Situ Sequencing to Study Alzheimer’s Disease” 中,研究团队在 AD 小鼠模型中,利用空间转录组学研究淀粉样斑块周围直径 100 μm 的组织结构域的转录变化,证明了丰…

Web(二)html5基础-文档头部(知识训练和编程训练)

web知识训练_html5_文档头部标签及属性 web编程训练_html5_文档头部 第1关_页面标题及字符集的设置 <!DOCTYPE html> <html> <head><!-- ********* Begin ********* --><meta charset"utf-8"><title>设置标题</title>&…

《传统文化典藏馆》前端模板

一个基于多种插件的前端二次开发——弘扬中华传统文化的前端模板&#xff0c;内容丰富&#xff0c;可做学习前端技术使用。 主要技术实现&#xff1a;HTML、CSS、JavaScript 下载链接&#xff1a; 弘扬中华传统文化前端模板-Javascript文档类资源-CSDN下载《传统文化典藏馆》…

图像分割 - 分水岭算法

目录 1. 介绍 2. 分水岭算法的实现 距离变换 连接连通分量 3. 代码 1. 介绍 图像是由x&#xff0c;y表示的&#xff0c;如果将灰度值也考虑进去的话&#xff0c;那么一幅图像需要一个三维的空间去表示。 这样就可以把x&#xff0c;y轴比作大地&#xff0c;将灰度值的z轴…

产品流程图设计

一个产品设计之初&#xff0c;必先从流程图做起&#xff0c;流程图可以用来表达产品各式各样的流程&#xff0c;好的流程图&#xff0c;可以快速让整个团队熟悉理解业务&#xff0c;并优化业务。 一、常用的流程图图标含义 流程图通常由起止框、处理框、流程线、判断框、输出输…

使用HTML制作静态网站 中国传统文化 丝绸之路 (学生网页设计作业源码)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

HummerRisk V0.5.2:升级对象存储、云检测、云审计和K8s资源态势等

HummerRisk V0.5.2发布&#xff1a;对象存储增加风险检测和操作、云检测支持七牛云、操作审计支持 AWS&#xff0c;提升 K8s 资源态势&#xff0c;并支持在线/离线升级漏洞库。 感谢社区中小伙伴们的反馈&#xff0c;你们的认可是我们前进的动力。 HummerRisk 保持高速的迭代…

Web App、Hybrid App、Native App 横向对比

移动端的开发方式三分天下&#xff1a;纯原生&#xff08;Native App&#xff09;、混合开发&#xff08;Hybird App&#xff09;、网页应用&#xff08;Web App&#xff09;。 纯原生&#xff08;Native App&#xff09;&#xff1a;是在 Android、iOS 等移动平台上利用提供的…

2023第三届中国数字化人才国际峰会

会议背景 中商产业研究院预测&#xff0c;2022年我国数字经济规模将增至48.9万亿元&#xff0c;数字经济在GDP中的比重将超过40%。随着中国经济数字化转型不断深入的同时&#xff0c;数字化人才缺口却近1100万。中国信息通信研究院发布的《数字经济就业影响研究报告》指出&…