编辑推荐: |
本文来自于csdn,本文主要介绍了大数据平台的系统架构以及大数据开发过程离线和实时常用的技术框架的介绍,希望对您的学习有所帮助。
|
|
大数据背景
对于业务数据数据量的暴增,用户智能化需求提升。在这个DT的时代,大数据的开发也就应运而生了,大数据开发必须解决两个问题,大数据量如何统一存储,大数据量如何统一计算。针对这些问题产生了很多大数据方面的技术框架。到今天为止,大数据方面的技术可以说已经相当成熟,BAT在大数据方面都应用十分的广泛,大数据量的分析使得数据更有了价值,运营有了通过大数据的分析可以做出精确的营销计划,通过收集用户的操作日志,分析用户行为,给出用户精确和有价值的推荐。人工智能也是通过海量数据做分析,通过算法做出智能准确的行为。
大数据hadoop的应用
大数据应用分析
统计
推荐
机器学习
人工智能,预测(算法)
SQL on Hadoop
Hive
Phoneix(基于HBase)
Spark SQL
hadoop 2.x 的概述
hadoop 包含的四大模块
上述可以看出Hadoop的重点就主要包含三部分,hdfs存储,MapReduce分布式计算过程,Yarn管理计算任务,包含了资源调度,任务协调,任务监控。
HDFS 服务功能
YARN 服务功能
离线计算框架 MapReduce
大数据开发过程离线和实时常用的技术框架简介
nutch爬虫取文本数据; 数据是半结构化数据;
flume准备日志数据
Scribe是Facebook开源的日志收集系统. 它能够从各种日志源上收集日志,存储到一个中央存储系统上,以便于进行集中统计分析处理。
结构化数据由RDBMS(关系数据库管理系统)管理和存放在数据库,
sqoop可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中;
Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.
Mapreduce是主要操作逻辑和引擎, map是分配, reduce是合并;
HDFS是分布式文件存储系统
HBase快速存储, 快速响应查询
Jaql 是一个 JSON 的查询语言,用于简化 JSON 数据的建模和操作,主要用于分析大规模的半结构化数据。
Hue是一个可快速开发和调试Hadoop生态系统各种应用的一个基于浏览器的图形化用户接口。
mahout对数据进行分析; 我们要学习好如何使用好来分析; 提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。
针对上述的生态圈做一个简单的说明:
对于大数据开发的步骤,第一步当然是数据来源的来源,爬虫技术,mutch当然也可以使用诸如python的其他框架,公司中常用的还有通过前端接口收集,flume日志采集。采集到的数据入hdfs文件,第二步数据采集之后,需要日志解析,日志解析公司一般会自己开发,实现方式可以是mapreduce计算实现原始日志简单清洗和入库hive。第三步是日志分析,通过简单的sql可以实现对业务数据分析,简单的编写sql如hivesql,sparksql可以进行计划,如何实现任务流管理就需要用到oozie,数据的分析计算结果最后结果写入高性能,读写数据快的数据存储系统,例如关系型数据库mysql,sqlserver
或者HBase。以上基本的离线开发流程就。对于一些业务多维度的分析可能需要事先进行预计算比如使用kylin的cube。
对于实时的技术,一般的数据源是日志收集之后写入kafka,然后通过sparkStreaming或者Strom,现在比较流行的还有flink,这些框架都是基于内存去进行分布式计算,用空间换时间,达到实时的计算。
离线开发和实时开发系统架构说明
系统架构说明:
本系统架构基于真实的大数据平台构建:
基本的数据结构说明:
以下两张图是基于离线和实时的系统开发架构图:
离线系统架构图
实时系统架构图
|