Hadoop生态系统全面介绍

Hadoop生态系统全面介绍Hadoop 作为大数据的分布式计算框架 发展到今天已经建立起了很完善的生态 本文将一一介绍基于 Hadoop 生态的一系列框架和组件 Flume 简介 Flume 是一个分布式 高可用的服务 用于高效收集 聚合和移动大量日志数据 作用 Flume 主要承载的作用是收集各个数据源的事件或日志数据 然后将其 Sink 到数据库架构 Flume 的实现架构原理也非常简单 通过 Agent 代理来实现数据的收集 一个 Agent 包含了 Source channel Sink 三个组件 Source 采集的数据来源

Flume

  • 简介:
    Flume 是一个分布式、高可用的服务,用于高效收集、聚合和移动大量日志数据。
  • 作用:
    Flume 主要承载的作用是收集各个数据源的事件或日志数据,然后将其Sink到数据库
    Flume的作用

  • 架构
    Flume架构
    Flume的实现架构原理也非常简单,通过Agent代理来实现数据的收集,一个Agent包含了Source,channel,Sink三个组件。
    • Source:采集的数据来源,不同的数据源对应不同的格式,flume支持的source类型有很多,比如avro、thrift、twitter、exec、jms等
      所有的Source类型可参考flume的官方文档:
      https://flume.apache.org/FlumeUserGuide.html#flume-sources

    • Channel:缓冲区,将接收到的source数据缓存起来,供下游的sink消费,只有当数据被sink消费或者进入下一个channel的时候才会被删除。为了保证channel的可用性,flume也提供了多种channel类型,有memory、JDBC、File、Spillable Memory(当内存队列满了会存储到磁盘上) 、还支持自定义channel
    • Sink:消费channel里的数据,将数据发送到目的地,比如hive、hbase等。



Sqoop

HDFS

  • NameNode:负责管理metadata元数据,记录了文件所对应的块信息。
  • DataNode,通常集群中每个节点都有一个DataNode,里面存储了具体的数据。

YARN

YARN是一个hadoop的资源管理器,负责管理资源和任务调度。

  • ResourceManager :负责系统内所有应用的资源调度
  • NodeManager 是每台机器的框架客户端/代理,负责容器管理,监控他们的资源使用情况,例如 cpu、memory、 disk、network,并汇报给ResourceManager/Scheduler

Spark

  • SparkCore:实现了 Spark 的基本功能,包含RDD、任务调度、内存管理、错误恢复、与存储系统交互等模块
  • SparkSQL:通过SQL的方式连接数据库的数据,并将数据转化成DataFrame。SparkSQL支持多种数据源,包括 Hive、Avro、Parquet、ORC、JSON 和 JDBC。
  • Spark Mllib:是Spark的机器学习库,高质量的算法比MapReduce快100倍。MIlib 提供了丰富和算法和统计方法
    • 分类:逻辑回归、朴素贝叶斯、…
    • 回归:广义线性回归,生存回归,…
    • 决策树、随机森林和梯度提升树
    • 建议:交替最小二乘法 (ALS)
    • 聚类:K-means、高斯混合(GMM)、…
    • 主题建模:潜在狄利克雷分配(LDA)
    • 频繁项集、关联规则和序列模式挖掘
    • 统计:线性代数、假设检验
  • Spark Streaming:Spark的流式计算框架,实际上是基于时间的微批处理。通常Apache Flink可取而代之。
  • GraphX:是 Apache Spark 用于图形计算的API

Kafka

Mahout

Lucene / Solr / ElasticSearch

Oozie

Zookeeper

ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

ZooKeeper 的架构通过冗余服务实现高可用性。

Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

Ambari

Apache Ambari 是一个用于配置、管理和监控 Apache Hadoop 集群的工具。由一组 RESTful API 和一个web界面组成。

MapReduce

mapreduce 执行流程

Hive

架构于Hadoop之上,可以将结构化的HDFS文件映射成一张表,并提供了类似于SQL语法的HQL查询功能。毫不夸张的说正是因为有了Hive的诞生,Hadoop才会被大面积推广和使用,并且经久不息。

核心本质:将HQL语句转换成MapReduce任务

  • HIVE:
    Meta Store: 元数据,一般存储在mysql
    Client: 客户端
    Driver:驱动器
    HQL Parse: 解析器,HQL解析和语法分析
    Physical Plan: 编译生成逻辑执行计划
    Query Optimizer: 对逻辑执行计划进行优化
    Execution: 把逻辑执行计划转换成物理执行计划






  • Hadoop
    Map Reduce: 执行计算
    HDFS: 文件存储

Pig

HBase

届于大数据技术革新太快,本文会不定时更新,如果感兴趣的话,可以关注下。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233037.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月22日 下午3:01
下一篇 2025年8月22日 下午3:22


相关推荐

  • x7r与x5r电容参数区别_2700X参数

    x7r与x5r电容参数区别_2700X参数
    关键词:X5R、X7R、电容  
       
       在我们选择无极性电容式,不知道大家是否有注意到电容的X5R,X7R,Y5V,COG等等看上去很奇怪的参数,有些摸不着头脑,

       其实这类参数描述了电容采用的电介质材料类别,温度特性以及误差等参数,不同的值也对应着一定的电容容量的范围。具体来说,就是:
    X7R常用于容量为3300pF~0.33uF的电容,这类电容适用于滤波,耦合等场合,电介质常数比

    2025年6月22日
    5
  • RPC框架与简介

    RPC框架与简介一 概述随着公司规模的扩大 以及业务量的激增 单体应用逐步演化为服务 微服务的架构模式 服务之间的调用大多采用 rpc 的方式调用 或者消息队列的方式进行解耦 几乎每个大厂都会创建自己的 rpc 框架 或者基于知名的 rpc 框架进行改造 目前 rpc 框架主要沿着两条路线发展 一个是目标为了跨语言 服务端可以用不同的语言实现 客户端也可以用不同的语言实现 不同的语言实现的客户端和服务器端可以互相调用 很显然 要支持不同的语言 需要基于那种语言实现相同协议的框架 并且协议设计应该也是跨语言的 其中比较典型

    2025年8月28日
    4
  • ssl协议版本

    ssl协议版本

    2022年6月2日
    38
  • 非阻塞connect,错误码:EINPROGRESS

    http://blog.csdn.net/benbendy1984/article/details/5773137当我们以非阻塞的方式来进行连接的时候,返回的结果如果是-1,这并不代表这次连接发生了错误,如果它的返回结果是EINPROGRESS,那么就代表连接还在进行中。

    2022年4月10日
    67
  • 用AIGC生成TypeScript脚手架:严格JSON落盘

    用AIGC生成TypeScript脚手架:严格JSON落盘

    2026年3月19日
    2
  • 科大讯飞星火X1.5大模型发布,**“星火行业分析师”**赋能央国企

    科大讯飞星火X1.5大模型发布,**“星火行业分析师”**赋能央国企

    2026年3月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号