博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实战大数据平台开发架构讲解,免费大数据教学视频等你来拿
阅读量:5819 次
发布时间:2019-06-18

本文共 2930 字,大约阅读时间需要 9 分钟。

大数据背景

对于业务数据数据量的暴增,用户智能化需求提升。在这个DT的时代,大数据的开发也就应运而生了,大数据开发必须解决两个问题,大数据量如何统一存储,大数据量如何统一计算。针对这些问题产生了很多大数据方面的技术框架。到今天为止,大数据方面的技术可以说已经相当成熟,BAT在大数据方面都应用十分的广泛,大数据量的分析使得数据更有了价值,运营有了通过大数据的分析可以做出精确的营销计划,通过收集用户的操作日志,分析用户行为,给出用户精确和有价值的推荐。人工智能也是通过海量数据做分析,通过算法做出智能准确的行为。

大数据hadoop的应用

大数据应用分析

  1. 统计
  2. 推荐
  3. 机器学习
  4. 人工智能,预测(算法)

SQL on Hadoop

  1. Hive
  2. Phoneix(基于HBase)
  3. Spark SQL

hadoop 2.x 的概述

  • hadoop 包含的四大模块
==Hadoop Common==          为其他Hadoop模块提供基础设施。		       ==Hadoop HDFS==      一个高可靠、高吞吐量的分布式文件系统	       ==Hadoop MapReduce==       一个分布式的离线并行计算框架	        ==Hadoop YARN==       一个新的MapReduce框架,任务调度与资源管理复制代码

上述可以看出Hadoop的重点就主要包含三部分,hdfs存储,MapReduce分布式计算过程,Yarn管理计算任务,包含了资源调度,任务协调,任务监控。

  • HDFS 服务功能

    ==NameNode==主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在DataNode等。==DataNode==在本地文件系统存储文件块数据,以及块数据的校验和。== Secondary NameNode==用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照复制代码
  • YARN 服务功能

    ==ResourceManager== 处理客户端请求 启动/监控ApplicationMaster 监控NodeManager 资源分配与调度 ==NodeManager== 单个节点上的资源管理 处理来自ResourceManager的命令 处理来自ApplicationMaster的命令 ==ApplicationMaster== 数据切分 为应用程序申请资源,并分配给内部任务 任务监控与容错 ==Container== 对任务运行环境的抽象,封装了CPU内存等多维资源以及环境变量、启动命令等任务运  行相关的信息.复制代码
  • 离线计算框架 MapReduce

    == map和reduce== map 阶段并行处理输入数据 reduce 阶段对map 结果进行汇总。  ==shuffle ==  连接map 和Reduce 两个阶段  map task 将数据写到本地磁盘  reduce task 从每个map TASK 上读取一份数据  特点:  仅适合 离线批处理  具有很好的容错性和扩展性  适合简单的批处理任务  缺点明显  启动开销大,过多使用磁盘导致效率底下等。复制代码

大数据开发过程离线和实时常用的技术框架简介

  • ==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,这些框架都是基于内存去进行分布式计算,用空间换时间,达到实时的计算。

离线开发和实时开发系统架构说明

系统架构说明:

本系统架构基于真实的大数据平台构建: 基本的数据结构说明:

1.日志数据     来源:      1.APP的接口埋点或者其他渠道埋点      2.外部数据DB同步到hive      3.维度数据,用做于一些关联 对于日志数据可以分为两类,底层基础业务数据和维度配置数据。 业务数据量庞大,一般天,小时分区,维度数据可以使用拉链。也可以做mr同步。  2.计算引擎   如何实现各个不同位置数据的交互,比如hive到mysql或hbase的数据交换    3.计算依赖   如何实现一个工作流的计算oozie,sprak中的有向无环图,当然也可以自己实现计算依赖逻辑。    4.报表计算   报表计算过程平台管理,任务提交,计算频率等平台的治理和数据的结果展示。   以下两张图是基于离线和实时的系统开发架构图:复制代码
  • 离线系统架构图
  • 实时系统架构图

此外,大数据免费资料可通过百度云连接获取,链接为,获取码spty

,关注公众号获取更多内容!

转载地址:http://szzdx.baihongyu.com/

你可能感兴趣的文章
100-85
查看>>
HDOJ 2011 多项式求和
查看>>
springboot日志
查看>>
sharepoint 2013/2016/2007 如何确定一个SharePoint列表的ID
查看>>
cisco路由器进入rommon模式
查看>>
hadoop 安装配置
查看>>
我的友情链接
查看>>
不建议频繁改动域策略
查看>>
实验3 信号
查看>>
C:int型指针
查看>>
Python time模块
查看>>
java:作用域
查看>>
计算机硬件结构及运行过程
查看>>
Linux密钥验证
查看>>
简单但很强大的javascript技巧
查看>>
linux下的python小程序——三角形面积
查看>>
Windows Server 2019 無法訪問【設置】的解決辦法
查看>>
ELK日志分析系统安装,多节点(二)
查看>>
步步为营 C# 技术漫谈 四、垃圾回收机制(GC) 上
查看>>
Nginx解决CORS跨域解决方案
查看>>