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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JSONPath表达式

    JSONPath表达式前言JSONPath是一种简单的方法来提取给定JSON文档的部分内容。JSONPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有你想要获得的json内容。JSONPath表达式语法1、操作符?:问号,标记表达式的开头。使用的语法[?(表达)]例如:[?(Expression)]@:在符号处表示正在处理的当前节点。语法使用$.books[?@.price>100]注意:使用JSONPath的[]操作符操作一个对象或者数组,索引是从0开始。

    2022年6月24日
    187
  • pycharm2021年激活码刚出【2021免费激活】[通俗易懂]

    (pycharm2021年激活码刚出)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~08…

    2022年3月28日
    78
  • 九九乘法表java代码_java怎么实现九九乘法表

    九九乘法表java代码_java怎么实现九九乘法表java实现九九乘法表的方法:构建两层嵌套的for循环,外层for循环用于控制行,内层for循环用于控制某行上的乘法表达式,每行输出完毕后进行换行即可。思路:构建两层嵌套的for循环:外层循环用于控制行,内层循环用于控制某行上的乘法表达式。需要注意的是,每行输出完毕后,需要换行。代码实现:publicclassTest1{publicstaticvoidmain(String[]…

    2022年7月15日
    12
  • 距离和相似度度量方法

    距离和相似度度量方法http://blog.csdn.net/pipisorry/article/details/45651315在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如K最近邻(KNN)和K均值(K-Means)等等。不同距离度量的应用场景根据数据特性的不同,可以采用不同的度量方法。whi…

    2022年6月19日
    35
  • 进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超详细

    进制转换(二进制、八进制、十进制、十六进制)涵盖整数与小数部分,超详细今天来总结一下各种进制转换问题,详细齐全易于理解,希望对你有帮助哦!先从我们最熟悉的十进制入手吧,其他进制与十进制的转换方法都是一样的,保证能全部记住!整型有4种进制形式:1.十进制:都是以0-9这九个数字组成,不能以0开头。2.二进制:由0和1两个数字组成。3.八进制:由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。先来贴一张进制转换表:一、十进制转换成二进制、八进制、十六进制

    2022年10月17日
    3
  • A 星算法总结_数据结构与算法知识点总结

    A 星算法总结_数据结构与算法知识点总结A星算法总结A星算法FPGAEDA工具VPR布线器所采用的布线算法,面试滴滴的时候听说他们的路径规模用的也是A星算法,感觉这个算法还蛮厉害的,对这个算法进行一个总结。文章http://www.tuicool.com/articles/MJrYz26对这个算法用语言描述的很好,搬运下:  A星寻路算法显然是用来寻路的,应用也很普遍,比如梦幻西游。。。算法的思路很简单,就是在bfs的

    2022年9月1日
    2

发表回复

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

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