大数据之多数据源综合管理系统:概述

1. 概述

1.1. 系统背景

最初的时候,咱们只是想设计一个Web版本的HBase数据浏览器,相似于PL/SQL那样便捷,后来又添加了HDFS分布式文件系统浏览器,再后来又添加了Hive数据仓库浏览器功能。这个时候,hadoop集群由一个扩张到三个,大数据业务系统所涉及到的NoSQL数据库也愈来愈多,譬如Neo4j、MongoDB、Redis等,所涉及的批处理和流计算平台也从最初的只有MapReduce,又相继增长了Spark和Storm等。mysql

本来,只是抱着学习和技术探索的态度进入hadoop生态技术圈的,也并无期望在正式的生产环境中进行深度应用,可是如今,让咱们措手不及的是要在很短的时期内进行数据库技术的转型,面对即将全面铺开的业务应用,以及由此致使的在多种数据库和计算平台的频繁切换,让咱们逐渐生出些许烦躁和厌恶。jquery

因而,决定作一些整合性的开发,“工欲善其事,必先利其器”,但愿在战斗即将打响前,本身有一套稍稍完整的装备,不至于措手不及和手忙脚乱。这就是“大数据之多数据源综合管理系统”设计的初衷。“综合管理系统”,听起来这是一个多么庞大的系统,其实呢,这只是对一堆难以梳理的技术的一种懒惰的叫法,咱们相信,不少人都从事开发过相似于“综合管理系统”这样的项目,它就是一种混混沌沌的状态,在叫法上,你我大可没必要斤斤计较。linux

系统的设计基本上分为五个阶段。web

第一,数据源管理。理想的构建目标中,系统将囊括业务系统所涉及到的全部的数据库,包括关系数据库(Oracle、MySql等)和非关系数据库(HBase、HDFS、Hive、Neo4j、MongoDB、Redis等等),以及其余不断涌现的新的数据存储技术。但愿可以在这样一个系统中,实现对多种数据库的统一管理,包括数据库链接配置、数据库对象管理、数据浏览器、数据维护、访问受权管理等,免去在多种独立工具之间的频繁切换。sql

第二,数据通道管理。数据该如何写入数据库呢?外部系统该如何访问数据呢?在读写数据时该如何平衡速度、安全和传输量三者呢?如何解决跨语言应用的问题呢?这就是数据通道须要解决的问题。其实,刚开始的时候,设计数据通道的想法并不是是基于以上目标,而只是不肯意在访问HBase数据库时复制引用大量的hadoop Jar文件,更别说没法预料的jar文件版本冲突引用的其余问题。shell

第三,数据迁移管理。当业务系统由基于常规的关系数据库转向基于NoSQL数据库时,数据迁移将是不得不面对的大问题。譬如,将Oracle数据迁移到HBase数据库中,你首先会想到Sqoop,这固然能够,不过稍微复杂一点的状况,就须要你编程了。另外,不一样数据库之间相互迁移数据呢?譬如Oracle到Neo4j,Oracle到MongoDB,以及MongoDB到HBase等等多种状况呢?这就是咱们设计数据迁移管理的初衷:“0”代码编程和跨数据库类型自由迁移。数据库

第四,数据计算平台。说到这里,你可能已经感受到系统设计的思路了,是的,就是遵循“存储-治理-计算-展现”的层次进行的。本来,咱们大可没必要在系统中引入Spark和MapReduce等计算平台,可是,咱们不可能为了让用户提交运行Spark任务,随随便便将hadoop集群的配置信息和Linux主机的密码信息泄露出去,并且,经过shell命令行的方式提交Spark和MapReduce应用也并不是人人能够胜任,为了下降任务提交的门槛、提升任务提交的便捷性以及出于对集群安全的考虑等,最终说服本身将数据计算平台引入系统中。编程

第五,远程主机管理。开始编写本篇文章时,我须要管理的CDH集群有三个,linux主机将近50台,windows主机数十台。每台主机的运行状态(内存、CPU、硬盘空间等)、各类服务的运行状态是天天都须要监控的,另外须要常常进行数据文件的上传、备份、清除,以及服务的安装调试等等,在有些状况下,市面上经常使用的shell工具作不到顺手和高效,迫于无奈,咱们设计了本身的远程主机管理模块。windows

1.2. 系统配置浏览器

看下面的两张系统截图,你会发现,咱们使用了jquery-easyui。不错,这款UI工具包帮了咱们很大忙。

登陆窗口

首页

1.2.1 运行环境

因为咱们的CDH测试环境是5.4版本,要求jdk必须是1.7以上版本,因此是基于jdk 1.7开发的。

开发阶段和生产阶段所采用的部署服务器是tomcat 7.0,其余的服务器譬如jboss、weblogic等暂时没有测试过,若是您有兴趣,能够测试部署下。

系统能够在IE、谷歌、火狐等浏览器中运行,其中要求IE必须是8.0以上版本。

1.2.2 数据库配置

本系统的数据库采用的是MySQL,链接信息配置在jdbc.properties文件中,详细配置以下表所示:

选项

描述

driverClass

com.mysql.jdbc.Driver

jdbcUrl

链接字符串

user

用户名称

password

登陆密码

1.2.3 系统配置

系统配置信息存放在system.config.properties文件中,详细配置以下表所示:

选项

描述

system.title

系统标题

system.sub.title

系统子标题

system.version

系统版本

system.copyright

系统版权信息

system.icon.path

系统图标

passage.service.address

系统RMI主通道部署主机地址(设为本机IP地址便可)

passage.service.port

系统RMI主通道部署端口号(默认为11000)

 

1.3. 系统发布

1.3.1 系统版本

因为本系统涉及到的功能较多,因此系统发布工做将分阶段进行。第一阶段将发布6个独立的版本,称之为1.0版本,其中“数据源管理”将分别在1.0.1和1.0.2两个子版本中介绍。第二阶段将发布完整的版本,称之为为2.0版本。

v1.0.1版本,包含“数据源管理”的两个子功能:HDFS分布式文件系统、HBase数据库。

v1.0.2版本,包含“数据源管理”的剩余的子功能:Neo4j图数据库、MongoDB文档数据库、Redis键值数据库、Hive数据仓库、关系数据库等数据库功能。

v1.0.3版本,包含数据通道功能。

v1.0.4版本,包含数据迁移功能。

v1.0.5版本,包含远程主机管理功能。

v1.0.6版本,包含数据计算平台功能。

1.3.2 系统部署

咱们将系统所涉及到的全部资料都打包成一个rar文件,名称为“mdsm-v1.0.1-20170216.rar”,其中“mdsm”为系统名称,“v1.0.1”为系统版本号,“20170216”为发布日期。里面包含4个文件,以下图所示:

文件

描述

mdsm

编译后的web项目。

mdsm.psc

备份后的mysql数据库,包含全部的表和数据。咱们采用navicat for Mysql进行还原操做:

首先建立mdsm数据库,以下图所示:

新建mysql数据库

而后在“备份”面板中点击“还原备份”按钮,选择本地的mdsm.psc文件,进行还原操做,以下图所示:

还原备份

mdsm.pdf

设计文档和用户手册。

readme.txt

系统发布说明文件。

 

【未完待续】

相关文章
相关标签/搜索