大数据框架-Hadoop

news2024/11/17 19:41:57

大数据框架-Hadoop

1.什么是大数据

大数据是指由传统数据处理工具难以处理的规模极大、结构复杂或速度极快的数据集合。这些数据集合通常需要使用先进的计算和分析技术才能够处理和分析,因此大数据技术包括了大数据存储、大数据处理和大数据分析等方面的技术和工具。

大数据的特点包括以下几个方面:

  1. 规模大:数据集合通常包含数千亿、数万亿甚至更多的数据,远远超过传统数据处理工具的处理能力。
  2. 结构复杂:数据集合通常包含多种类型的数据,包括结构化、半结构化和非结构化数据,这些数据通常需要经过清洗和转换才能进行处理。
  3. 速度快:数据集合通常包含实时或准实时产生的数据,需要使用实时处理技术进行处理和分析。
  4. 价值高:数据集合通常包含有价值的信息,可以用于支持业务决策、优化运营和发现新的商业机会等。

大数据技术包括了分布式存储系统(如Hadoop、Spark等)、分布式计算框架、数据挖掘和机器学习算法、实时数据流处理技术等多个方面,是数据科学、人工智能等领域的重要支撑。

2.Hadoop基本概念

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

Hadoop 是一个开源的分布式计算框架,用于存储和处理大规模的结构化和非结构化数据。Hadoop 由两个主要组件组成:分布式文件系统 HDFS 和分布式计算框架 MapReduce。

HDFS 是一个分布式文件系统,可以将大规模数据集合分布式地存储在多个节点上。每个节点都可以存储数据的一部分,并提供数据备份和恢复机制,以保证数据的可靠性和可用性。HDFS 的主要优势在于可以容纳超大规模的数据,同时也具有高可靠性和高可扩展性。

MapReduce 是一种分布式计算框架,可以将大规模数据集合分布式地处理和分析。MapReduce 模型的核心思想是将大规模数据集合拆分成多个小的数据块,然后将这些小数据块分发到不同的计算节点上进行计算。这些计算节点将计算结果合并起来,形成最终的结果。MapReduce 模型的优势在于可以高效地处理大规模数据集合,并且具有高可靠性和高可扩展性。

除了 HDFS 和 MapReduce,Hadoop 还提供了一些其他的组件,如 YARN(资源调度和管理系统)、HBase(NoSQL 数据库)、Spark(分布式计算框架)等。这些组件共同构成了 Hadoop 生态系统,可以支持更加复杂和多样化的数据处理需求。

简单理解:

  • HDFS-使用分布式文件系统存储数据
  • MapReduce-类似于JAVA中Stream流处理

Hadoop是一个开源的分布式计算框架,用于处理大数据集。它的设计目标是能够在大量的计算机集群上运行,以处理海量数据。以下是一个类比来解释Hadoop的工作原理:

假设你需要清理你的房子,但你只有一把扫帚和一个垃圾桶,而你的房子很大,你一个人清理可能需要很长时间。但是如果你有很多朋友来帮忙,每个人都可以拿一把扫帚和垃圾桶,分别清理不同的区域,然后将垃圾桶中的垃圾倒入一个大垃圾桶中,那么清理的速度就会快很多。

你就是Hadoop的用户,你需要处理的是大量的数据。而你的朋友们就是Hadoop的集群,每个节点都可以处理数据的一部分。Hadoop会将数据分成若干份,然后分配给不同的节点处理。处理完成后,每个节点都会将它们的处理结果传回一个中心节点,中心节点将这些结果组合起来,形成最终的结果。

Hadoop的工作原理就像是你和你的朋友们清理房子一样,每个节点都可以独立地处理一部分数据,然后将结果合并起来形成最终结果。这种分布式处理方式使得Hadoop可以处理大量的数据,并且具有高可靠性和可扩展性。

3.Hadoop基本核心组件

简述

