Hadoop起源以及Google三篇论文介绍

2023-10-08 13:10

本文主要是介绍Hadoop起源以及Google三篇论文介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、什么是大数据?

1.1 大数据核心的问题有:

    1、海量数据如何存储?2、海量数据如何计算?

1.2 大数据解决了以上两个问题。举两个例子:

    1、大型电商网站的商品推荐,海量的历史的售卖数据如何存储?如何从海量的历史售卖数据中计算出盈利最大化的数据推荐给用户?2、天气预报,海量的天气数据如何存储?如何从海量的历史数据中计算预测出未来的天气?

二、传统数据处理过程与大数据体系

随着数据库的增大,传统的数据处理无论是存储数据的能力还是处理数据的能力都瓶颈渐显。而大数据的诞生更好地处理了以上两个问题。传统数据处理体系与大数据体系的区别如下图:
传统数据处理过程与大数据体系对比

OLTP与OLAP

OLTP:Online Transaction Processing 联机事务处理,针对小数据进行增删改。
如银行转账。
LOAP:Online Analytic Processing 联机分析处理,针对大数据的分布式处理,
通常为  select(分析).数据仓库是一种OLAP的实现。MapReduce、Spark可以看成是数据仓库的一种解决方案

三、Google三篇论文

1、《分布式文件系统》
2、《分布式计算模型》
3、《BigTable》

3.1 分布式文件系统的体系结构

3.1.1 传统的文件系统存在如下问题:
1、硬盘不够大。
2、数据存储单份,比较危险。

而Google提出的GFS(Google File System)思想能解决以上问题。GFS核心的思想是硬盘横向扩展以及数据冗余。

3.1.2 GFS的优点:
* 理论上能存储无限数据,因为硬盘可以横向扩展。
* 容错性,数据冗余多份,多份数据同时损坏的概念几乎为零。
* 存储大数据的性能比传统关系型数据库好。

3.1.3 分布式文件系统HDFS体系结构如下图:

分布式文件系统基本架构

其中上传数据到分布式文件系统的基本过程如下(具体过程后面的文章再讲):
1、客户端上传数据块到其中一个硬盘。
2、分布式文件系统会根据机架感知计算出存储数据库的位置,通过水平复制冗余多份数据。

那么何为机架感知?如下图:
机架感知

3.1.4 分布式文件系统如何提高查询速度?
(HDFS通过倒排索引存储元数据)
采用倒排索引,倒排索引本质上也是索引,那么什么是索引?
索引
说到倒排索引能联想到正排索引。那么什么是正排索引和倒排索引。通过如下例子来说明:

正排索引:根据文件找到关键字(如所有引擎爬到一个文件,这个文件提取出10个关键字,根据这个文件找到这10个关键字)

倒排索引:在搜索引擎中输入一个关键字,需要搜索出相关的文件,如果使用正排索引,需要遍历所有文件,这是不可能去遍历的(效率太低)。就产生了倒排索引,倒排索引是记录关键字对应文件的位置,把文件的位置根据关键字存起来,那么输入一个关键字的时候,就知道这个关键字所对应的文件都在什么地方,从而快速搜索得到相关的文件。

如下图例子:
什么是倒排索引

3.2分布式计算模型

3.2.1 来源:分布式计算模型来源于PageRank(网页排名)

3.2.2 什么是PageRank?
Google每天爬取海量的网页,那么如果按照重要程度来排名网页,应该如何排序?
如下图例子,下图说明的是4个网页之间如何排序,核心思想是把网页之间的关系转换成矩阵,因为矩阵是可以计算的,那么可以计算出各个网页的重要程度,用数据来表示,数字越大表示越重要。但是Google每天爬取的网页数量是非常庞大的,实际上不可能用一个矩阵来计算,因此分布式计算是来解决这个问题的。核心思想是把一个大的矩阵拆分成很多足够小的矩阵,计算每个小得矩阵,再合并各个小矩阵的结果,从而得出大矩阵的结果,而这个过程是在分布式环境中运行的,如下图:
pageRank

3.2.3 分布式计算框架MapReduce

关于MapReduce,有几点需要注意:
1、Map阶段的输出,是Reduce阶段的输入。每个Map输出的是一个值,Reduce阶段的输入是一个集合,集合中的每个元素就是Map的每个输出值。
2、Map的输入来自HDFS,Reduce也输出倒HDFS。
3、图中分别有4对key-value值。分别是k1 v1,k2 v2,k3 v3 ,k4 v4,分别是Map的输入,Map的输出,reduce的输入,reduce的输出。
4、k2=k3,v2的类型和v3的类型一致
5、MapReduce所有的输入输出类型必须是Hadoop的类型:LongWritable,java中得String对应Hadoop中得Text,java中得null对应hadoop中得NullWritable.
6、MapReduce的输入输出必须实现hadoop的序列化,除了原生类型,也可以是自定义类型,但必须实现hadoop序列化。
7、从hadoop2.x后,MapReduce程序必须运行在Yarn框架中,本地模式除外(本
地模式没有YARN,也没有HDFS,本地模式中的MapReduce就是一个单一的java程序)
Mapreduce计算框架

3.3 BigTable

3.3.1 大表的基本思想:把所有数据存入一张表,通过空间换取时间。

3.3.2 HBase是hadoop生态中大表的实现,看下面一个例子,对比数据存在关系型数据库Oracle和存在HBase中
大表

这篇关于Hadoop起源以及Google三篇论文介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/165492

相关文章

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数