大数据处理从零开始————1.Hadoop介绍

news2024/9/20 16:33:10

1. 大数据时代背景

1.1 大数据时代到来

        在微信上,随手点的一个赞;在百度上,随手输入的搜素关键词;在健康记录应用上,每天所产生的微信步数这些都是数据。我们每人每天都在产生大量数据。人类近些年所产生的数据比过去几千年所产生数据多得多,所以如何让这些储存数据,如何处理数据让这些数据产生更大的价值成为了一个新的问题。基于此大数据技术这门课程应运而生。

1.2 什么是大数据

        大数据的定义是什么?百度百科是这样说的——大数据(Big Data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

        大数据有如下几个核心特征:
        1.容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息

        2.种类(Variety):数据类型的多样性

        3.速度(Velocity):指获得数据的速度

        4.可变性(Variability):妨碍了处理和有效地管理数据的过程

        5.真实性(Veracity):数据的质量

        6.复杂性(Complexity):数据量巨大,来源多渠道

        7.低价值密度(value):合理运用大数据,以低成本创造高价值

        现在的大数据处理技术有很多,例如:Hadoop HDFS,NoSQL数据库,Apache Spark,Apache Flink,Apache NiFi,Apache Hive等等。尽管这些技术各有特点,但它们的核心目标始终是优化数据的存储和计算,以满足不断增长的数据处理需求。

大数据技术生态体系图

1.3 大数据应用案例

        最早关于大数据的故事,发生在美国第二大的超市塔吉特百货公司。为了吸引孕妇这一含金量很高的群体,塔吉特要求顾客数据分析部建立模型以期在孕妇第2个妊娠期就把她们确认出来。通过对顾客消费数据建模分析,顾客数据分析部选出25种典型商品的消费数据构建“怀孕预测指数”,可以在很小的误差范围内预测顾客的怀孕情况,便能早早把孕妇优惠广告寄给顾客。
        全球零售业的巨头沃尔玛也通过大数据获益。公司在对消费者购物行为进行分析时发现,男性顾客在购买婴儿尿片时,常会顺便搭配几瓶啤酒来犒劳自己,于是推出了将啤酒和尿布捆绑销售的促销手段。如今“啤酒+尿布”的数据分析成果也成了大数据技术应用的经典案例。

2. 初识Hadoop

2.1  Hadoop简介

        Hadoop是什么?Hadoop由Apache基金会所开发的。我们来看Apache基金会对Hadoop的定义——Hadoop软件库是一个框架,允许大型数据集使用简单的编程模型在计算机集群的分布式处理。它的目的是从单一的服务器扩展到成千上万的机器,每个服务器提供本地计算和存储。而不是依靠硬件来提供高可用性,库本身的目的是检测和处理应用层的故障,所以提供了一个高度可用的服务上的计算机集群。

        通俗来说,Hadoop是一个开源框架,主要用于处理和存储大规模数据。它允许用户在不需要了解底层分布式系统细节的情况下,开发分布式程序。Hadoop能够充分利用集群的优势,实现快速的数据处理和存储。通过Hadoop,用户可以轻松地管理和分析海量数据,从而提取有价值的信息。
       

        从上面的定义可以看出Hadoop有如下几个特点:

        Hadoop是由一系列软件库组成的框架

        Hadoop适合处理大规模数据:高吞吐量,超大数据集

        Hadoop被部署在一个集群上:高容错性,使用廉价的硬件设备

        分布式文件系统(Hadoop Distributed File System)HDFS,放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。

        Hadoop 使用 Java 开发,所以可以在多种不同硬件平台的计算机上部署和使用。其核心部件包括分布式文件系统 (Hadoop DFS,HDFS) 和 MapReduce。HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算能力,Hadoop很好的实现了Google的云计算基础架构的核心理念--GFS和BigTable等,即Hadoop实现了HDFS文件系统和MapReduce计算框架,使Hadoop成为一个分布式的计算平台。用户只需要分别实现Map和Reduce接口,即可将Job注册为可自动分布式运行的程序。因此,Hadoop不仅仅是一个用于存储的分布式文件系统,而且是可通过大型集群执行分布式计算的应用框架。狭义上Hadoop就是指其HDFS和MapReduce。

        Hadoop的物理架构是一种典型的 Master-Slave 架构。

2.2 Hadoop发展历程

        在2006年前后,谷歌发表了GFS、MapReduce和BigTable三篇相关论文,从此后Hadoop及其相关系统的开源数据管理平台如雨后春笋般涌现,迅速形成互联网数据处理的技术生态圈,其典型特征就是通过搭建无共享的MPP集群获得分布并行的数据处理能力,进而拥有高可用性和高性能的优势。

        其中由GFS发展出了HDFS,由MapReduce发展出了MR,由BigTable发展出了Hbase。

        受到这些理论影响,Doug Cutting开始了Hadoop的开发。Hadoop这个名字来源于Doug Cutting儿子的玩具大象。Hadoop 就此诞生并迅速发展,标志这云计算时代来临。

2.3 Hadoop特色和优势

        Hadoop被设计为用来部署在低廉的硬件上,能够对大量数据进行分布式处理的软件框架,Hadoop可以以一种可靠、高效和可伸缩的方式进行处理数据。Hadoop采用了分布式存储方式,提高了读写速度,并扩大了存储容量。同时采用MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效。Hadoop还采用了存储冗余数据的方式保证数据的安全性。

        Hadoop平台允许大型数据集使用简单的编程模型在计算机集群上进行分布式处理,用户可以轻松的搭建和使用分布式计算平台,通过Java或其它平台支持语言在Hadoop上开发和运行处理海量数据的应用程序。

3. 云计算、大数据与Hadoop

        什么是云计算?云计算是一种通过互联网提供计算资源和服务的技术。它允许用户随时随地访问和使用云平台上的数据、软件和硬件资源。在数字化时代,互联网已经成为基础设施。云计算使得数据中心能够像一台计算机一样去工作。通过互联网将算力以按需使用、按量付费的形式提供给用户,包括:计算、存储、网络、数据库、大数据计算、大模型等算力形态。云计算一个明显的优势是弹性,能让您按需使用各类服务,灵活扩缩容,从容应对业务流量的不确定性。

        Hadoop可以说是云计算的产物,是云算技术的一种实现。Hadoop作为一个分布式的软件框架,拥有云计算PaaS层的所有特点是云计算的重要组成部分。

云计算与Hadoop关系图
大数据和Hadoop关系图

4. Hadoop生态系统

        Hadoop主要由两部分组成:分布式文件系统HDFS和分布式计算框架MapReduce,分布式文件系统主要是用于海量数据的存储,而MapReduce则是基于此分布式文件系统对存储在分布式文件系统中的数据进行分布式计算,接下来对Hadoop的两个组成部分的架构特点进行深入的了解。

        Hadoop HDFS(Hadoop Distributed File System)是一个分布式文件系统,专为存储大规模数据而设计。它由两个主要组件组成:NameNode和DataNode。NameNode负责管理文件系统的元数据和数据块的映射,而DataNode则实际存储数据块并处理读写请求。HDFS将文件分割成固定大小的数据块,并在多个DataNode上存储副本,以提高数据的可靠性和容错性。通过这种架构,HDFS能够高效地处理和存储海量数据,适用于大数据分析和处理场景。

        MapReduce是一种编程模型和处理框架,用于大规模数据集的并行计算。其架构主要分为两个阶段:Map阶段和Reduce阶段。在Map阶段,输入数据被分割成多个数据块,映射函数对每个数据块进行处理,生成键值对。接着,这些键值对被分组并传递到Reduce阶段,汇总函数对相同键的值进行合并,生成最终结果。MapReduce框架能够自动处理任务的分配、调度和故障恢复,使得用户可以专注于数据处理逻辑,而无需关心底层的分布式计算细节。

         HDFS和MapReduce架构图如下:

        一般来说,狭义的Hadoop仅仅是指Common、HDFS和MapReduce模块。但是作为开源项目,围绕Hadoop有越来越多的软件蓬勃出现,方兴未艾,构成了一个生机勃勃的Hadoop生态圈。有时我们说Hadoop往往是指Hadoop生态圈中的软件所组成的生态系统。
        Hadoop1.x是指Hadoop的第1.0时代,从版本的角度来看基本是指在Hadoop0.23.x和Hadoop1.2.1版本之前的所有发行版,Cloudera公司发行的CDH3系列,时间大约在2013年以前,其核心主要由HDFS和MapReduce组成,HDFS是用于存储数据的,MapReduce是用于计算处理数据的。

        Hadoop2.x是指Hadoop的第2.0代,一般是指从2013年2月发布的Hadoop2.0.3版以后的版本,Cloudera公司发行的CDH4、CDH5系列,其核心组件除了原有的HDFS、MapReduce以外又增加了YARN资源管理系统, YARN负责整个集群资源的管理和调度,而原有的MapReduce则运行在YARN上面。

        Hadoop3.x是指Hadoop的第3.x代,一般是指从2017年12月发布的Hadoop 3.0.0版本以后的版本。Hadoop 3.x系列引入了多个重要的增强功能和改进,核心组件仍包括HDFS和YARN,同时在MapReduce上进行了优化,以支持更高的性能和更大的数据集。此外,Hadoop 3.x引入了支持多租户的功能、改进了HA(高可用性)机制,并增加了对容器化(如Docker)的支持,使得资源利用更加灵活和高效。此外,Hadoop 3.x还引入了新功能,如Erasure Coding,以提高数据存储的效率和容错能力。

        

        在这里我们补充以下YARN的架构图。

        YARN(Yet Another Resource Negotiator)的架构由多个关键组件组成。ResourceManager是集群的主节点,负责资源管理和任务调度,包含Scheduler和ApplicationManager。NodeManager是每个工作节点上的守护进程,负责管理本地资源和容器的执行。容器是YARN中资源分配的基本单位,包含计算资源和运行环境。每个应用程序都有一个ApplicationMaster,负责协调应用的执行和资源请求。客户端则用于提交应用程序并与ResourceManager交互。通过这种架构,YARN实现了高效的资源管理和任务调度,支持多种计算框架的并行运行。

        Hadoop生态系统包括很多,我们在下面简绍一些:
        1.Hive:Hive由Facebook开源,最初用于解决海量结构化的日志数据统计问题。Hive定义了一种类似SQL的查询语言(HiveQL),将SQL转化为MapReduce任务在Hadoop上执行,通常用于离线分析。

        2.HBase:HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“BigTable:一个结构化数据的分布式存储系统”。就像BigTable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于BigTable 的能力。
 

        3.ZooKeeper:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和HBase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

        ZooKeeper的基本运转流程:1选举Leader。2.同步数据。3.选举Leader过程中算法有很多,但要达到的选举标准是一致的。4.Leader要具有最高的执行ID,类似root权限。5.集群中大多数的机器得到响应并follow选出Leader.

        4.Mahout:Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。

5. Hadoop应用案例分析

5.1 Hadoop在百度的应用

        百度在2006年就开始关注Hadoop并开始调研和使用,2008年开始使用Hadoop作为其离线数据分析平台。Hadoop在百度主要用于如下场景:
        日志的存储和统计
        网页数据的分析和挖掘
        商业分析,如用户的行为和广告关注度等
        在线数据的反馈,及时得到在线广告的点击情况
        用户网页的聚类,分析用户的推荐度及用户之间的关联度。

5.2 Hadoop在Yahoo的应用

        关于Hadoop技术的研究和应用,Yahoo!始终处于领先地位,它将Hadoop应用于自己的各种产品中,包括数据分析、内容优化、反垃圾邮件系统、广告的优化选择、大数据处理和ETL等;
同样,在用户兴趣预测、搜索排名、广告定位等方面得到了充分的应用.

        

5.3 Hadoop在阿里的应用

5.4 饿了吗系统架构

5.5 爱奇艺系统架构

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

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

相关文章

【设计模式】创建型模式——简单工厂模式

文章目录 一、创建型模式1. 包含模式1.1 工厂模式1.2 建造者模式1.3 原型模式1.4 单例模式 二、工厂模式1. 概要1.1 意图1.2 主要解决问题1.3 何时使用1.4 如何解决1.5 关键代码1.6 使用场景1.7 优点1.8 缺点1.9 简单工厂实现 2. 简单工厂模式2.1 模式结构2.2 实例2.3 模式定义…

Charles激活

简介 Charles激活码计算 激活 Help -> Register Charles 添加 Registered Name 和计算出的 License key 点击 Register Java import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.util.Random; import java.util.Scanner;/*** program: ZK* descriptio…

开关二极管损坏如何判断

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言1. 外观检查2. 测量正向压降3. 反向电阻测量4. 电路功能测试5. 高压测试6. 加热测试 前言 送给大学毕业后找不到奋…

【Java】 为什么是split 方法按点号分割是用 “ \\. “ ?

前言: 小知识,记录自用and分享。 原因分析: 字符串的很多方法是可以使用正则表达式的,这里就包括了split这个方法。 . 在正则表达式里的意思是通配符,表示:匹配任意单个字符。那么,当使用split…

参加 帆软 BI 上海城市 课堂(08-30培训)

参加 帆软 BI 城市 课堂(0830): 由于目前是自由职业,也想学习一下新的知识 。所以参加本次的培训,总的来说还是比较专业。 培训在 上海 帆软的总部 环球港进行。时间是 13:30~17:00 老师很专业。学习中 课…

家具大卖nouhaus独立站拆解丨出海笔记

今天我们分析下一家传统外贸起家的大卖独立站:www.nouhaus.com 品牌背景是恒林股份(A股603661)旗下,算是有上市公司支持了。据资料显示:恒林股份成立于1998年,一年能卖出1000万件的办公椅和沙发&#xff0…

合并多个rtf文件

合并多个rtf文件,有2个细节: 1、不同文件之间加分页 2、编号的处理 选择一个目录 private void BtnImportingDirectoryBrowse_Click(object sender, EventArgs e){if (FbdlgDirectory.ShowDialog() DialogResult.OK){textBox1.Text FbdlgDirectory.S…

Linux---文件(1)---初识文件

目录 预备知识 文件操作接口 打开文件接口 重定向与文件操作关系 "w"方式与重定向 “a”方式与追加重定向 写入文件接口 读取文件接口 系统调用接口 参数解析 预备知识 我们知道,创建出一个空文件也要在内存中占空间。 文件文件内容文件属性 操…

raw.githubusercontent.com未能解析” 解决方案

1.操作场景 通过windows11 powershell 下载依赖包 2.报错信息如下 irm : 未能解析此远程名称: raw.githubusercontent.com 所在位置 行:1 字符: 27 & ([scriptblock]::Create((irm "https://win11debloat.raphi.re/"))) ~~~~~~~~~…

C++知识点总结(54):复杂模拟综合

复杂模拟综合 例题1. 玩具谜题2. 猴子兄弟爬山3. 浇水4. 数组旋转5. 石头剪刀布6. 巨石滚滚 例题 1. 玩具谜题 小南有一套可爱的玩具小人,它们各有不同的职业。 有一天,这些玩具小人把小南的眼镜藏了起来。 小南发现玩具小人们围成了一个圈&#xff0c…

llm 是泡沫?

这篇文章不谈技术,只想聊聊自己这两年从事 llm 工作的一些感悟。 我个人对 llm 是一种很复杂的态度。毕竟,它真的击碎了我 2023 年之前所有的技术积累,以前在 nlp 苦心钻研的训练经验、模型结构、不同任务类型的不同处理技巧,好像…

个微管理撤回删除的消息都可以查看

有没有经历过误删微信消息的尴尬时刻?😅或者想知道撤回的消息到底是什么内容?今天,我要向大家推荐一个多功能微管理神器,帮你轻松解决这些问题!💪💌 1️⃣ 多个账号同时在线 &#x…

nefu暑假集训3 并查集与最小生成树 个人模板+例题汇总

前言&#xff1a; 并查集与最小生成树的训练。 正文&#xff1a; 链接&#xff1a;并查集与最小生成树 - Virtual Judge (vjudge.net) 题目&#xff1a; A - 关押罪犯&#xff1a; #include <bits/stdc.h> using namespace std; const int N200005; int fa[N],d[N]; …

实现一个能设置MaxLine的LayoutManager

实现一个能设置MaxLine的LayoutManager 有时候&#xff0c;我们会遇到这种需求&#xff1a;一个线性的列表布局&#xff0c;当item量很少的时候&#xff0c;就是wrap_content直接展示完所有item&#xff0c;但是当item数量超过某个数时就要固定高度&#xff0c;让其变成可滑动…

AOP 面向切片编程

目录 1. 什么是AOP 2. AOP的应用场景 3. AOP在Java中的实现 4. Spring AOP概述 5. Spring AOP的配置 1.在pom.xml文件中添加Spring AOP的依赖&#xff1a; 2. 定义切面 3. 启用AOP 4. 目标类 5. 测试AOP 6. AOP与其他技术的对比 面向切面编程&#xff08;AOP, Aspec…

SPI通信(软件模拟)

1 软件SPI程序框架 2 软件SPI交换一个字节的先后顺序 3 读取W25q64芯片厂商ID,设备ID 4 宏定义W26q64指令码 5 页缓冲区最大256字节&#xff0c;超过就会忙碌 6 页编程

生产环境中变态开启devtools(强制)

写到最前面 首先&#xff0c;你已经下载了google的插件【vue devtools】&#xff0c;不知道怎么下载&#xff0c;留言博主 如果你想看的项目中的vuetools插件打开是这样的 Vue.js is detected on this page. Devtools inspection is not available because it’s in product…

【中学教资-信息技术】多媒体文件大小的存储

图像/音频/视频文件大小的计算 1 图像文件2 音频文件3 视频文件4 例题5 总结 视频讲解&#xff1a;音频文件大小/视频文件大小计算-失舵之舟 1 图像文件 压缩比原始大小/被压缩之后大小 颜色深度&#xff1a;指图像中每个像素所占的二进制位数&#xff08;bit&#xff09; n位…

BioXM一款实用的生物小软件

软件介绍 BioXM是一款非常简单明了的分子生物学软件&#xff0c;全中文操作界面非常友好。 DNA序列分析、蛋白质序列分析、多序列比对、氨基酸相似性计算、酶切位点分析、ORF分析、分子量和等电点预测、序列数据库等。 软件下载 https://pan.quark.cn/s/84df485efd6e安装教…

Vxe UI vue vxe-table 如何在表格中使用上传附件、上传图片

Vxe UI vue vxe-table 如何在表格中使用上传附件、上传图片 效果图 在表格中显示缩略图模式上传附件或图片 点击更多按钮查看全部 鼠标拖动上传 代码 <template><div><vxe-grid v-bind"gridOptions"></vxe-grid></div> </tem…