AITC Wiki

大数据技术层面

Technical Aspects of Big Data

大数据技术层面

English version: Technical Aspects of Big Data

本讲涵盖大数据的跨行业应用场景以及用于存储、处理和分析的核心 Hadoop 生态系统。

大数据应用

各行各业的企业都已从大数据解决方案中受益。

跨行业用例

行业应用
银行与证券信用卡/借记卡欺诈检测、证券欺诈预警、信用风险报告、客户数据分析
医疗健康存储患者数据并分析以在早期发现各种疾病
市场营销分析客户购买历史,精准触达适合新产品的客户
网络分析分析社交媒体和搜索引擎数据,根据用户兴趣投放广告
呼叫中心通过捕获和处理通话内容,识别重复问题和员工行为模式
农业生物技术公司使用传感器优化作物效率;大数据分析传感器数据
智能手机面部识别用于解锁手机并检索关于某人的已存储信息

制造业

  • 机器诊断与预测:通过分析当前运行状态与正常状态的偏差来预测机器性能。传感器监控温度和振动水平。诊断系统与基于云存储和大数据分析后端集成。
  • 工业运营风险分析:使用气体传感器(CO、NO、NO₂)监控室内空气质量。大数据分析风险并识别危险区域。
  • 生产计划与控制:系统测量各种生产工艺参数并实时控制整个流程。大数据用于生产计划和识别潜在问题。

民用基础设施

  • 结构健康监测:传感器网络监测桥梁和建筑物的振动水平。分析这些数据可检测裂缝、定位损伤、计算剩余寿命,并对即将发生的故障提供预警。

交通与智慧城市

  • 智能道路:传感器提供驾驶条件信息、行程时间估计以及恶劣天气、交通拥堵和事故的预警。信息通过互联网传送到基于云的分析应用,并分发给驾驶员。

医疗健康行业

  • 流行病学监测:研究人群中健康相关状态的分布和决定因素。电子健康记录(EHR)系统包括实验室结果、诊断、治疗和人口统计数据。大数据框架整合多个 EHR 系统,用于预测疫情暴发、人群健康监测、疾病检测和公共卫生地图绘制。

金融行业

  • 信用风险建模:为信贷申请评分并预测借款人未来是否违约。模型基于信用评分、信用历史、账户余额、交易和消费模式构建。大数据系统定期为大量客户计算信用风险评分。
  • 欺诈检测:检测信用卡欺诈、洗钱和保险理赔欺诈。实时分析框架实时标记交易。机器学习模型检测异常。批处理分析搜索历史数据中的欺诈模式。

数字营销

  • 内容推荐:应用收集用户搜索模式、浏览历史、消费内容和评分。大数据系统基于用户偏好和兴趣推荐新内容。

环境

  • 气象监测:传感器收集温度、湿度和压力数据并发送到基于云的应用。数据被分析和可视化以监测天气并生成预警。

大数据技术

大数据技术是旨在存储、处理和分析传统 RDBMS 无法处理的极其复杂和海量数据集的软件工具。关键技术包括:

  • Hadoop
  • Hadoop 分布式文件系统(HDFS)
  • MapReduce
  • YARN

Apache Hadoop

一个用 Java 编写的开源框架,支持在分布式计算环境中跨集群处理大规模数据集。它可以在分布式文件系统(DFS)中存储结构化、半结构化和非结构化数据,并并行处理它们。

Hadoop 生态系统包含四层:

层次组件
数据存储HDFS、HBase
数据处理MapReduce、YARN
数据访问Hive、Pig、Mahout、SQOOP、Avro
数据管理Flume、Oozie、Chukwa

HDFS(Hadoop 分布式文件系统)

  • 设计用于在低成本商用硬件上运行并存储大型数据集
  • 不需要高可靠性的昂贵硬件
  • 数据以写一次、读多次的模式存储
  • 不适合需要低延迟访问的应用
  • HBase 是低延迟应用的合适替代方案

HBase

  • 构建在 HDFS 之上的列式 NoSQL 数据库
  • 水平可扩展、开源、分布式
  • 不需要预定义模式
  • 支持结构化和非结构化数据
  • 提供对 HDFS 中数据的实时访问
  • 支持多次读写

MapReduce

采用分治原则的批处理编程模型。

  • 在并行和分布式计算环境中处理数据
  • 仅支持批处理工作负载
  • Map 任务:拆分和映射数据
  • Reduce 任务:对数据进行混洗和归约
  • 不适合实时处理和小数据

MapReduce 架构:

