大数据学习笔记:Hadoop生态系统

文章目录

  • 一、Hadoop是什么
  • 二、Hadoop生态系统图
  • 三、Hadoop生态圈常用组件
    • (一)Hadoop
    • (二)HDFS
    • (三)MapReduce
    • (四)Hive
    • (五)Hbase
    • (六)ZooKeeper
    • (七)Sqoop
    • (八)Pig
    • (九)Mahout
    • (十)Flume
    • (十一)Oozie
    • (十二)Hue
    • (十三)Nutch
    • (十四)Avro
    • (十五)Phoenix
    • (十六)Storm
    • (十七)Flink
    • (十八)Spark
    • (十九)YARN
    • (二十)Kafka

一、Hadoop是什么

  • 官网网址:https://hadoop.apache.org/
    大数据学习笔记:Hadoop生态系统_第1张图片

二、Hadoop生态系统图

大数据学习笔记:Hadoop生态系统_第2张图片

三、Hadoop生态圈常用组件

(一)Hadoop

  • Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。
  1. 大数据学习笔记06:伪分布式Hadoop
  2. 大数据学习笔记11:搭建完全分布式Hadoop
  3. 大数据学习笔记29:Hadoop压缩机制演示
  4. 大数据学习笔记30:搭建高可用Hadoop集群
  5. 大数据学习笔记31:Java程序访问高可用Hadoop集群

(二)HDFS

  • HDFS是Hadoop的分布式文件系统。是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
    大数据学习笔记:Hadoop生态系统_第3张图片
  1. 大数据学习笔记07:分布式文件系统HDFS
  2. 大数据学习笔记08:Java程序访问HDFS
    大数据学习笔记:Hadoop生态系统_第4张图片

(三)MapReduce

  • MapReduce是一种分布式计算框架,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。
    大数据学习笔记:Hadoop生态系统_第5张图片
  1. 大数据学习笔记09:MapReduce概述
  2. 大数据学习笔记10:MR案例——词频统计
  3. 大数据学习笔记13:MR案例——显示每年最高温度
  4. 大数据学习笔记14:MR案例——招聘数据分析
  5. 大数据学习笔记15:MR案例——IP地址去重
  6. 大数据学习笔记16:MR案例——计算学生平均成绩
  7. 大数据学习笔记17:MR案例——分区统计总利润与平均利润
  8. 大数据学习笔记18:MR案例——分区汇总流量
  9. 大数据学习笔记19:MR案例——汇总三科成绩表文件
  10. 大数据学习笔记20:MR案例——按电影热度值排序
  11. 大数据学习笔记21:MR案例——分区全排序
  12. 大数据学习笔记22:MR案例——双MR统计总利润并排序
  13. 大数据学习笔记23:MR案例——采用Combiner做词频统计
  14. 大数据学习笔记24:利用MR改造Zebra项目
  15. 大数据学习笔记25:MR案例——自定义输入输出格式处理个人成绩
  16. 大数据学习笔记26:MR案例——双重排序(先按月份升序,再按利润降序)
  17. 大数据学习笔记27:MR案例——多输入源处理成绩
  18. 大数据学习笔记28:MR案例——多输出源处理成绩
    大数据学习笔记:Hadoop生态系统_第6张图片

(四)Hive

  • Hive是基于Hadoop的数据仓库,定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。Hive并不能够在大规模数据集上实现低延迟快速的查询。Hive并不适合那些需要低延迟的应用。Hive并非为联机事务处理处理而设计,Hive并不提供实时的查询和基于行级的数据更新操作。Hive的最佳使用场合是大数据集的批处理作业,比如网站日志分析。
  1. 大数据学习笔记32:Hive - 下载、安装与配置
  2. 大数据学习笔记34:Hive - 数据库与表操作
  3. 大数据学习笔记35:Hive - 内部表与外部表
  4. 大数据学习笔记36:Hive - 分区表
  5. 大数据学习笔记37:Hive - 复杂数据类型
  6. 大数据学习笔记38:Hive - 内置函数(1)
  7. 大数据学习笔记39:Hive - 内置函数(2)
  8. 大数据学习笔记40:Hive - 内置函数(3)
  9. 大数据学习笔记42:Hive - 分桶表
  10. 大数据学习笔记43:Hive - JDBC编程

