目前市场上常见的企业级大数据平台型的产品主流的有两个,一个是Cloudera公司推出的CDH,一个是Hortonworks公司推出的一套HDP,其中HDP是以开源的Ambari作为一个管理监控工具,CDH对应的是Cloudera Manager,国内也有像星环这种公司专门做大数据平台。我们公司最初是使用CDH的环境,近日领导找到我让我基于Ambari做一个公司自己的数据平台产品。最初接到这个任务我是拒绝的,因为已经有了很完善很成熟的数据平台产品,小公司做这个东西在我看来是浪费人力物力且起步太晚。后来想想如果公司如果有自己数据平台的产品后续在客户面前也能证明自己的技术实力且我个人也能从源码级别更深入的学习了解大数据生态圈的各个组件。

  个人在公司的数据平台从无到有的这个过程。认为建设一个自己的数据平台应该包含三个部分。包括基础设施建设、大数据平台建设、业务系统数据接口三部分组成。其中基础设施建设初期采用对台Linux服务器作为硬件基础设施,后续技术成熟可以采用容器技术更优的配置资源。大数据平台包含数据接入模块,数据存储模块,数据计算模块,资源调度模块,集群监控模块组成,致力于完成数据存储、流计算、批处理、交互式分析等多种需求。本文将重点介绍大数据平台建设规划。业务系统数据接口是根据不同业务系统需求,对外暴露对应的数据接口提供数据。

1. 数据平台架构

  数据平台按数据处理方式包含数据流处理和数据批处理两种方式,其中数据流处理采用Storm计算框架,目前建议只做简单逻辑处理,计算结果仅用作实时数据展示,后续技术成熟可加入实时ML模块。批处理针对于数据仓库,通过采集程序、对接业务系统或收集业务系统日志等数据,数据存储底层使用分布式文件系统HDFS,基于多种业务需求构建数据仓库用于多维度数据分析。数据计算建议采用当下主流的计算引擎Spark。对于非关系型数据通过代码逻辑进行处理,对于关系型数据采用SQL进行处理,如SparkSQL,Hive,Kylin等组件,计算结果写入支持后台应用程序快速读取的数据库。计算任务通过任务调度系统统一调度执行。数据平台安全机制采用主流的通过主机配置kerberos实现。集群资源监控使用自行开发的XJManager,页面应包含组件名称及状态统计信息,主机健康信息,用户管理等模块,实现用户通过Web页面就可以安装配置大数据平台。项目整体架构如下图所示:

  下边介绍各个模块:

2.1. 数据接入模块

  包含传感器数据采集程序接入,使用Flume采集业务系统日志数据,对接其他业务系统数据库数据。对实时采集的数据使用Kafka作为缓冲。对于对接的业务系统数据如果有操作型数据可以构建ODS系统。用于数据分析的数据(含采集数据和对接业务数据)在Hadoop上构建数据仓库。

2.2. 数据仓库模块

  基于Hadoop之上构建数据仓库。数据来源于多种数据源,针对不同的业务需求设计整理不同的基础数据表。数据仓库是一种反范式设计,引入冗余。完全针对不同维度的数据分析需求去设计。

2.3. 流计算模块

  使用Storm作为流计算框架。Storm具有低延时的特点。后续如果数据量吞吐量较大且没有较高的时效性需求,可以替换SparkStreaming。

2.4. 离线计算模块

  离线处理模块对于结构化数据使用SQL进行处理,对于非结构化数据编写代码进行处理。使用SQL进行大数据量下的计算建议使用SparkSQL,其他常用的使用SQL进行数据计算的组件如传统的Hive,国人开源的Kylin。(Impala不开源不能整合)。

2.5. 任务调度模块

  集成Oozie和Ext.js自动部署Oozie的web ui,通过xml配置作业依赖,通过property文件配置运行参数,通过ext.js完成web页面监控。

2.6. 平台安全模块

  Kerberos

2.7. 集群监控模块

  1. 实现ambari页面汉化
  2. 修改ambari监控页面样式
  3. 实现ambari一键安装部署

  目前初期建设待解决的问题如下:

3.1. Ambari源码理解

  Ambari源码地址:https://github.com/apache/ambari

  主要修改部分在ambari-web和ambari-views模块

3.2. Ambari修改样式

  修改ambari页面样式,包含相关logo修改,页面菜单、操作按钮、提示等内容汉化。

  下图是原ambari样式:

3.3. Ambari集成组件

  Ambari类似于Cloudera公司的ClouderaManager,使用源码后编译也仅仅能够实现在线安装组件,在线安装组件速度慢,不稳定,易出现安装失败。所以建议将常用组件集成一起打包,常用组件包括HDFS、MapReduce2、YARN、Hive、Sqoop、Oozie、Zookeeper、Storm、Kafka、Flume、Spark等。提前准备好对应版本的组件安装部署时从本地安装提升速度也更加稳定。