阶段说明
输入分片输入被划分为固定大小的片段
映射统计出现次数并准备 <单词, 频次> 列表
混洗与排序整合映射阶段的相关记录
归约将混洗输出值聚合为单个输出值

YARN(Yet Another Resource Negotiator)

为克服 MapReduce 架构缺陷而开发。允许使用各种数据处理引擎进行批处理、交互式和实时流处理。

核心组件:

组件作用
ResourceManager使用调度器和 ApplicationManager 分配集群资源
ApplicationMaster通过指导 NodeManager 创建/销毁容器来管理作业生命周期
NodeManager通过创建/销毁容器来管理特定节点中的作业

Hive

在 Hadoop 环境中处理结构化数据的工具。提供类似 SQL 的脚本开发平台来执行 MapReduce 操作。

  • 查询语言:HQL(Hibernate 查询语言)
  • 具有类似 SQL DDL 的数据定义语言,用于创建、删除或更改模式对象
  • 数据组织为:分区
  • 分区通过避免全表扫描来加速查询性能
  • 桶进一步基于列的哈希值划分分区

Pig

用于分析大型数据集的高级编程语言。两个组件:Pig Latin(语言)和执行环境。

  • 可处理结构化、半结构化和非结构化数据
  • 不具备 Java 知识的程序员也可执行 MapReduce 任务
  • 内部将 Pig Latin 脚本转换为 MapReduce 作业

内部处理流程:

  1. 解析器检查语法
  2. 优化器进行逻辑优化
  3. 编译器将逻辑优化后的代码编译为 MapReduce 作业
  4. 执行引擎将作业提交给 Hadoop

SQOOP(SQL to Hadoop)

  • 当 RDBMS 无法支持海量数据时,将结构化数据传输到 HDFS
  • 也可将数据从关系型数据库移动到 HBase
  • 最终分析结果可导出回数据库

Avro

开源数据序列化框架。

  • 将内存中的数据转换为二进制或文本格式以进行传输或存储
  • 旨在克服 Hadoop 缺乏可移植性的问题
  • 数据格式可被多种语言处理
  • 模式以 JSON 定义

Flume

用于从多个来源收集大量流数据的分布式可靠工具。

  • 将流数据(传感器、社交媒体、日志文件)摄取到 HDFS
  • 与 SQOOP 的区别:SQOOP 处理结构化数据;Flume 处理流数据

Oozie

Hadoop 的开源工作流管理引擎和调度器。

三种作业类型:

类型说明
Workflow以 DAG 表示,按需运行
Coordinator基于频率或数据可用性定期调度执行
Bundle作为单个作业管理和运行的协调器作业集合

Chukwa

用于监控大型分布式系统的开源数据收集系统。

四个组件:

  • Agents:在每台机器上运行并发出数据
  • Collectors:从代理接收数据并写入稳定存储
  • MapReduce 作业:解析和归档数据
  • HICC(Hadoop Infrastructure Care Center):用于展示数据的 Web 门户界面

大数据分析技术

MATLAB

用于技术计算的高性能语言,集成计算、可视化和编程。

典型用途:数学与计算、算法开发、建模/仿真/原型设计、数据分析/可视化、科学/工程图形、应用开发。

R

针对统计分析和数据可视化优化的开源编程语言。通常在 RStudio IDE 中使用。

用于:数据清洗与准备、创建可视化、训练/评估机器学习和深度学习算法。

Python

开源多用途编程语言,几乎可用于任何使用数据的场景。数据分析与 Python 是不可分割的术语。

关键库:

用途
Pandas数据处理与分析
NumPy数值计算
SciPy科学计算
Matplotlib可视化
Scikit Learn机器学习
TensorFlow深度学习
Theano数值计算
Keras神经网络
PyTorch深度学习

大数据可视化技术

大数据可视化将信息转换为视觉上下文(地图、图表),使数据更易于理解,并识别模式、趋势和异常值。

工具说明
Power BI微软的商业分析服务,用于分析、可视化、提取洞察并在组织内共享
Tableau管理数据流并将数据转化为可操作信息的商业智能工具;创建交互式可视化

要点总结

  • 制造、金融、环境、智慧城市、医疗和数字营销等领域的具体应用
  • Hadoop 生态系统:HDFS、YARN、MapReduce、HBase、Hive、Pig、SQOOP、Avro、Flume、Oozie、Chukwa
  • 分析语言:MATLAB、R、Python
  • 可视化工具:Tableau、Power BI

相关概念

来源资料