Hadoop 集群包含一个 NameNode(NameNode作为主服务器,管理文件系统的命名空间和客户端对文件的访问]操作) 和大量 DataNode(DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来,使用DataNode集群管理、存储的数据)。

img

NameNode

单独机器上运行的软件,它负责管理文件系统名称空间和控制外部客户机的访问。

NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上。FsImage 和 EditLog 文件也需要复制副本,以防文件损坏或 NameNode 系统丢失

在Hadoop分布式文件系统(HDFS)中,NameNode可以被看作是一个“大管家”,它管理整个HDFS的文件和数据块,负责分配和协调各个数据节点的存储任务。当客户端需要读写数据时,需要向NameNode查询相应数据块的位置信息,然后才能与对应的数据节点进行通信。因此,NameNode可以理解为一个控制中心,负责管理整个HDFS系统,确保数据的可靠性和高效性。可以将HDFS比作一个“大数据仓库”,存储着各种类型的数据,如日志、文本、图片、视频等等。这些数据被分成多个数据块并存储在不同的数据节点上,而NameNode则维护了每个数据块的位置信息以及对应的数据节点,它是HDFS的“头脑”和“心脏”。当客户端需要读写数据时,需要先向NameNode查询相应数据块的位置信息,然后才能与对应的数据节点进行通信。因此,NameNode的性能和可靠性对整个HDFS的运行效率和稳定性有着至关重要的作用。同时,为了保证数据的可靠性,NameNode还会自动触发数据块的复制过程,以保证数据不会因为数据节点的故障而丢失。

Secondary NameNode

Secondary NameNode是Hadoop中的一个辅助节点,它并不是NameNode的备用节点,而是用来帮助NameNode进行检查点的生成和管理。在Hadoop中,NameNode负责管理文件系统的元数据,包括文件名、目录结构、权限等信息,而这些信息存储在内存中,一旦NameNode发生故障,数据就会丢失。为了避免这种情况,Hadoop引入了Secondary NameNode,它定期从NameNode中获取元数据信息,并生成一个检查点,将元数据信息存储到磁盘上。当NameNode发生故障时,可以从这个检查点中恢复数据,避免数据的永久性丢失。需要注意的是,Secondary NameNode并不是NameNode的备用节点,它只是用来生成检查点的辅助节点。当NameNode发生故障时,需要使用其他的方式来恢复数据,例如使用NameNode的备份节点或者使用数据复制等技术来保证数据的可靠性。

可以将Secondary NameNode比喻成一个“数据备份助手”,它可以帮助Hadoop的NameNode定期备份元数据信息,防止NameNode故障导致数据的永久性丢失。就像我们平时使用电脑一样,我们会将重要的文件备份到其他存储介质中,以备不时之需。Secondary NameNode在Hadoop中的作用就类似于这个备份过程。

DataNode

在Hadoop分布式文件系统(HDFS)中,DataNode是指存储实际数据块的节点,也可以被称为数据节点。它们是HDFS中的工作节点,负责存储和管理文件系统中的实际数据。DataNode节点通常被安装在普通服务器上,它们通过网络与NameNode节点通信,并按照NameNode节点的指令进行数据的读写操作。DataNode节点上的存储空间被划分成多个数据块,每个数据块大小通常为64MB或128MB。当客户端向HDFS写入数据时,数据会被切分成多个数据块,并且每个数据块会存储在不同的DataNode节点上。同样地,当客户端需要读取数据时,需要向NameNode查询相应数据块的位置信息,然后才能与对应的DataNode节点进行通信获取数据。DataNode节点不仅负责数据的存储,还负责数据的复制和数据块的恢复。当DataNode节点失效时,NameNode会自动将该节点上的数据块进行复制,以保证数据的可靠性和可用性。同时,当DataNode节点上的某个数据块损坏或丢失时,HDFS还可以通过其它DataNode节点上的备份数据块进行恢复。

