当前位置: 首页 > news >正文

【Hadoop】建立圈内组件的宏观认识

    • 01存储
    • 02计算
    • 03调度
    • 04其他
    • 05回忆

hadoop生态

众多组件们构建了大规模分布式计算和存储平台。本文介绍Hadoop生态圈中各个组件的主要功能和作用,辅助学者理解每个组件的定位和用途,从而建立对圈内组件的宏观认识。梳理清楚HDFS、MapReduce、YARN、Hive、HBase、Spark、pig、Sqoop、Oozie、Ambari、Flume、tez、Mahout、Zookeeper、Altas、Hue、Range、kylin等核心组件在大数据处理和分析中的角色定位。多说不唠,进入正题…

01存储

  1. HDFS (Hadoop Distributed File System)
  • 角色:Hadoop体系的核心组件之一,是一个分布式文件系统。
  • 主要功能:
    • 大规模数据存储:能够存储超大文件(TB级别)。
    • 高容错性:通过数据复制确保数据的可靠性。
    • 高吞吐量:优化大数据集的访问,适合批处理。
  • 架构:
    • NameNode:管理文件系统的命名空间和客户端对文件的访问。
    • DataNode:存储实际的数据块。
  • 特点:
    • 适合写一次,读多次的场景。
    • 不适合低延迟数据访问和大量小文件存储。
  1. HBase
  • 角色:分布式、可扩展的面向列的NoSQL数据库。
  • 主要功能:
    • 实时读写:提供对大规模数据的随机、实时读写访问。
    • 存储结构化和半结构化数据。
    • 支持线性和模块化扩展。
  • 架构:
    • HMaster:管理和分配region,处理元数据操作。
    • RegionServer:负责服务和管理regions。
    • Zookeeper:协调分布式操作。
  • 特点:
    • 基于HDFS存储,利用HDFS的容错能力。
    • 适合需要随机、实时读写访问的大数据场景。
    • 支持高并发,可以处理大量的读写请求。

02计算

  1. MapReduce
  • 角色:Hadoop的核心计算框架
  • 功能:用于并行处理大规模数据集的分布式计算模型
  • 特点:
    • 将复杂问题分解为可并行计算的简单任务
    • 高容错性,能够处理节点故障
    • 适合批处理作业
  1. Hive
  • 角色:数据仓库工具
  • 功能:提供类SQL查询语言(HiveQL)来分析存储在Hadoop中的大规模数据
  • 特点:
    • 将SQL查询转换为MapReduce作业
    • 适合复杂的批量数据处理
    • 提供了丰富的内置函数和自定义函数能力
  1. Spark
  • 角色:快速通用的集群计算系统
  • 功能:提供内存计算功能,用于大规模数据处理
  • 特点:
    • 支持多种编程语言(Scala, Java, Python, R)
    • 包含多个库,如Spark SQL, MLlib, GraphX, Spark Streaming
    • 比MapReduce快很多,特别是对于迭代算法
  1. Kylin
  • 角色:开源的分布式分析引擎
  • 功能:提供Hadoop/Spark之上的SQL接口及多维分析(OLAP)能力
  • 特点:
    • 极速OLAP引擎
    • 支持超大规模数据集
    • 与现有BI工具无缝集成
  1. Impala
  • 角色:开源的分布式SQL查询引擎
  • 功能:为存储在Hadoop的数据提供低延迟和高并发的SQL查询
  • 特点:
    • 比Hive快得多,接近传统数据库的查询速度
    • 支持HDFS和HBase作为存储系统
    • 与Hive的元数据、SQL语法和用户界面兼容
  1. Flink
  • 角色:分布式大数据处理引擎
  • 功能:提供数据流和批数据处理能力
  • 特点:
    • 真正的流处理,支持事件时间和处理时间
    • exactly-once语义
    • 低延迟,高吞吐量
    • 支持迭代处理和增量迭代

03调度

  1. YARN (Yet Another Resource Negotiator)
  • 角色:Hadoop的资源管理系统
  • 功能:
    • 管理集群资源并调度任务
    • 允许多种数据处理引擎在Hadoop上运行
  • 特点:
    • 将资源管理和作业调度/监控分离
    • 支持多种应用程序,不仅限于MapReduce
    • 提高集群利用率和可扩展性
  1. Oozie
  • 角色:工作流调度系统
  • 功能:
    • 管理和协调Hadoop作业
    • 定义、执行和监控复杂的数据管道
  • 特点:
    • 支持多种Hadoop作业类型(MapReduce, Pig, Hive等)
    • 可以通过XML定义工作流
    • 提供基于时间和数据的作业触发机制
  1. Zookeeper
  • 角色:分布式协调服务
  • 功能:
    • 为分布式应用提供同步、配置管理、分组和命名服务
    • 维护分布式系统的一致性
  • 特点:
    • 高性能、高可用性
    • 提供简单的接口
    • 被广泛用于Hadoop生态系统中,如HBase
  1. Dolphin Scheduler (Apache DolphinScheduler)
  • 角色:分布式和可扩展的工作流调度平台
  • 功能:
    • 可视化DAG工作流定义
    • 工作流的调度、执行和监控
  • 特点:
    • 支持多种任务类型(Shell, SQL, Python等)
    • 提供强大的任务依赖管理
    • 具有容错和失败恢复机制
    • 提供友好的用户界面,易于操作和监控
    • 支持多租户