3.4. 一键部署脚本编写

  目前离线安装ambari需要提前准备好ambari、HDP、HDP-util三个包构建本地yum源,然后通过yum安装ambari-server,还需安装配置关系型数据库。过程相对于普通用户较为复杂,建议编写一键安装脚本,在服务器准备好之后(免密钥、关闭防火墙、时间同步等),只需运行脚本便可以实现在服务器上安装部署。

基于Ambari构建自己的大数据平台产品的更多相关文章

  1. 基于ambari搭建hadoop生态圈大数据组件

    Ambari介绍1Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应.管理和监控.Ambari已支持大多数Hadoop组件,包括HDFS.MapReduce.H ...

  2. 使用vue构建一个可视化大数据平台

    使用vue全家桶以及v-charts和datav实现一个github可视化大数据界面展示,没有设计搞的原因,只能忽略设计编写一下界面, 用户只需要登录的时候填写自己github用户名.就可以看到数据展 ...

  3. AI加持的阿里云飞天大数据平台技术揭秘

    摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...

  4. TOP100summit:【分享实录】链家网大数据平台体系构建历程

    本篇文章内容来自2016年TOP100summit 链家网大数据部资深研发架构师李小龙的案例分享. 编辑:Cynthia 李小龙:链家网大数据部资深研发架构师,负责大数据工具平台化相关的工作.专注于数 ...

  5. 大数据 -- Cloudera Manager(简称CM)+CDH构建大数据平台

    一.Cloudera Manager介绍 Cloudera Manager(简称CM)是Cloudera公司开发的一款大数据集群安装部署利器,这款利器具有集群自动化安装.中心化管理.集群监控.报警等功 ...

  6. CDH构建大数据平台-配置集群的Kerberos认证安全

     CDH构建大数据平台-配置集群的Kerberos认证安全 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当平台用户使用量少的时候我们可能不会在一集群安全功能的缺失,因为用户少,团 ...

  7. 构建AR视频空间大数据平台(物联网及工业互联网、视频、AI场景识别)

    目       录 1.      应用背景... 2 2.      系统框架... 2 3.      AI场景识别算法和硬件... 3 4.      AR视频空间管理系统... 5 5.    ...

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

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

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

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

随机推荐

  1. Permission 0644 for .ssh/id_rsa Are Too Open 解决办法

    Permission 0644 for .ssh/id_rsa Are Too Open 解决办法 学习了:https://blog.csdn.net/muyimo/article/details/7 ...

  2. easyui messager alert 三秒后自动关闭提示

    $.messager.alert(' ','<font size=\"2\" color=\"#666666\"><strong>数据库 ...

  3. 【JavaScript】2013年人气最高的JavaScript框架排名

    本文概述 本文介绍2013年人气急速上升,2014年必须知道的JavaScript框架排名.本文所介绍的排名为Google根据全世界2013年的搜索关键词所做出的统计结果. MVC框架 JavaScr ...

  4. laravel 安装环境安了三天!!

    各种报错,各种升级,各种重装,重启!! 记录一下一些错误吧,,, 错误太复杂,,,, 原因:版本问题!.CPU虚拟化问题.win10问题.软件兼容性问题.还有就是各种不细心啥的         分割线 ...

  5. 将图片转成base64字符串并在JSP页面显示的Java代码

    *本事例主要讲了如下几点:  * 1:将图片转换为BASE64加密字符串.  * 2:将图片流转换为BASE64加密字符串.  * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引 ...

  6. java学习笔记2015-6-5

    今天晚上不须要不论什么编译器 记事本编写代码 1.安装JDK配置 2.JDK JRE的关系 3.基本的语法  常量  变量  数据类型  逻辑运算符  流程控制语句 4.小的练习  问题 5.课后作业 ...

  7. 基于Python Tornado的在线问答系统

    概述 本项目使用最新的Tornado开发.实现了在线提问,回答,评论等功能.使用到Tornado的generator,长轮询等等技术, 支持MySQL的异步连接. 详细 代码下载:http://www ...

  8. Android 识别身份证号码(图片识别)

    概述 Android 身份证号码识别 (本地,在线,实时),网络识别用的别人的接口,不保障什么时候就用不了了,本地识别基于tess_two,位置对的话识别准确率达到90%以上. 详细 代码下载:htt ...

  9. 站点下的robots

    面试某软,被面试官问道:你做爬虫.知不知道非常多站点下都有个robots文件? 答曰:不知. 于是面试官给我演示了一遍~ 遂卒.首战慘败. 下来查了维基百科.基本了解robots.https://zh ...

  10. Lintcode---把排序树组转换为高度最小的二叉树

    给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树. 注意事项 There may exist multiple valid solutions, return any of them. ...