首页 > 其他分享 >大数据处理从零开始————1.Hadoop介绍

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

时间:2024-08-31 21:25:11浏览次数:12  
标签:HDFS 存储 Hadoop MapReduce 从零开始 数据处理 数据 分布式

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 爱奇艺系统架构

标签:HDFS,存储,Hadoop,MapReduce,从零开始,数据处理,数据,分布式
From: https://blog.csdn.net/m0_74922316/article/details/141610178

相关文章

  • 新手入门编程:从零开始的全面指南
    编程是一种通过编写代码来让计算机执行特定任务的技能。随着科技的发展,编程已经成为一项必备的技能,无论你是打算从事软件开发、数据科学,还是希望了解现代技术的运作原理。本文将深入探讨编程的基础知识、常用语言及其特点、学习编程的步骤和技巧,以及实际编程中的常见问题与解......
  • 批量插入的艺术:SQL高效数据处理指南
    批量插入的艺术:SQL高效数据处理指南在数据库的日常操作中,数据的批量插入是一项常见的任务。无论是数据迁移、初始数据填充还是定期的数据同步,批量插入都能显著提高效率。本文将深入探讨如何使用SQL进行数据的批量插入,并提供详细的代码示例,帮助您掌握这项关键技能。一、批......
  • 计算机毕设推荐-基于python的超市数据处理可视化分析
    ......
  • Python编程实战营:四款实用小项目助你快速入门,从零开始打造你的个人项目集!
    踏入编程世界的门槛,总是伴随着既兴奋又忐忑的心情。作为Python的新手,你是否渴望通过实际项目来巩固知识、提升技能?本篇文章将引领你踏上一段从理论到实践的精彩旅程,通过四个精心设计的项目,让你在趣味与挑战中快速成长。项目一:简易文本编辑器首先,我们将从基础出发,动手打造一......
  • 电商数据分析全攻略:从零开始提升运营效率
    在电商运营的世界里,数据分析是不可或缺的工具。借助精准的数据分析,商家能够更清晰地洞察市场动向,优化运营策略,从而提升销售业绩。然而,面对大量复杂的数据,许多运营者常常感到束手无策。那么,电商运营的数据分析究竟该如何开展呢?今天我们就来聊一聊这个话题。电商数据分析中的常见......
  • 从零开始的PyTorch【03】:优化你的神经网络模型
    从零开始的PyTorch【03】:优化你的神经网络模型前言欢迎回到PyTorch学习系列的第三篇!在前两篇文章中,我们学习了如何构建一个简单的神经网络并训练它,同时探索了数据集调整对模型性能的影响。今天,我们将深入探讨如何优化你的神经网络模型,使其在更复杂的任务中表现更好。我们......
  • NLP从零开始------15.文本中阶序列处理之语言模型(3)
    4. 注意力机制4.1 注意力机制        循环神经网络的一个主要局限是不能很好地建模长距离依赖,即使像长短期记忆这样的变体也只是改善而不是完全解决了长距离依赖的问题。其根本原因在于,如果序列中的第i个词需要对第j个词(假设j>i)产生影响,需经过j-i个计算步骤, 而......
  • 对数据处理过程中,缺失值和异常值应该怎么处理?
    创作不易,您的关注、点赞、收藏和转发是我坚持下去的动力!大家有技术交流指导、论文及技术文档写作指导、项目开发合作的需求可以私信联系我。在数据处理过程中,缺失值和异常值的处理是非常重要的步骤,它们可能会对模型的性能产生显著影响。以下是一些常用的处理方法:一、缺......
  • 从零开始带你玩转 AI 变现公开课
    在这个数字化时代,AI技术正以前所未有的速度改变着我们的创作与变现方式。小红书,作为年轻人喜爱的社交电商平台,更是为创作者们提供了广阔的舞台。但如何在小红书上利用AI技术实现内容创作与收益转化的双赢?我们的公开课将为你一一揭晓答案!主课程亮点:掌握DALLE模型文生图技巧,创意......
  • Hadoop生态圈(三)- HDFS(分布式文件系统)
    目录设计目标特性HDFS基本原理NameNode概述DataNode概述HDSF读写操作HDFS写数据流程HDFS读数据流程HDFS元数据管理HDFSshellHDFS解决的是海量存储的问题设计目标:故障是常态,因此故障的检测和自动快速恢复是核心适合批量处理,注重数据访问的高吞吐量。一旦写入......