04其他

  1. Pig
  • 角色:高级数据流语言和执行框架
  • 功能:简化MapReduce操作的创建和执行
  • 特点:
    • 使用Pig Latin语言,类似于SQL但更适合数据流
    • 可以处理结构化和非结构化数据
    • 适合数据转换和ETL过程
  1. Sqoop
  • 角色:数据传输工具
  • 功能:在Hadoop和结构化数据存储(如关系数据库)之间传输数据
  • 特点:
    • 支持增量导入
    • 可以将导入的数据直接存为Hive表
    • 支持多种数据库系统
  1. Flume
  • 角色:分布式日志收集系统
  • 功能:收集、聚合和移动大量日志数据
  • 特点:
    • 灵活的架构基于流式数据流
    • 可靠性机制和故障恢复
    • 可定制性强,支持多种数据源和目标
  1. Ambari
  • 角色:Hadoop集群管理工具
  • 功能:简化Hadoop的安装、管理和监控
  • 特点:
    • 提供直观的Web UI
    • 支持多种Hadoop组件的配置和管理
    • 提供集群健康检查和告警功能
  1. Tez
  • 角色:数据处理框架
  • 功能:加速Hadoop上的数据处理应用
  • 特点:
    • 比MapReduce更快,特别是对于复杂的数据处理任务
    • 被Hive和Pig等工具用作执行引擎
    • 支持复杂的DAG(有向无环图)作业
  1. Atlas
  • 角色:元数据管理和治理平台
  • 功能:为Hadoop生态系统提供元数据管理和数据治理能力
  • 特点:
    • 提供数据分类和血缘关系追踪
    • 支持复杂的元数据搜索
    • 提供安全和策略引擎
  1. Hue
  • 角色:Hadoop用户界面
  • 功能:提供Web界面来与Hadoop交互
  • 特点:
    • 支持多种Hadoop组件,如HDFS、Hive、HBase等
    • 提供查询编辑器、文件浏览器等工具
    • 用户友好,易于使用
  1. Ranger
  • 角色:安全管理框架
  • 功能:为Hadoop集群提供全面的安全管理
  • 特点:
    • 集中化的安全管理
    • 细粒度的访问控制
    • 支持审计和数据屏蔽

05回忆

hadoop生态

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • PostgreSQL的 log_min_messages 和 log_min_error_statement 参数
  • 怎么在网络攻击中屹立不倒
  • Django-rest-framework(DRF)怎么使用celery
  • C#身份核验接口-身份证查询接口-身份证实名制API
  • TinaSDKV2.0 Kernel基本开发
  • 算法【Java】 —— 滑动窗口
  • C# 将Dll嵌入exe中发布
  • xss.function靶场(hard)
  • ECMAScript6块级声明:let声明、const声明
  • zabbix7.0 设置中文语言( Debian GNU/Linux 12)
  • pox破晓工作流部署过程
  • 【自动驾驶】无人驾驶中的“先验”和“后验”
  • 【ARM 芯片 安全与攻击 5.4 -- Meltdown 攻击与防御介绍】
  • C++入门——03内存管理
  • 数据结构----链表
  • CentOS从零开始部署Nodejs项目
  • Docker容器管理
  • HTML中设置input等文本框为不可操作
  • Idea+maven+scala构建包并在spark on yarn 运行
  • IP路由与转发
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Js基础知识(四) - js运行原理与机制
  • js正则,这点儿就够用了
  • Kibana配置logstash,报表一体化
  • k个最大的数及变种小结
  • mac修复ab及siege安装
  • PAT A1017 优先队列
  • springMvc学习笔记(2)
  • text-decoration与color属性
  • Vue 动态创建 component
  • Yii源码解读-服务定位器(Service Locator)
  • 不上全站https的网站你们就等着被恶心死吧
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前嗅ForeSpider教程:创建模板
  • kubernetes资源对象--ingress
  • 带你开发类似Pokemon Go的AR游戏
  • ​水经微图Web1.5.0版即将上线
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #etcd#安装时出错
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #NOIP 2014# day.2 T2 寻找道路
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (2)(2.10) LTM telemetry
  • (day6) 319. 灯泡开关
  • (八)c52学习之旅-中断实验
  • (计算机网络)物理层
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)Docker基本介绍
  • (转) 深度模型优化性能 调参
  • (转)【Hibernate总结系列】使用举例
  • (转)为C# Windows服务添加安装程序
  • *上位机的定义
  • .htaccess配置常用技巧
  • .net core 6 集成 elasticsearch 并 使用分词器