BI系统,是企业利用数据驱动运营的一个典型系统。BI系统通过发掘企业运行过程中的数据,发现企业的潜在风险、为企业的各项决策提供数据支撑。

传统的BI系统通常构建于关系型数据库之上。随着企业业务量的增大和对用户行为实时提取分析的需要越来越高,传统的BI架构对实时性的分析和大数据量的分析已经无法满足,新的数据分析的解决方案便呼之欲出。

得益于hadoop对大数据和分布式计算的优势、以及丰富的组件,使用hadoop进行BI架构便方便许多。

一个典型的基于hadoop的BI架构如下图所示:

该BI架构主要包括2部分:实时处理部分、离线批处理部分。

实时处理部分:

  • 功能主要是实时获取用户的网站、app等访问记录,分析用户行为轨迹,其数据来源一般是访问日志。
  • 数据流:通过flume实时拉取服务器的日志,并将其发送至spark和hadoop。spark利用spark structured streaming组件接收flume发送的日志数据,并在一定的窗口和周期下进行计算。提取出一些用户在此时的基本行为过程,并将结果存储至hbase。这一过程中,会涉及高频的数据读写和计算需求、特别是flume和spark这一块的话对内存的需求量比较大,需要做好硬件配置的规划。同时将日志数据写入一份至hadoop,主要是为了做离线分析的需要。

离线批处理部分:

  • 功能主要是对业务数据(如进销存等)做一些统计分析,这一部分是传统BI项目。同时,结合业务数据和离线日志,可以做一些机器学习方面的应用,比如离线训练推荐系统、预测模型等。这一部分的计算量通常比较大,一般是会安排在机器闲时的时候进行。
  • 数据流:业务数据主要是通过sqoop将mysql数据以增量的形式导入hive,日志数据是在实时处理部分已经将其存入了hadoop中,这里直接拿来用就好了。这里的统计分析和机器学习应用可以依赖于hive和spark处理,比较方便。最终的分析结果存入mysql数据库,同时模型可以直接输出,验证之后拿来用。

web服务器部分:

  • 主要有2方面功能:(1)提供数据可视化,由于通常展现形式的图形、图表、地图,这一部分会涉及到比较多的前端插件如ECharts、地图api等。(2)机器学习获得的模型在这里调用,其他应用程序则只需要提交请求则可获得模型的预测结果,将模型与其它服务解耦,方便模型的迭代,同时其他应用程序调用起来也很方便、只需要一个http请求即可。

架构的基本组成部分介绍的差不多了,其实这一块基本是通用的了。数据产品的核心还是在于数据的前处理、分析挖掘上面,由于工作利益相关 在此不多做介绍,本质还是结合业务、市场等提供一些有价值的信息。

基于hadoop的BI架构的更多相关文章

  1. 基于Hadoop的大数据平台实施记——整体架构设计[转]

    http://blog.csdn.net/jacktan/article/details/9200979 大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底 ...

  2. 基于Hadoop的大数据平台实施记——整体架构设计

    大数据的热度在持续的升温,继云计算之后大数据成为又一大众所追捧的新星.我们暂不去讨论大数据到底是否适用于您的组织,至少在互联网上已经被吹嘘成无所不能的超级战舰.好像一夜之间我们就从互联网时代跳跃进了大 ...

  3. 基于Hadoop开发网络云盘系统架构设计方案

    基于Hadoop开发网络云盘系统架构设计方案第一稿 引言 云计算技术的发展,各种网络云盘技术如雨后春笋,层出不穷,百度.新浪.网易都推出了自己的云盘系统,本文基于开源框架Hadoop设计实现了一套自己 ...

  4. 基于Hadoop的数据仓库Hive

    Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理.特殊查询和分析处理,提供了类似于SQL语言的查询语言–HiveQL,可通过HQL语句实现简单的MR统计,Hi ...

  5. Amazon EMR(Elastic MapReduce):亚马逊Hadoop托管服务运行架构&Hadoop云服务之战:微软vs.亚马逊

    http://s3tools.org/s3cmd Amazon Elastic MapReduce (Amazon EMR)简介 Amazon Elastic MapReduce (Amazon EM ...

  6. 基于hadoop的数据仓库工具:Hive概述

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习成本低,可以通过类 ...

  7. [转] X-RIME: 基于Hadoop的开源大规模社交网络分析工具

    转自http://www.dataguru.cn/forum.php?mod=viewthread&tid=286174 随着互联网的快速发展,涌现出了一大批以Facebook,Twitter ...

  8. Hadoop工程包架构解析

    Hadoop源码解析 1 --- Hadoop工程包架构解析 1 Hadoop中各工程包依赖简述    Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算 ...

  9. 基于Hadoop开发网络云盘系统客户端界面设计初稿

    基于Hadoop开发网络云盘系统客户端界面设计初稿 前言: 本文是<基于Hadoop开发网络云盘系统架构设计方案>的第二篇,针对界面原型原本考虑有两个方案:1.类windows模式,文件夹 ...

随机推荐

  1. SSM(Spring)中,在工具类中调用服务层的方法

    因为平时在调用service层时都是在controller中,有配置扫描注入,spring会根据配置自动注入所依赖的服务层. 但因我们写的工具类不属于controller层,所以当所写接口需要调用服务 ...

  2. 如何解释vue的生命周期才能令面试官满意?

    当面试官问:"谈谈你对vue的生命周期的理解",听到这句话你是不是心里暗自窃喜:这也太容易了吧,不就是beforeCreate.created.beforeMount.mounte ...

  3. 使用开源数据库客户端DBeaver连接DB2数据库

    下载安装 首先进入 官网 选择对应的版本进行安装. 下载下来后,一直惦记next即可完成安装(期间包括选择文件安装路径等操作,可按需修改). 连接db2 打开DBeaver,新建连接-->DBe ...

  4. Spring Cloud学习笔记-009

    API网关服务:Spring Cloud Zuul API网关是一个更为智能的应用服务器,它的定义类似于面向对象设计模式中的Façade模式,它的存在就像是整个微服务架构系统的门面一样,所有的外部客户 ...

  5. Python处理Excel生成CSV文档

    Python是一种解释型的.动态数据类型的.面向对象的高级程序设计语言.拥有丰富的处理数据和文本类库,并且得益于它是一种解释型的语言,在程序修改和功能扩展上,可以很容易做到大规模的调整.综合考虑Pyt ...

  6. [LeetCode] Cracking the Safe 破解密码

    There is a box protected by a password. The password is n digits, where each letter can be one of th ...

  7. 我们为什么要用springcloud?

    1 2 单体架构 在网站开发的前期,项目面临的流量相对较少,单一应用可以实现我们所需要的功能,从而减少开发.部署和维护的难度.这种用于简单的增删改查的数据访问框架(ORM)十分的重要.  垂直应用架构 ...

  8. js常用的字符串方法分析

    ##字符串## 字符串: 由0个或多个字符组成,被成对的英文单引号或双引号包含起来的. 字符编码: 每一个字符在计算机存储的编号. 计算机会保存有一套或几套用于标注编号与字符对应关系的字典.(字符集) ...

  9. kafka知识体系-kafka设计和原理分析-消息传递语义

    消息传递语义 消息传递保障 本节讨论Kafka如何确保消息在producer和consumer之间传输.有以下三种可能的传输保障(delivery guarantee): At most once: ...

  10. Centos常用命令之:搜索

    在linux中,所有的文件都是以目录树的形式存在的.而每个发行版的文件存放之间又会有些差别. 这时候,如果我们想看某个命令或者文档的时候就必须先通过某种方式找到改文档的所在位置. 在linux中提供了 ...