(五)Hbase

  • HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
    大数据学习笔记:Hadoop生态系统_第7张图片
  1. 大数据学习笔记54:HBase概述

(六)ZooKeeper

  • 分布式协作服务Zookeeper解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。
  1. 大数据学习笔记04:单机模式使用ZooKeeper
  2. 大数据学习笔记05:ZooKeeper集群

(七)Sqoop

  • 数据同步工具Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop之前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。
  • 大数据学习笔记45:Sqoop - 数据迁移工具

(八)Pig

  • Pig是基于Hadoop的数据流系统,由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具。定义了一种数据流语言—Pig Latin,将脚本转换为MapReduce任务在Hadoop上执行。通常用于进行离线分析。

(九)Mahout

  • 数据挖掘算法库Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

(十)Flume

  • Flume是Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。
  1. 大数据学习笔记46:初识日志收集系统Flume
  2. 大数据学习笔记47:Flume - 下载、安装与配置
  3. 大数据学习笔记48:Flume Sources(Flume源)
  4. 大数据学习笔记49:Flume Sinks(Flume接收器)
  5. 大数据学习笔记50:Flume Channels(Flume通道)
  6. 大数据学习笔记51:Flume Channel Selectors(Flume通道选择器)

(十一)Oozie

  • 作业流调度引擎Oozie是一个基于工作流引擎的服务器,可以在上面运行Hadoop的Map Reduce和Pig任务。它其实就是一个运行在Java Servlet容器(比如Tomcat)中的Javas Web应用。

(十二)Hue

  • Hue是Hadoop自己的监控管理工具。Hue是一个可快速开发和调试Hadoop生态系统各种应用的一个基于浏览器的图形化用户接口。

(十三)Nutch

  • Nutch 是一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

(十四)Avro

  • 数据序列化工具Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用。它的主要特点有:支持二进制序列化方式,可以便捷,快速地处理大量数据;动态语言友好,Avro提供的机制使动态语言可以方便地处理Avro数据。

(十五)Phoenix

  • 可以把Phoenix只看成一种代替HBase的语法的一个工具。虽然可以用java可以用jdbc来连接phoenix,然后操作HBase,但是在生产环境中,不可以用在OLTP(在线事务处理)中。在线事务处理的环境中,需要低延迟,而Phoenix在查询HBase时,虽然做了一些优化,但延迟还是不小。所以依然是用在OLAP(联机分析处理)中,再将结果返回存储下来。

(十六)Storm

  • Storm是Twitter开源的分布式实时大数据处理框架,最早开源于github,从0.9.1版本之后,归于Apache社区,被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍,比如网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋广泛,目前已是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。
  • Storm案例:统计单词个数

(十七)Flink

  • Flink是一个针对流数据和批数据的分布式处理引擎。其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。再换句话说,Flink 会把所有任务当成流来处理,这也是其最大的特点。Flink 可以支持本地的快速迭代,以及一些环形的迭代任务。并且 Flink 可以定制化内存管理。在这点,如果要对比 Flink 和 Spark 的话,Flink 并没有将内存完全交给应用层。这也是为什么 Spark 相对于 Flink,更容易出现 OOM 的原因(out of memory)。

(十八)Spark

  • Spark是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark 正如其名,最大的特点就是快(Lightning-fast),可比 Hadoop MapReduce 的处理速度快 100 倍。此外,Spark 提供了简单易用的 API,几行代码就能实现 WordCount。本教程主要参考官网快速入门教程,介绍了 Spark 的安装,Spark shell 、RDD、Spark SQL、Spark Streaming 等的基本使用。
  • Spark基础学习笔记01:初步了解Spark
  • Spark基础学习笔记02:搭建Spark环境

(十九)YARN

  • YARN(Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

(二十)Kafka

  • Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。

你可能感兴趣的:(大数据技术学习笔记,hadoop,mapreduce,hbase,spark)