DataNode 就像是一家公司的库房,存储着公司的货物,而这些货物又被复制到了多个仓库中,以实现货物的备份和冗余。同时,每个库房都会定期向公司的总部汇报自己的存货情况和库存状态,当总部检测到某个库房出现问题时,会将该库房的货物转移到其他仓库中,确保货物不会丢失。就像 Hadoop 中的 DataNode 一样,它们都是存储数据的节点,负责数据的存储和备份,同时也定期向主节点汇报自己的状态信息,以确保数据的完整性和可用性。

YARN

Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的一种资源管理框架,用于管理Hadoop集群中的资源和作业调度。

  1. 资源管理:就像调度中心要负责分配工人和机器一样,YARN要负责分配Hadoop集群中的计算资源,包括内存、CPU等等,以保证每个任务都能够获得足够的资源来运行。
  2. 作业调度:就像调度中心要安排任务的执行顺序一样,YARN也要根据任务的优先级和依赖关系来安排任务的执行顺序,以确保整个工厂的生产效率和质量。
  3. 多计算框架支持:就像调度中心可以调度不同类型的任务一样,YARN也可以支持不同的计算框架,例如MapReduce、Spark、Flink等等,以满足不同的业务需求。
  4. 高可靠性:就像调度中心要处理机器故障和工人离职一样,YARN也要处理Hadoop集群中的节点故障和资源泄漏等问题,以确保整个工厂的生产效率和质量。

可以将Hadoop集群看作一个大型的工厂,这个工厂有很多的工人和机器,同时也有很多的任务需要完成。YARN就像是这个工厂的调度中心,它负责分配工人和机器,并安排任务的执行顺序,以保证整个工厂的生产效率和质量

MapReduce

Hadoop MapReduce是Hadoop框架中用于分布式处理大数据的一种编程模型和计算引擎。MapReduce的核心思想是将大数据集分成若干个小数据块,并分配给多个计算节点进行处理。每个节点都可以独立地处理数据块,然后将结果返回给中心节点,中心节点将这些结果组合起来形成最终结果。MapReduce的处理过程可以分为两个阶段:Map阶段和Reduce阶段。在Map阶段中,Hadoop会将输入数据集分割成若干个小数据块,然后分配给多个Map任务并行处理。每个Map任务会对自己分配到的数据块进行处理,生成若干个键值对,这些键值对会被传递给Reduce任务。在Reduce阶段中,Hadoop会将Map任务生成的键值对按照键进行排序,并将具有相同键的值聚合在一起。然后将这些聚合后的键值对分配给多个Reduce任务并行处理。每个Reduce任务会对自己分配到的键值对进行处理,并生成最终的输出结果。MapReduce模型的优点在于可以充分利用集群中的计算资源,将大数据集分割成若干个小数据块进行并行处理,提高处理速度。同时,MapReduce模型可以自动处理节点故障和数据丢失等问题,具有高可靠性和可扩展性。

MapReduce就像是一个工厂生产线,它可以处理非常大的数据集。这个生产线有两个工作阶段:Map阶段和Reduce阶段。

在Map阶段,生产线接收原材料(大数据集),然后将其分割成许多小块,每个小块被交给一个工人进行加工。这些工人会对每个小块进行处理,将原始数据转化成键值对,然后将这些键值对传递给下一个阶段(Reduce阶段)。

在Reduce阶段,生产线接收许多键值对,并将它们按照键进行分组和排序。然后,这些分组的键值对被交给一些工人进行最终的加工,生成最终的输出结果。

就像工厂生产线一样,MapReduce可以同时处理多个数据块,这样可以加快处理速度。而且,如果有工人出现故障,生产线可以自动重新分配任务,保证处理的顺利进行。

个人感觉类似于JAVA中Stream流处理,Map映射数据,Reduce处理逻辑业务数据。

Hive

Hive是一个基于Hadoop的数据仓库系统,它提供了一种类似于SQL的查询语言,称为HiveQL,可以使开发人员和数据分析师使用SQL语言来查询和分析存储在Hadoop分布式文件系统(HDFS)中的大数据。Hive将SQL语句转换为MapReduce作业,并通过Hadoop执行这些作业来处理和分析数据。

