基于Ambari的数据处理平台

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:soj
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:汽车行业会产生大量数据,需要对这些数据进行存储与分析。基于ApacheAmbari搭建大数据基础设施,通过Nifi可以将各种型式的数据进行处理、整合并导入大数据存储。通过Kylin可以对存储的大数据进行降维,提高查询速度。基于springCloud与开发计算模块并,对外提供Rest接口,实现大数据查询功能。
  关键词:Amabri;Nifi;Kylin;SpringCloud
  中图分类号:TP391 文献标识码:A
  文章编号:1009-3044(2019)31-0001-05
  1概述
  汽车行业的软件项目中,经常有这样的业务场景。比如新能源汽车数据采集,一辆车一天的运行数据量为0.375G,这样一年的运行数据量可达136.875G,车的数量越多数据量就越多,能达到T级甚至更大。这些数据经常是以txt、CSV等形式提供的,有结构化的也有非结构化的,我们需要对这些数据进行存储和分析。
  为了突破数据存储的瓶颈上限,为数据资源中心未来的数据仓库构建做一定的技术储备,所以我们基于Ambari建设了一个数据处理平台,实现了:
  1)使用Nifi,数据可配置导入,无须开发即可接入txt、CSV或是其他数据源,将CSV文件导入Hive存储;
  2)海量数据的存储;
  3)通过Kvlin将数据降维存储到Hbase,计算模块再调用Kvlin查询数据,效率高;
  4)代码开发计算模块实现SQL的管理,能够在uI上写新的查询语句,直接暴露Rest接口,供外部程序调用。
  计算模块基于SpringClould开发,使用JHipster生成微服务基础代码,可连接Kvlin、Groovy执行计算。支持通过docker容器运行,方便横向扩展。
  目前经测已成功导入一份3500万行的文件(6.4GB)。
  2系统架构
  2.1系统结构
  该项目基于Hortonworks的HDP搭建了大数据的基础設施。基于HDF实现基本的数据ETL,用于系统问的数据集成。通过Kvlin抽取、聚合Hive中的数据,构建低维Cube表存储与Hbase,形成降维索引层,用于支持MOLAP场景。最后,通过基于SpringClould开发的计算模块,管理计算,该模块可连接Postgres、Kvlin、Sqlite、Oracle、Groovy执行计算逻辑,可实现链式计算,从而满足复杂计算场景,为大数据可视化、机器学习、人工智能等提供支持。
  2.2功能划分与流程处理
  2.3大数据基础设施管理
  大数据基础设施的搭建是极为麻烦的,Hadoop的安装、调试往往需要苦苦耗费好几天,更别提Hbase、Nifi、Kylin等Ha-doop组件,所以我们通过Apache Ambari去搭建。
  Ambari是开源的,作用是创建、管理、监控Hadoop整个生态圈(例如Hive、Hbase、Zookeeper等)的集群,让Hadoop以及相关的大数据软件更容易使用的一个工具。Ambari现在所支持的平台组件也越来越多,例如流行的Spark、Storm等计算框架,以及资源调度平台ARN等,我们都能轻松地通过Ambari来进行部署。通常场景,会登录Ambari进行故障排查、服务重启、配置查找/修改等工作。
  Ambari使大数据基础设施安装,官方说法是从数人天降低到一人天,运维人数从数十人降低到几人。如图3所示。
  3Nifi
  因为企业数据来源是多元化的,需要经过整合后接入ha-doop生态圈以及各种存储分析组件,我们希望这个过程是平滑、可视的。
  Nifi是一个开源的数据处理与分发系统,可以通过简单的Processor对数据流进行处理,他提供可视化的uI界面,各个模块组件之间可配置,各个数据处理模块之间的数据流转情况。可以将各种数据源的数据导入Hive、Hbase存储。
  4KyLin
  Kylin简单说就是做大数据查询的,可以对大数据进行降维,可以帮助我们对大数据进行多维度的分析,提高查询效率。
  对于海量数据,每增加一个维度,数据量就是笛卡儿积,减少维度能够大量减少数据量,大多数计算不需要用到所有维度的。
  以近SQL语句,查询T级别大数据秒级可完成。
  5数据集成
  5.1创建Hive表
  登录Ambari集群任一服务器,执行hive命令进去Hive命令行模式,即可运行SQL语句创建/查询数据表。如图4所示。
  5.2创建Nifi数据流
  Nifi是一个开放的数据集成开发平台,数据处理平台通过Apache Nifi实现数据ETL,通过Ambari的QuickLinks进入Nifi-uI界面,通过对图形化数据处理流程的设计及配置,实现数据的ETL流程。
  下图样例流程实现了:1)CSV数据文件的到达监听;2)CSV数据文件的解析;3)Hive的流导入;41KylinCube的增量构建。
  如图5所示。
  5.3kylin多维交互查询
  通过Apache Kylin抽取、聚合Hive中的数据,构建低维Cube表存储与Hbase,形成降维索引层,用于支持MOLAP场景,如图6所示。
  KvlinCube(低维表)的创建过程大致过程为:创建project、同步Hive表、创建Model、创建Cube。
  6计算模块
  6.1系统介绍
  计算模块可连接Postgres、Kylin、Sqlite、Oracle、Groovy等执行计算逻辑,可实现链式计算,从而能够满足大多数场景的BI计算需要。   Kvlin是基于hive构建低维表,低维表就是抽取部分列,聚合度量值,形成一个小的内存表,数据处理平台就可以连Kylin执行查询了,在低维表上运行sql,返回结果,查询速度快。
  计算模块通过Rest接口,被外部系统调用。为了满足系统对吞吐量,性能,稳定性的需求,而在技术上选择基于Spring-Cloud的微服务架构与Docker容器。这个架构的好处是,服务可以开任意多实例进行横向扩展,还可以保持服务的独立性,屏蔽底层物理平台的差异。为了加快开发速度,我们选用了JHipster,一个开源的SpringCloud代码生成脚手架,可以自动化生成前后台一套完整的微服务体系代码,包括监控、日志、权限等,正常情况下可以减少一半以上工作量。
  计算模块还提供了一个可输入Kylin、Groovy等大数据操纵脚本的uI界面,将脚本传递到Java后台执行,并返回结果。
  6.2进入计算模块的数据处理界面
  进人计算模块前台数据处理界面,点击“添加”按钮。
  如图7所示。
  填写基本信息:
  命名控件:用于将计算分组,方便排序/搜索。
  名称:中文名称,方便阅读。
  标识符:需全局唯一,用于外部系统调用该计算。
  6.3计算开发
  数据处理(计算)是通过顺序执行“子处理”实现的。
  uI元素介绍:
  1)基本信息:数据处理的基本信息;Rest接口决定该数据处理是否支持外部系統的Rest调用;“停用”/“启用”按钮可停用/启用该数据处理。
  2)测试参数:方便子处理的开发,可随时测试运行。
  3)子处理列表:用于添加/排序删除子处理。
  4)子处理信息:
  名称:子处理名称,在该数据处理范围内唯一,计算结果中将用该名称作为结果键值
  类型:目前支持以下类型
  [Sql-服务DB]代码类型为PostgresSQL,用于查询计算服务本身的数据库。
  [Sql-Kylin]代码为KvlinSQL,用于查询Kylin中的Cube表。
  [Sql-Oracle]代码为Oracle SQL,用于查询配置中指定Ora-cle实例的数据表。
  [Sql-中间结果]查询内存Sqlite数据库,前置子处理需开启“输出表”,表名为子处理名称。
  [脚本Groovy]前置子处理需开启“输出对象”。
  输出表:若子处理开启该项,结果将存储与内存sQLite数据库,表明即为该子处理名称,后续的“Sql-中间结果”子处理可编写sql访问该数据。
  输出对象:若子处理开启该项,数据结果将存储与内部数据结果(HashMap),键值为该子处理名称,后续“脚本-Groovy”子处理可编写Groovy脚本访问该数据集。
  输出结果:若子处理开启该项,结果将最终返回给调用者。
  代码:子处理的具体代码,根据子处理“类型”,填写SQL或Groovy脚本。
  如图8所示。
  5)测试子处理:
  测试子处理将顺序执行子处理至“当前”子处理,传人参数为“测试参数”,结果JSON字段说明:
  success:是否成功。
  error:若失败,返回具体错误信息。
  results:结果集,键值为子处理名称,包含开启了输出结果的前置子处理结果和当前子处理结果。
  如图9所示。
  6)外部系统调用
  identNer:数据处理的标识符
  paramMap:输人参数,类型为JSON,例:
  {“paraml”:“valuel”,“param2”:100}
  7总结
  基于Ambari搭建大数据基础设施,将汽车行业的大量结构化、非结构化的数据经处理后导入Hive或Hbase存储。基于SpringCloud脚手架JHipster开发计算模块,开发效率可以高出50%,可以发布为Docker容器根据访问量自由做横向扩展。使用Kvlin对数据进行降维处理,计算模块的大数据检索效率更高。该项目可以被外部系统用来做数据分析,大数据可视化,机器学习,人工智能等。
其他文献
升级到Windows Server2003不是一件一蹴而就的任务,在您动手之前,请理解升级的理由,分析好升级前的环境,并掌握升级工作的要点,这样您才能通过升级或迁移带来一个更完美的协作平台
在SQL Server 2005中微软强调的是系统和数据库的可用性。它提供了故障转移群集、数据库镜像、日志传送和复制四项高可用性技术。对于高度并发的系统,它还提供了快照隔离和在
长久以来,系统管理员都知道域名一旦设置之后,是不可能进行修改的。一定要改?那么唯一的办法就是从头再来。本文为大家介绍了两个微软公司新推出的工具,帮助广大系统管理员完成
为了进一步有效加强教学过程管理,不断提高初中教学质量,本文分析和总结了高中入学考试的数据,提出了初中入学考试在未来的一些切实可行的建议。
针对只利用单数据源进行关系人发现不准确、不完备的问题,研究利用多维数据的关系人分析方法。针对航班和火车出行数据,采用同行规律挖掘算法得到与目标人物一起出行的同行关