大數據之多數據源綜合管理系統:概述

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

系統發佈說明文件。

 

【未完待續】

相關文章
相關標籤/搜索