什么是Hadoop

Hadoop 介绍

Hadoop 是由 Apache 开发的开源框架,用于处理分布式环境中的海量数据。Hadoop 使用 Java 编写,通过简单的编程模型允许在集群中进行大规模数据集的存储和计算。它具备高可靠性、容错性和扩展性。

  • 分布式存储:Hadoop 支持跨集群的分布式存储。
  • 分布式计算:Hadoop 使用简单的 MapReduce 编程模型进行计算。
  • 扩展性:Hadoop 可以从单一节点扩展到数千台机器,并且扩展过程中无需停机。

Hadoop 的关键组件

Hadoop 的架构由三个核心部分组成:

HDFS(Hadoop Distributed File System):分布式文件系统,是数据存储层。
MapReduce:分布式计算框架,用于并行处理数据。
YARN(Yet Another Resource Negotiator):资源管理和任务调度系统。

Hadoop 的架构

Hadoop 的架构基于主从模型,分为:

  • Master 节点:负责管理、维护和监控集群,存储元数据。
  • Slave 节点:负责存储数据并执行计算任务,可以扩展到数千个节点。
  • 任务分发:客户端通过 Master 节点分发任务,Master 将任务调度到 Slave 节点上执行。

Hadoop 组件

在这里插入图片描述

  1. HDFS(分布式文件系统)
    HDFS 是 Hadoop 的数据存储层,负责将海量数据以分布式的方式存储在多个节点上。

    架构:
    NameNode(主节点):存储元数据并管理 DataNode。
    DataNode(从节点):存储实际的数据块并执行操作。
    特点:
    数据文件会分割成多个块(默认块大小为 128MB)。
    数据块按照复制因子(默认 3 个副本)分布在不同节点,以保证容错性和可靠性。
    示例:
    假设有一个 640MB 的文件,将会被分成 5 个 128MB 的数据块,并存储在多个节点上。

  2. MapReduce
    MapReduce 是 Hadoop 的分布式计算框架,用于处理海量数据。它将计算任务分割成多个小任务并分发到不同的节点进行并行处理。
    工作流程:
    (1)将输入数据分割成块并分发到各个节点。
    (2)Map 阶段:将任务划分为键值对形式的中间结果。
    (3)Shuffle 阶段:对 Map 的输出进行排序和分区。
    (4)Reduce 阶段:对分区后的数据进行汇总和计算。
    特点:
    将计算任务移动到离数据最近的节点执行,减少数据传输开销。
    支持大规模数据的并行处理。

  3. YARN(资源管理)
    YARN 是 Hadoop 的资源管理系统,用于管理集群的计算资源(CPU、内存、磁盘等)并调度任务。
    架构:
    ResourceManager(主节点):负责全局资源的管理和分配。
    NodeManager(从节点):负责节点资源的本地管理,运行容器(Container)。
    ApplicationMaster:为每个任务分配资源并跟踪任务执行状态。
    特点:
    提供高效的资源管理。
    支持多种框架运行在同一集群上。

Hadoop 守护进程

Hadoop 的关键守护进程分为以下几类:

(1)HDFS:
NameNode:运行在 Master 节点上,存储元数据。
DataNode:运行在 Slave 节点上,存储数据块。
(2)YARN:
ResourceManager:运行在 Master 节点上,管理全局资源。
NodeManager:运行在 Slave 节点上,管理本地资源。
(3)其他进程:
Secondary NameNode:辅助 NameNode 进行元数据的备份。
JobHistoryServer:负责存储任务的历史记录。
在这里插入图片描述

Hadoop 的工作原理

数据存储:
输入数据被切分成若干个块(默认 128MB),并存储到不同的节点(DataNode)上。
任务分配:
用户通过 Master 节点提交任务。
Master 将任务分发到离数据最近的节点上执行。
数据处理:
每个节点独立处理数据,并将中间结果写回 HDFS。
结果输出:
所有节点处理完成后,输出最终结果。

Hadoop 生态系统中的组件

除了核心组件(HDFS、YARN 和 MapReduce),Hadoop 生态系统还包含许多其他工具,扩展了 Hadoop 的功能:

组件功能描述
HBase基于 HDFS 的列式存储数据库,适合存储海量稀疏数据集。
Hive数据仓库工具,支持使用类似 SQL 的语言查询大数据。
Pig高级脚本语言,用于编写复杂的数据处理流程,无需开发 Java 代码。
Flume用于高效实时收集和传输日志数据。
Sqoop用于在 Hadoop 和关系型数据库之间传输数据。
Oozie用于调度和管理 Hadoop 作业的执行时间和频率。
Zookeeper提供分布式配置管理、命名空间和同步服务。
Mahout可扩展的机器学习算法库。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

