大数据简介,技术体系分类整理
作者头像
  • 阿朱说
  • 2020-10-04 10:11:13 1

大数据简介

基础概念

大数据指的是那些在传统软件工具下难以捕捉、管理和处理的数据集合。这些数据集合需要新的处理模式,以增强决策能力、洞察力和流程优化。大数据技术主要用来解决海量数据的存储和分析问题。

特点分析

大数据的五大特征(IBM提出): - Volume:数据量庞大 - Velocity:数据处理速度快 - Variety:数据类型多样 - Value:数据价值密度低 - Veracity:数据真实性

发展历程

Google在2004年左右发表了三篇重要论文,分别介绍了GFS文件系统、MapReduce计算框架和BigTable数据库系统。这些论文奠定了大数据的基础理论和实践方法。

天才程序员Doug Cutting,也是Lucene和Nutch项目的创始人。他根据Google的论文原理,初步实现了类似GFS和MapReduce的功能,最终发展成了著名的Hadoop项目。随着时间推移,Hadoop生态系统不断完善,涵盖了实时计算、离线计算、NoSQL存储、数据分析和机器学习等多个领域。

从这一系列发展可以看出,技术和业务相互促进,业务需求推动技术不断进步。

Hadoop框架

Hadoop简介

以下是基于Hadoop2.X版本的描述,后续如果没有特别说明,均指Hadoop2.7版本。

Hadoop是由Apache基金会开发的分布式系统基础架构,提供了强大的数据存储和分析能力。作为Apache顶级项目,Hadoop包含了众多子项目,形成了一个庞大的生态系统。

框架特点

  • 可靠性:Hadoop通过多副本存储和按位存储确保数据可靠。
  • 扩展性:Hadoop可以轻松扩展到数千个节点,满足大规模数据处理需求。
  • 高效性:基于MapReduce思想,实现高效的并行计算。
  • 容错性:自动保存数据副本并能够自动恢复失败的任务。

组成结构

  • HDFS存储

    • NameNode:存储文件的元数据,如文件名、目录、创建时间、权限和副本数。
    • DataNode:负责存储文件块数据及与数据块ID的映射关系。
  • Yarn调度

    • 负责资源管理和任务调度,将系统资源分配给不同的应用程序,并调度任务在不同的集群节点上执行。
  • MapReduce计算

    • 将计算过程分为两个阶段:Map阶段并行处理输入数据,Reduce阶段对Map结果进行汇总。

大数据技术栈

Kafka中间件

  • 开源组织:Apache软件基金会
  • 应用场景:Kafka是一种高吞吐量的分布式发布订阅消息系统,通过磁盘数据结构实现消息的持久化,即使存储数以TB的消息也能保持长时间的稳定性能。Kafka支持每秒处理数百万条消息,并可以通过服务器和消费者集群来分区消息。此外,Kafka还支持Hadoop并行数据加载。

Flume日志系统

  • 开源组织:Cloudera公司
  • 应用场景:Flume是一个高可用、高可靠的分布式日志采集、聚合和传输系统。Flume支持多种数据发送方,用于采集数据,并提供简单的数据处理和传输功能。

Sqoop同步工具

  • 开源组织:Apache软件基金会
  • 应用场景:Sqoop是一款开源工具,主要用于在Hadoop、Hive和传统数据库之间进行数据传输。它可以将关系型数据库(如MySQL、Oracle)中的数据导入到Hadoop的HDFS中,也可以将HDFS中的数据导出到关系型数据库中。

HBase数据库

  • 开源组织:Apache软件基金会
  • 应用场景:HBase是一个分布式的、面向列的开源数据库,提供类似于Google Bigtable的能力。HBase适合非结构化数据的存储,并采用基于列的存储方式,而不是基于行的存储。

Storm实时计算

  • 开源组织:Apache软件基金会
  • 应用场景:Storm用于实时计算,可以对数据流进行连续查询,并将结果以流的形式输出给用户。Storm简单易用,可以与任何编程语言配合使用。

Spark计算引擎

  • 开源组织:Apache软件基金会
  • 应用场景:Spark是一款大规模数据处理的快速通用计算引擎,具备Hadoop MapReduce的优点,但不同之处在于它可以将中间结果保存在内存中,从而减少了对HDFS的读写操作,更适合数据挖掘和机器学习等需要迭代的算法。

R语言

  • 开源组织:R项目
  • 应用场景:R是一种用于统计分析和绘图的语言和操作环境。R是一个自由、开源的软件,广泛应用于统计计算和统计制图。

Hive数仓工具

  • 开源组织:Apache软件基金会
  • 应用场景:Hive是基于Hadoop的一个数据仓库工具,用于数据抽取、转换和加载。Hive可以将结构化的数据文件映射为数据库表,并提供SQL查询功能,将SQL语句转换为MapReduce任务执行。

Oozie组件

  • 开源组织:Apache软件基金会
  • 应用场景:Oozie是一个管理Hadoop作业的工作流程调度系统,用于安排和管理复杂的作业流程。

Azkaban组件

  • 开源组织:LinkedIn公司
  • 应用场景:Azkaban是一个批量工作流调度器,用于按照特定顺序运行一组工作和流程。Azkaban通过键值对文件格式定义任务之间的依赖关系,并提供一个易于使用的Web界面来管理和跟踪工作流。

Mahout组件

  • 开源组织:Apache软件基金会
  • 应用场景:Mahout提供了一些经典的机器学习算法实现,旨在帮助开发者更便捷地构建智能应用。Mahout包括聚类、分类、推荐过滤和频繁项挖掘等功能。

ZooKeeper组件

  • 开源组织:Apache软件基金会
  • 应用场景:ZooKeeper是一个分布式协调服务,提供了配置维护、域名服务、分布式同步和组服务等功能。ZooKeeper是Hadoop和HBase的重要组件之一,常用于分布式应用的一致性服务。

技术栈分类

  • 存储体系:Hadoop-HDFS、HBase、MongoDB、Cassandra
  • 计算体系:Hadoop-MapReduce、Spark、Storm、Flink
  • 数据同步:Sqoop、DataX
  • 资源调度:YARN、Oozie、Zookeeper
  • 日志收集:Flume、Logstash、Kibana
  • 分析引擎:Hive、Impala、Presto、Phoenix、SparkSQL
  • 集群监控:Ambari、Ganglia、Zabbix

相关源码和详细信息将持续更新。

    本文来源:图灵汇
责任编辑: : 阿朱说
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
整理体系简介数据分类技术
    下一篇