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

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

前言

大数据处理系统: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做个粗泛的比较研究。

网络异常,图片无法展示
|

这份【 大数据处理系统: Hadoop源代码情景分析】共有783页,已经整理打包好,需要完整版内容的朋友,可以点击此处来获取就可以了!

相关文章
|
18天前
|
存储 分布式计算 Hadoop
大数据处理架构Hadoop
【4月更文挑战第10天】Hadoop是开源的分布式计算框架,核心包括MapReduce和HDFS,用于海量数据的存储和计算。具备高可靠性、高扩展性、高效率和低成本优势,但存在低延迟访问、小文件存储和多用户写入等问题。运行模式有单机、伪分布式和分布式。NameNode管理文件系统,DataNode存储数据并处理请求。Hadoop为大数据处理提供高效可靠的解决方案。
46 2
|
29天前
|
存储 大数据 数据处理
PHP 与大数据:构建高效数据处理系统
传统的数据处理系统往往难以应对大规模数据的处理需求,而PHP作为一种常用的服务器端脚本语言,在数据处理方面也有其独特的优势。本文将探讨如何利用PHP构建高效的大数据处理系统,结合实际案例分析其应用场景及优势所在。
15 2
|
18天前
|
分布式计算 Hadoop 大数据
大数据技术与Python:结合Spark和Hadoop进行分布式计算
【4月更文挑战第12天】本文介绍了大数据技术及其4V特性,阐述了Hadoop和Spark在大数据处理中的作用。Hadoop提供分布式文件系统和MapReduce,Spark则为内存计算提供快速处理能力。通过Python结合Spark和Hadoop,可在分布式环境中进行数据处理和分析。文章详细讲解了如何配置Python环境、安装Spark和Hadoop,以及使用Python编写和提交代码到集群进行计算。掌握这些技能有助于应对大数据挑战。
|
20天前
|
SQL 分布式计算 Hadoop
利用Hive与Hadoop构建大数据仓库:从零到一
【4月更文挑战第7天】本文介绍了如何使用Apache Hive与Hadoop构建大数据仓库。Hadoop的HDFS和YARN提供分布式存储和资源管理,而Hive作为基于Hadoop的数据仓库系统,通过HiveQL简化大数据查询。构建过程包括设置Hadoop集群、安装配置Hive、数据导入与管理、查询分析以及ETL与调度。大数据仓库的应用场景包括海量数据存储、离线分析、数据服务化和数据湖构建,为企业决策和创新提供支持。
65 1
|
21天前
|
分布式计算 资源调度 Hadoop
Apache Hadoop入门指南:搭建分布式大数据处理平台
【4月更文挑战第6天】本文介绍了Apache Hadoop在大数据处理中的关键作用,并引导初学者了解Hadoop的基本概念、核心组件(HDFS、YARN、MapReduce)及如何搭建分布式环境。通过配置Hadoop、格式化HDFS、启动服务和验证环境,学习者可掌握基本操作。此外,文章还提及了开发MapReduce程序、学习Hadoop生态系统和性能调优的重要性,旨在为读者提供Hadoop入门指导,助其踏入大数据处理的旅程。
91 0
|
1月前
|
消息中间件 SQL 分布式计算
大数据Hadoop生态圈体系视频课程
熟悉大数据概念,明确大数据职位都有哪些;熟悉Hadoop生态系统都有哪些组件;学习Hadoop生态环境架构,了解分布式集群优势;动手操作Hbase的例子,成功部署伪分布式集群;动手Hadoop安装和配置部署;动手实操Hive例子实现;动手实现GPS项目的操作;动手实现Kafka消息队列例子等
21 1
大数据Hadoop生态圈体系视频课程
|
19天前
|
数据采集 SQL 数据可视化
大数据可视化技巧:借助PowerBI提升数据故事讲述力
【4月更文挑战第8天】Power BI助力大数据可视化,支持多种数据源连接,如SQL Server、Excel,提供数据清洗与转换功能。通过选择合适图表类型、运用颜色和大小强化表达,创建交互式仪表板。讲述数据故事时,注重故事主线设计,利用叙事技巧引导观众,并添加文本说明。分享已完成报告,提升数据驱动决策能力。动手实践,体验Power BI的强大与易用。
35 0
|
2月前
|
分布式计算 DataWorks IDE
MaxCompute数据问题之忽略脏数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
48 0
|
2月前
|
SQL 存储 分布式计算
MaxCompute问题之下载数据如何解决
MaxCompute数据包含存储在MaxCompute服务中的表、分区以及其他数据结构;本合集将提供MaxCompute数据的管理和优化指南,以及数据操作中的常见问题和解决策略。
40 0
|
1天前
|
SQL 分布式计算 大数据
MaxCompute产品使用合集之怎样可以将大数据计算MaxCompute表的数据可以导出为本地文件
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。