038集——quadtree(CAD—C#二次开发入门)

效果如下: using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using System; using System.Collections.Generic; using System.Linq; using System.T…

ISUP协议视频平台EasyCVR私有化视频平台新能源汽车充电停车管理方案的创新与实践

在环保意识提升和能源转型的大背景下,新能源汽车作为低碳出行的选择,正在全球迅速推广。但这种快速增长也引发了充电基础设施短缺和停车秩序混乱等挑战,特别是在城市中心和人口密集的居住区,这些问题更加明显。因此,开…

Spring Boot中使用AOP和反射机制设计一个的幂等注解(两种持久化模式),简单易懂教程

该帖子介绍如何设计利用AOP设计幂等注解,且可设置两种持久化模式 1、普通模式:基于redis的幂等注解,持久化程度较低 2、增强模式:基于数据库(MySQL)的幂等注解,持久化程度高 如果只需要具有re…

算法编程题-网格中的最短路径

算法编程题-网格中的最短路径 原题描述思路简述代码实现[^1]复杂度分析 原题描述 LeetCode 1293 网格中的最短路径:给定一个m * n的网格,网格中的每一个点的值为0(无障碍),为1(有障碍)&#xf…

Xcode 项目内 OC 混编 Python,调用 Python 函数,并获取返回值(基于 python 的 c函数库)

1:新建 Xcode 工程 2:工程添加 Python.framework 1597052861430.jpg 3:在当前工程下新建一个名字为 googleT 的 python 文件(googleT.py) 1597052584962.jpg 在 googleT.py 文件内写入一个测试 python 函数 def lgf_translate( str ):var1 Hello World!print (str var1)retu…

蓝桥杯每日真题 - 第16天

题目:(卡牌) 题目描述(13届 C&C B组C题) 解题思路: 题目分析: 有 n 种卡牌,每种卡牌的现有数量为 a[i],所需的最大数量为 b[i],还有 m 张空白卡牌。 每…

计算机网络——路由选择算法

路由算法 路由的计算都是以子网为单位计算的——找到从原子网到目标子网的路径 链路状态算法 序号——(源路由器,序号)——如果发现这个序号重复或者老了——就不扩散 先测量——再泛洪获得路由 路由转发情况 若S——>W是21则不更改——…

Android - Pixel 6a 手机OS 由 Android 15 降级到 Android 14 操作记录

Pixel 6a 手机由 Android 14 升级到 Android 15了,但是由于一些原因又想降级回 Android 14, 能降吗?该怎么降级呢?本篇文章来记述实际操作过程,希望能给想做相同操作的人一些帮助。 答案当然是能降,而且我…

SpringBoot+React养老院管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.入住合同文件上传2.添加和修改套餐的代码3.查看入住记录代码 一、项目演示 项目演示地址: 视频地址 二、项目介绍 项目描述:这是一个基于SpringBootReact框架开发的养老院管理系统。首先…

Ubuntu安装ollama,并运行ollama和通义千问,使用gradio做界面

Ubuntu安装ollama,并运行ollama和通义千问 安装ollama方式一:方式二 下载安装模型运行大模型运行ollama服务前端的实现python环境安装修改pip国内源前端页面搭建测试前后端联通设计完整的ui 安装ollama 方式一: 访问网站连接,选…

【微软:多模态基础模型】(3)视觉生成

欢迎关注[【youcans的AGI学习笔记】](https://blog.csdn.net/youcans/category_12244543.html)原创作品 【微软:多模态基础模型】(1)从专家到通用助手 【微软:多模态基础模型】(2)视觉理解 【微…

前端研发高德地图,如何根据经纬度获取地点名称和两点之间的距离?

地理编码与逆地理编码 引入插件,此示例采用异步引入,更多引入方式 https://lbs.amap.com/api/javascript-api-v2/guide/abc/plugins AMap.plugin("AMap.Geocoder", function () {var geocoder new AMap.Geocoder({city: "010", /…

Linux上使用SELinux保护网络服务

前言 SELinux(Security-Enhanced Linux)是一种安全模块,用于增强基于 Linux 的操作系统的安全性。 它通过强制访问控制(MAC)机制来限制进程和用户对系统资源的访问权限,从而防止未经授权的操作。 在 SELin…

【Linux】僵尸进程、进程状态简介

本文内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发、订阅专栏! 专栏订阅入口 | 精选文章 | Kubernetes | Docker | Linux | 羊毛资源 | 工具推荐 | 往期精彩文章 【Docker】(全…

uniapp 选择 省市区 省市 以及 回显

从gitee仓库可以拿到demo 以及 json省市区 文件 // 这是组件部分 <template><uni-popup ref"popup" type"bottom"><view class"popup"><view class"picker-btn"><view class"left" click"…

Unity Dots下的动画合批工具:GPU ECS Animation Baker

书接上文&#xff0c;为了实现大批量物体的生成&#xff0c;我们准备使用Unity最新的dots系统&#xff0c;在该系统下找到了动画解决方案&#xff1a;GPU ECS Animation Baker。 导入的同时&#xff0c;也需要导入以下两个插件&#xff0c;否则会提示报错&#xff1a; PS&…

windows上部署flask程序

文章目录 前言一、准备工作二、配置 Gunicorn 或 uWSGI1.安装 Waitress2.修改启动文件来使用 Waitress 启动 Flask 应用3.配置反向代理&#xff08;可选&#xff09;4.启动程序访问 三.Flask 程序在 Windows 启动时自动启动1.使用 nssm&#xff08;Non-Sucking Service Manager…

共享单车管理系统项目学习实战

前言 Spring Boot Vue前后端分离 前端&#xff1a;Vue&#xff08;CDN&#xff09; Element axios(前后端交互) BaiDuMap ECharts(图表展示) 后端&#xff1a;Spring Boot Spring MVC(Web) MyBatis Plus(数据库) 数据库:MySQL 验证码请求

python中Pandas操作excel补全内容

补全ID、InStore、Date import random from datetime import datetime, timedeltaimport pandas as pdfile_path r"C:\Users\xb\Desktop\Books_1.xlsx" books pd.read_excel(iofile_path, skiprows3, usecols"C:F", dtype{"ID": str, "I…

40分钟学 Go 语言高并发:Goroutine基础与原理

Day 03 - goroutine基础与原理 1. goroutine创建和调度 1.1 goroutine基本特性 特性说明轻量级初始栈大小仅2KB&#xff0c;可动态增长调度方式协作式调度&#xff0c;由Go运行时管理创建成本创建成本很低&#xff0c;可同时运行数十万个通信方式通过channel进行通信&#x…