大数据(0a)整体架构

本文介绍了大数据相关概念,包括分布式的定义、数据库、数仓与大数据的区别。详细阐述了大数据平台架构,如Hadoop(含HDFS、MapReduce、YARN)、ZooKeeper、HIVE等技术的功能和应用场景。还探讨了流程设计、使用大数据技术的原因、人员需求等内容。

本文内容基于个人理解,表述通俗(不够严谨),欢迎前来批评指出

1、概述

  • 大数据海量数据存储计算
  • 适用场景:大数据分析,海量 日志数据 分析
特点说明
数据量大TB级别(1T=1024G)
数据多样除 结构化数据 外还有:日志、音频、图片、视频、地理位置信息…
数据低价值密度海量低价值密度数据 >>>清洗、筛选、计算>>> 高价值密度数据
分布式分布式存储、分布式计算

1.1、什么是分布式?

  • 将 巨大计算和存储 分配给多台计算机
  • 各台机器由网络来连接
  • 各个节点只负责部分计算,再汇聚成整体结果

1.2、数据库、数仓、大数据3者区别

区别MySQL数据仓库Hadoop
性质软件技术数据集合分布式系统基础架构
数据量级
数据特点结构化、细致的结构化、集成的半结构化、多样的
存储方式紧致冗余分布式、多副本
数据操作增删查改查询、分析 为主数据修改不灵活
速度延时低有延时有延时
用途OLTPOLAP大数据平台基础
场景注册、交易…多维(地区、时间、品类…)销量分析为数仓建设提供平台基础

2、大数据平台架构

name说明备注
HDFS分布式文件系统
MapReduce分布式计算框架偏向于 离线计算
YARN资源管理器分配计算资源(内存、CPU…)
ZooKeeper分布式应用程序协调服务高可用…
HIVE数据仓库工具
HBase分布式的、面向列的开源数据库
Flume海量日志 采集、聚合、传输 的系统把日志数据传输到HDFS
Sqoop数据传递工具,主用于Hadoop和传统数据库之间MySQL和HDFS之间的数据传输
Kafka高吞吐量的分布式发布订阅消息系统
Spark分布式计算框架计算
Flink流处理框架实时计算
ClickHouse列式存储数据库OLAP
DolphinScheduler工作流调度定时任务、工作流异常告警…

2.1、Hadoop

  • 开源的 分布式系统基础架构
  • 存储:HDFS
  • 计算:MapReduce
  • 资源管理:YARN

2.1.1、HDFS

  • Hadoop Distributed File System
  • 分布式文件系统
  • 用途:存储海量各式各样的数据
优点
适用于海量数据
多副本存储,数据不易丢
高可扩展性,可构建在多个廉价机器
缺点
延时高(延时高≠慢,要分清【延时高】和【运算慢】)
支持数据 追加,不支持文件随机修改
不适用于 大量的小文件

主要组成说明
NameNode管理HDFS的命名空间(好比 目录)
DataNode存储实际的数据块

2.1.2、MapReduce

  • 分布式计算框架
  • Map(映射);Reduce(归约)
  • 用途:大规模数据集(>1TB)的并行运算

词频统计示例

2.1.3、YARN

  • Apache Hadoop YARN
  • Yet Another Resource Negotiator
  • Hadoop资源管理器
  • 用途:分配CPU、内存…
  • 解耦思想:将 资源管理 和 应用程序 拆分为 独立的守护进程
    例如:MapReduceSpark等可以在YARN上运行

YARN架构说明
Resource Manager监控NodeManager
Node Manager单节点 资源管理
Container包含 内存、CPU、磁盘、网络 等元素
Application Master第一个Container
负责 提交作业 和 协调其它旗下的Container

2.2、ZooKeeper

  • 开源的 分布式应用程序协调服务
  • 用途:配置维护、域名服务、分布式同步、组服务…

使用 分布式进程 来 统一 共享命名空间

层次命名空间(Hierarchical Namespace)

ZooKeeper服务组件

2.3、HIVE

  • 基于Hadoop的数据仓库工具
  • 将结构化的数据文件映射为数据库表,并提供SQL功能;
    能将SQL语句转变成MapReduce任务来执行
  • 用途:非实时 大量不可变数据 的 批处理作业(离线数仓)