Hive还提供了数据规范化、数据集成和数据访问控制等高级功能,使得开发人员可以更轻松地在大数据平台上进行数据分析和数据挖掘。Hive还支持外部表和分区表,可以让用户更灵活地处理和管理数据。同时,Hive还可以与其他Hadoop生态系统组件,如HBase和Spark等进行集成。

更多大数据岗位实际使用Hive写SQL而不是MapReduce?

4.总结

大数据通过分布式文件系统来存储大量数据,同时利用分布式计算来高效地处理数据,并提供数据采集、预处理、分析和可视化等服务,

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

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

相关文章

工作日记NO.2

1. 安装局域网内网通; 2. 安装VS2017AutoCADObjectARX VS2017AutoCAD2020配置ObjectARX VS2017AutoCAD2020配置ObjectARX (dgrt.cn) 3. ObjectARX简介 ObjectARX简介 - CAD安装教程 - 土木工程网 (civilcn.com) CAD系统二次开发-ObjectARX中的实体造型技术 (r…

【LeetCode】9,回文数。 难度等级:简单。巧妙解法很多,值得推敲。

文章目录 一、题目二、我的解答:逐个判断对应位置的首末数字是否相同三、其他解答3.1 将数字x转为字符串进行处理3.2 反转一半数字进行比较 LeetCode 第9题,回文数;难度等级:简单 一、题目 二、我的解答:逐个判断对应…

【C++复习1】程序结构和C++的工作原理

如果你是一名newbird的话,建议先看如下的视频加深理解后,再看下面的内容: https://www.bilibili.com/video/BV1N24y1B7nQ?p6 声明 以下的内容均由chatGpt编写与对上面这个视频进行总结生成,我就只负责改改格式。 C的工作原理 …

Live800:在线客服系统对客服管理有哪些好处?

互联网的不断发展,让越来越多的企业开始使用在线客服系统来提高客户服务质量。但是,很多人并不了解在线客服系统对客服管理的好处。本文将介绍在线客服系统的一些能够提高客服管理效率和提升用户满意度的管理功能。 实时客服监控 在线客服系统可以实时监…

MPU6050详解(含源码)

前言:MPU6050是一款强大的六轴传感器,需要理解MPU6050首先得有IIC的基础,MPU6050 内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并且含有一个第二 IIC 接口,可用于连接外部磁力传感器,内部有硬件算法支持. 1…

JumpServer Harbor

Jumpserver是一款开源的堡垒机,可使系统的管理员和开发人员安全的连接到企业内部服务器上执行操作,并且支持大部分操作系统,是一款非常安全的远程连接工具 安装JumpServer jumpserver.org官网去下载安装,有一键安装(里…

【回溯篇(3)---最少城市数】

1、最少城市数 【题目】 下图表示的是从城市A到城市H的交通图。从图中可以看出,从城市A到城市H要经过若干个城市。现要找出一条经过城市最少的一条路线。 【算法分析】 看到这图很容易想到用邻接距阵来表示,0表示能走,1表示不能走。如图。…

BM14 链表的奇偶重排

链表的奇偶重排_牛客题霸_牛客网 (nowcoder.com) 双指针解决 /*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) : val(x), next(nullptr) {}* };*/ class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改&#x…

Android 9.0 系统systemui状态栏下拉左滑显示通知栏右滑显示控制中心模块的流程分析

1.前言 在android9.0的系统rom定制化开发中,在系统原生systemui进行自定义下拉状态栏布局的定制的时候,需要在systemui下拉状态栏下滑的时候,根据下滑坐标来 判断当前是滑出通知栏还是滑出控制中心模块,所以就需要根据屏幕宽度,来区分x坐标值为多少是左滑出通知栏或者右…

Linux_红帽8学习笔记分享_9(文件系统管理FS Management与swap交换分区管理)

Linux_红帽8学习笔记分享_9(文件系统管理FS Management与swap交换分区管理) 文章目录 Linux_红帽8学习笔记分享_9(**文件系统管理FS Management与swap交换分区管理**)1.fdisk分区命令的使用技巧1.1 创建大小为100M,200M,300M,400M,500M的5个磁盘分区(MBR分区表类型)1.2创建大小…

固态继电器的优点

固态继电器的优点包括紧凑性、抗冲击性和长寿命。以下是这些 SSR 优势中最重要的优势,让您了解为什么这项技术最适合您的应用: 开关速度快 固态继电器器件的主要优点之一是其开关速度。由于无需移动机械部件,SSR 可以在几微秒内切换。这是对…

详解MySQL慢SQL定位、分析

目录 1.概述 2.慢SQL定位 3.SQL性能分析 3.1.例子 3.2.SQL性能分析 3.3.参数说明 3.3.1.id 3.3.2.select_type 3.3.3.key_len 3.3.4.rows 3.3.5.type 3.3.6.extra 1.概述 解决慢SQL的问题无非散步,定位慢SQL、分析慢SQL、优化慢SQL,本文将按…

高效提升计算质量!瑞典量子计算机首次应用于化学

​ (图片来源:网络) 量子计算机可以模拟化学过程,从新药开发到新材料的方方面面,它都能带来重大影响,人们对此寄予厚望。在瑞典,查尔姆斯理工大学的研究人员首次使用量子计算机在实际化学中进行…

PyQt5桌面应用开发(9):经典布局QMainWindow

本文目录 PyQt5桌面应用系列桌面程序基本布局QMainWindow概况与使用主窗体菜单栏工具栏停靠窗状态栏 代码编辑器的例子总结 PyQt5桌面应用系列 PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循…

113-Linux_安装c/c++开发库及连接mysql数据库

文章目录 一.安装c/c开发库二.连接mysql数据库三.用户的管理与授权 mysql数据库的安装 一.安装c/c开发库 安装开发c/c的库&#xff0c;命令&#xff1a;apt install libmysqlclient-dev 二.连接mysql数据库 #include<stdio.h> #include<mysql/mysql.h>void fun…

JAVA13新特性

JAVA13新特性 概述 2019年9月17日&#xff0c;国际知名的OpenJDK开源社区发布了Java编程语言环境的最新版本OpenJDK13。 Features&#xff1a;总共有5个新的JEP(JDK Enhancement Proposals): http://openjdk.java.net/projects/jdk/13/Features 350:Dynamic CDS Archives 动…

C++ STL之vector基础

文章目录 前言STL之vector基础1. What&#xff1a;什么是 vector&#xff1f;2. Why&#xff1a;为什么使用 vector&#xff1f;3. How&#xff1a;怎么使用vector?3.1 vector的定义演示&#xff1a;输出&#xff1a; 3.2 vector iterator 的使用演示&#xff1a;输出&#xf…

网络基础学习:什么是tcp/ip协议

什么是tcp/ip协议 TCP/ip协议是什么东西&#xff1f;tcp/ip四层模型一、应用层二、传输层三、网络层四、网络接口层 TCP/ip协议是什么东西&#xff1f; TCP/IP是一种网络协议套件&#xff0c;它由传输控制协议&#xff08;TCP&#xff09;和互联网协议&#xff08;IP&#xff…

最大网络流算法之dinic算法详解

1、题目描述 On the Internet, machines (nodes) are richly interconnected, and many paths may exist between a given pair of nodes. The total message-carrying capacity (bandwidth) between two given nodes is the maximal amount of data per unit time that can b…

2016年上半年软件设计师下午试题

试题四 【说明】 模式匹配是指给定主串t和子串s&#xff0c;在主串 t 中寻找子串s的过程&#xff0c;其中s称为模式。如果匹配成功&#xff0c;返回s在t中的位置&#xff0c;否则返回-1 。 KMP算法用next数组对匹配过程进行了优化。KMP算法的伪代码描述如下&#xff1a; 在串…