搜 索

大数据技术路线概述

  • 634阅读
  • 2022年07月03日
  • 0评论
首页 / 大数据/ai / 正文

作为互联网从业者,大数据这个名词肯定是耳熟能详了,那什么是大数据呢?在说大数据是什么之前我们先说一下什么不是大数据。首先并不是数据很多就能叫大数据,比如海量图片/日志/记录等,大数据说的是处理大量数据技术方法的合集;其次大数据不是一门特定的技术,hadoop/spark都不能完全代表大数据,大数据是一类技术的合集;再次并不是处理数据快就是大数据,一般网络运营商会拥有最快速处理大量数据的能力,但是我们通常不把他们当做大数据公司,大数据的核心价值点在于通过数据分析发掘数据的特定价值。

大数据的发展历程:

04年谷歌3篇论文(GFS,MapReduce,BigTable),外界得以一窥google实现海量数据计算的方式,这“三驾马车”成为了构建大数据系统的核心基石。
06年hadoop横空出世,各大公司投入到大数据的研发中,hdfs是大数据的存储标准,而map/reduce成为一种新的编程方式。
08年hive由facebook贡献给Apache基金会,hadoop具备了sql查询结果的能力。
12年spark发布,基于内存的实时计算风靡一时。同年YARN成为独立项目,大数据开始具有统一的资源调度系统。
13年号称是“大数据元年”,大数据技术火热,大量公司涌入,国内各种数据平台开始出现。
16年Gartna将大数据从新兴技术中除名,说明大数据技术已成熟。同年AlphaGo问世,人类将被AI替代之论甚嚣尘上。
而现在大数据更多的是作为一种底层稳定的基础设施,企业在其上层实现数据分析、数据挖掘和机器学习。

下图是大数据的一般架构:

大数据技术架构

Hadoop

Hadoop大名不用多说,简单来说,Hadoop主要分为hdfs和MapReduce,HDFS是Hadoop Distributed File System(Hadoop分布式文件系统)的简写,用于存储海量数据,虽然大数据技术层出不穷,但是存储基本上还是hdfs的天下。而MapReduce是hadoop的计算框架,将复杂的计算拆分成了简单的map和reduce,map就是打散数据,而reduce是聚合结果,由于hadoop的mapreduce是基于文件的,优点是节约资源而缺点是太慢,无法满足实时计算要求,所以才有了后来的Spark。
在Hadoop2.0之独立YARN作为资源调度框架,YARN主要包含两部分,资源管理器(Resource Manager)和节点管理器(Node Manager),各种大数据计算框架若想使用YARN作为资源调度框架,都需要遵循YARN规范的MasterApplication,在任务执行时有YARN来调度管理,安排资源。

Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。

Spark

Spark是一种通用的大数据计算框架,是基于RDD(弹性分布式数据集)的一种计算模型。
Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,而且比MapReduce平均快10倍以上的计算速度;因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark优势,速度快(号称比hadoop快100倍),易用性(支持java/scala/python),通用性(一栈式解决方案:批处理、交互式查询、实时流处理、图计算及机器学习),支持多种运行模式(YARN、 Mesos、 EC2、 Kubernetes、 Standalone(独立模式)、 Local(本地模式))。
Spark模块:Spark Core(核心组件,分布式计算引擎)、SparkSQL(类似于Hive)、Spark Streaming(可以实现高吞吐量、具备容错机制的准实时流处理系统),Spark GraphX(分布式图处理框架),Spark MLlib(构建在Spark_上的分布式机器学习库)。

Hbase

HBase 是一个面向列式存储的分布式数据库,其设计思想来源于Google的BigTable论文。
HBase 底层存储基于HDFS实现,集群的管理基于ZooKeeper实现。HBase良好的分布式架构设计为海量数据的快速存储、随机访问提供了可能,基于数据副本机制和分区机制可以轻松实现在线扩容、缩容和数据容灾,是大数据领域中Key-Value数据结构存储最常用的数据库方案。

Kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。
Kafka是一种高吞吐量的分布式发布订阅消息系统(MQ),它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
关于kafka的详细教程我将放在 MQ浅析-对比rabbitmq、rocketmq和kafka

Impala

Cloudera公司推出,提供对HDFS、Hbase数据的高性能、低延迟的交互式SQL查询功能。
基于Hive,使用内存计算,兼顾数据仓库、具有实时、批处理、多并发等优点。
是CDH平台首选的PB级大数据实时查询分析引擎。

Azkaban

Azkaban是一套简单的任务调度服务,整体包括三部分webserver、dbserver、executorserver。
​ Azkaban是由Linkedin开源的一个Java项目,批量工作流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和流程。
​ Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。

Sqoop

Apache Sqoop(SQL-to-Hadoop)项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。用户可以在 Sqoop 的帮助下,轻松地把关系型数据库的数据导入到 Hadoop 与其相关的系统 (如HBase和Hive)中;同时也可以把数据从 Hadoop 系统里抽取并导出到关系型数据库里。
Sqoop是一个在结构化数据和Hadoop之间进行批量数据迁移的工具,结构化数据可以是MySQL、Oracle等RDBMS。Sqoop底层用MapReduce程序实现抽取、转换、加载,MapReduce天生的特性保证了并行化和高容错率,而且相比Kettle等传统ETL工具,任务跑在Hadoop集群上,减少了ETL服务器资源的使用情况。在特定场景下,抽取过程会有很大的性能提升。

Flink

Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。
到此这就是本篇的全部内容了,单纯的掌握大数据技术,并不能够做出有竞争力的产品,最重要的还是要去做出满足用户需求的数据化产品,后续的文章中我将继续沿着数据跨界的路径讲解数据化应用的教程。

评论区
暂无评论
avatar