2.4、Flume

  • 海量日志 采集、聚合、传输 的系统
  • 基于流式架构
  • 入门功能:实时监控【单个追加文件、目录下多个新文件、目录下的多个追加文件】

概念图

Agent:是一个JVM进程,包括 Source、Channel、Sink
Source:收集数据
Channel:缓冲区
Sink:输出数据,写到HDFS

2.5、Sqoop

  • 开源的数据传输工具
  • 主用在Hadoop(HDFS)与传统的数据库(MySQL、Oracle…)之间

2.6、Spark

  • Apache SparkTM
  • 大数据实时计算引擎
  • Scala语言中实现
说明备注
Spark SQL结构化数据处理无缝接合Spark和SQL的混合编程
Spark Streaming流式数据实时计算微批处理,有d延迟
SparkML机器学习分类、回归、聚类、协同过滤…
GraphX图计算

2.7、HBase

  • Hadoop Database
  • 开源的、分布式的、面向的、存储结构化数据的 数据库
  • 数据存储在HDFS
  • 物理存储结构Key-Value型,就像一个多维Map;Key-Value可以映射为大型二维单表
  • 数据存储策略:冷热数据架构
  • 有Phoenix的插件,可以满足二级索引和SQL的需求

应用场景

一些应用场景e.g.
对象存储网页、图片
稀疏矩阵用户画像
时空数据轨迹(xx打车)、气象网格
Feeds流微博、朋友圈
时序数据心电图

3、流程设计

电商项目示例e.g.
数据来源业务数据、日志数据
数据传输Flume、Sqoop
数据存储HDFS、Kafka、MySQL、Redis、ClickHouse
计算资源管理YARN
数据计算HIVE、Spark、Flink
任务调度Azkaban
集群监控Zabbix
元数据管理Atlas
权限管理Ranger
数仓分层full name译名说明
1、ODSOperation Data Store原始层原始数据
1.5、DIMDimension维度层维度数据
2、DWDData Warehouse Detail明细层明细数据
3、DWSData Warehouse Service服务层数据按日期汇总
4、DWTData Warehouse Topic主题层数据按主题汇总
5、ADSApplication Data Store应用层业务报表

4、为什么要用大数据技术?

如图业务需求,Python+MySQL就能快速实现【data=>value】,为什么还要用大数据技术?

用MySQL来实现数仓不香吗?MySQLHDFS
热扩展麻烦简单
单个表过大按时间分表不用分表
算法方面对比PythonSpark ML
内存不够时换机器加机器
开发效率胜出
复杂操作胜出
离线计算胜出
深度学习胜出
大数据实时计算胜出
流数据实时计算对比PythonSpark Streaming
内存不够时换机器加机器
开发效率胜出
复杂操作胜出
大数据场景胜出

5、人员需求

IT部
平台组
数仓组
实时组
算法组
开发组
大数据工程师
HIVE工程师
Spark工程师 __ Flink工程师
Spark工程师 __ Python工程师
后端工程师 __ 前端工程师 __ 测试工程师

6、补充

en🔉cn
distributeddɪˈstrɪbjuːtɪd分布式的
negotiatornɪˈɡoʊʃieɪtər谈判者
negotiatenɪˈɡoʊʃieɪtv 谈判
keeperˈkiːpər监护人;饲养员
flumefluːmn. 水道
agentˈeɪdʒəntn. 代理人;adj. 代理的
sinksɪŋkv. 下沉;n. 水槽
resourceˈriːsɔːrsn. 资源,财力;vi. 向…提供资金
sourcesɔːrsn. 来源;水源
storestɔːrn. 士多;vn 贮藏
warehouseˈweəhaʊs仓库
containerkənˈteɪnər集装箱;容器
managerˈmænɪdʒərn. 经理;管理人员
prestoˈprestoʊadj. 急板的
kilobyte(KB)ˈkɪləbaɪt千字节,1024字节
megabyte(MB)ˈmeɡəbaɪt兆字节
gigabyte(GB)ˈɡɪɡəbaɪt十亿字节
terabyte(TB)ˈterəbaɪt万亿字节;兆兆字节;太字节
petabyte(PB)'petəbaɪt拍字节 或 千万亿字节 或 千T字节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值