一種大數(shù)據(jù)庫系統(tǒng)的安裝工具的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種數(shù)據(jù)庫系統(tǒng)的安裝工具,尤其涉及一種大數(shù)據(jù)庫系統(tǒng)的安裝工 具。
【背景技術(shù)】
[0002] 隨著計(jì)算機(jī)技術(shù)的發(fā)展,單機(jī)版數(shù)據(jù)庫系統(tǒng)應(yīng)運(yùn)而生并得到了不斷發(fā)展和完善。 但是,隨著互聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)和物聯(lián)網(wǎng)的發(fā)展,我們迎來了一個海量數(shù)據(jù)的時代,對這些 海量數(shù)據(jù)的分析已經(jīng)成為一個非常重要且緊迫的需求。傳統(tǒng)單機(jī)版數(shù)據(jù)庫系統(tǒng)已無法滿足 網(wǎng)絡(luò)時代的海量大數(shù)據(jù)管理要求,無論是存儲容量、存取速度、查詢速度都受到極大的限 制。一種基于python web的Apache大數(shù)據(jù)庫系統(tǒng)為網(wǎng)絡(luò)時代的海量大數(shù)據(jù)提供了一個分布 式可擴(kuò)展、大容量、高速存取、高速查詢的數(shù)據(jù)庫平臺。用戶可以在不了解分布式底層細(xì)節(jié) 的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲。其中,Hadoop由分 布式文件系統(tǒng)HDFS和分布式批處理計(jì)算框架Mapreduce組成。其計(jì)算模型以函數(shù)式編程中 的Map-Reduce兩個函數(shù)為原型,發(fā)展出了適用于多機(jī)并行處理的計(jì)算模式,使集群的整體 處理能力可以橫向擴(kuò)展,解決了單機(jī)數(shù)據(jù)處理的瓶頸。
[0003] Spark支持包括HDFS在內(nèi)的多種數(shù)據(jù)存儲方式,這使得Spark成為一套更通用的數(shù) 據(jù)分析處理系統(tǒng)。在基于Spark又開發(fā)了針對各種計(jì)算領(lǐng)域的工具包,比如流式計(jì)算Spark Stream,機(jī)器學(xué)習(xí)包Ml 1 ib,支持SQL查詢的SparkSQL,圖計(jì)算GraphX。
[0004] 而Hadoop經(jīng)過多年的發(fā)展,日漸成熟,其HDFS已經(jīng)成為大數(shù)據(jù)文件系統(tǒng)的事實(shí)標(biāo) 準(zhǔn)。Hadoop和Spark就是現(xiàn)在大數(shù)據(jù)分析處理平臺的基石。
[0005] Ambari是hadoop分布式集群配置管理工具,是由hortonworks主導(dǎo)的開源項(xiàng)目。它 已經(jīng)成為apache基金會的孵化器項(xiàng)目,已經(jīng)成為hadoop運(yùn)維系統(tǒng)中的得力助手,引起了業(yè) 界和學(xué)術(shù)界的關(guān)注。
[0006] Ambari采用的不是一個新的思想和架構(gòu),也不是完成了軟件的新的革命,而是充 分利用了一些已有的優(yōu)秀開源軟件,巧妙地把它們結(jié)合起來,使其在分布式環(huán)境中做到了 集群式服務(wù)管理能力、監(jiān)控能力、展示能力。這些優(yōu)秀開源軟件有:
[0007] 在agent端,采用了puppet管理節(jié)點(diǎn);
[0008] 在Web端,采用了 ember . js作為前端的MVC構(gòu)架和Node JS相關(guān)工具,用 handlebars. js作為頁面植染引擎,在CSS/HTML方面還用了 Boots trap框架;
[0009] 在 Server 端,采用了 Jetty,Spring,Jetty,JAX_RS 等;
[00?0]同時利用了 Ganglia,Nagios的分布式監(jiān)控能力。
[0011 ] Ambar i架構(gòu)采用的是Server/Cl ient的模式,主要由兩部分組成:ambar i-agent和 ambari-servei^ambari依賴其它已經(jīng)成熟的工具,例如其ambari-server就依賴python,而 ambar i-agent還同時依賴ruby,puppet,facter等工具,還有它也依賴一些監(jiān)控工具nagios 和ganglia用于監(jiān)控集群狀況。其中:
[0012] puppet是分布式集群配置管理工具,也是典型的Server/Cl ient模式,能夠集中式 管理分布式集群的安裝配置部署,主要語言是ruby。
[0013] facter是用python寫的一個節(jié)點(diǎn)資源采集庫,用于采集節(jié)點(diǎn)的系統(tǒng)信息,例如0S 信息,主機(jī)信息等。由于ambari-agent主要是用python寫的,因此用facter可以很好地采集 到節(jié)點(diǎn)信息。
[0014] Ambari依賴的眾多開源軟件,包括部署工具,消息隊(duì)列,需要在每個節(jié)點(diǎn)安裝客戶 端。而安裝這些工具,又需要配置軟件的源地址,不能做到離線安裝。
[0015]當(dāng)前圍繞著Apache Hadoop這個分布式數(shù)據(jù)處理工具已經(jīng)開發(fā)了一系列大數(shù)據(jù)計(jì) 算查詢工具,比如Spark,Hive .但這些工具只提供了最基本的計(jì)算,存儲功能。Hadoop和 Spark依賴腳本執(zhí)行操作。啟動集群前需要對操作系統(tǒng)進(jìn)行配置,步驟繁瑣,不利于維護(hù)。
[0016] 1)現(xiàn)有的開源部署軟件架構(gòu)復(fù)雜,各組件要完全通過鍵入命令行輸入選項(xiàng)獨(dú)立安 裝,部署工具本身的安裝無法自動化,使用戶不能快速地、不能無人執(zhí)守地進(jìn)行大數(shù)據(jù)平臺 的安裝。
[0017] 2)配置文件管理分散,需要手工填寫。大數(shù)據(jù)平臺的每個組件都有2,到3個配置文 件需要配置,配置文件的管理復(fù)雜度隨著大數(shù)據(jù)平臺中組件的增加而增加。
[0018] 3)大數(shù)據(jù)平臺使用xml作為標(biāo)準(zhǔn)的配置文件,用戶手工改寫配置時容易造成文件 格式錯誤,導(dǎo)致進(jìn)程讀取文件失敗而使啟動發(fā)生錯誤。
[0019] 4)沒有圖形化界面,用戶需要學(xué)會使用linux shell編程才能完成部署工作。
[0020] 5)傳統(tǒng)的shell部署腳本,順序執(zhí)行安裝過程的全部命令,當(dāng)某一個命令執(zhí)行失敗 之后,不能立刻退出并且報告錯誤,不利于故障及時暴露,延長了安裝過程消耗的時間,降 低了安裝效率。
【發(fā)明內(nèi)容】
[0021] 本發(fā)明要解決的技術(shù)問題是提供一種大數(shù)據(jù)庫系統(tǒng)的安裝工具,該安裝工具可在 安裝大數(shù)據(jù)庫系統(tǒng)之前設(shè)置好所有選項(xiàng)和參數(shù),大部分選項(xiàng)和參數(shù)只需要通過鼠標(biāo)進(jìn)行設(shè) 置,大大減少了鍵盤輸入的幾率,大大減少了將選項(xiàng)和參數(shù)設(shè)置錯誤的可能性,提高了設(shè)置 效率,設(shè)置好選項(xiàng)和參數(shù)后,可自動地、連續(xù)地安裝大數(shù)據(jù)庫系統(tǒng)的所有組件,實(shí)現(xiàn)無人執(zhí) 守地進(jìn)行大數(shù)據(jù)平臺的安裝,大大提高了大數(shù)據(jù)庫系統(tǒng)的安裝效率。
[0022] 為了解決上述技術(shù)問題,本發(fā)明提供了一種大數(shù)據(jù)庫系統(tǒng)的安裝工具,包括大數(shù) 據(jù)庫系統(tǒng)的安裝面板,所述安裝面板上分布有
[0023] 所有大數(shù)據(jù)庫系統(tǒng)需要設(shè)置的選項(xiàng)名稱標(biāo)簽控件,
[0024]由用戶鍵入大數(shù)據(jù)庫系統(tǒng)參數(shù)值用的文本框控件和由用戶選擇大數(shù)據(jù)庫系統(tǒng)參 數(shù)值用的文本框控件、復(fù)合框控件、列表框控件、復(fù)選框控件、單選按扭控件,
[0025] 用于運(yùn)行大數(shù)據(jù)庫系統(tǒng)的安裝程序的命令按扭控件;
[0026] 所述大數(shù)據(jù)庫系統(tǒng)各個選項(xiàng)的參數(shù)值與所述安裝程序相關(guān)聯(lián)。
[0027]所述安裝面板是網(wǎng)頁。
[0028] 所述網(wǎng)頁內(nèi)設(shè)置有標(biāo)簽控件,所述標(biāo)簽控件中共有八個標(biāo)簽,八個所述標(biāo)簽名稱 分別是通用配置、Hadoop配置、Hive配置、Spark配置、Zookeeper配置、HA配置、監(jiān)控套件配 置、配置預(yù)覽。
[0029] 所述大數(shù)據(jù)庫系統(tǒng)包括Hadoop組件、Hive組件、Spark組件、Zookeeper組件;
[0030] 所述Hadoop組件中的選項(xiàng)和參數(shù)值設(shè)置在標(biāo)簽名稱是Hadoop配置的窗口中,
[0031] 所述Hive組件的選項(xiàng)和參數(shù)值設(shè)置在標(biāo)簽名稱是Hive配置的窗口中,
[0032]所述Spark組件的選項(xiàng)和參數(shù)值設(shè)置在標(biāo)簽名稱是Spark配置的窗口中,
[0033] 所述Zookeeper組件的選項(xiàng)和參數(shù)值設(shè)置在標(biāo)簽名稱是Zookeeper配置的窗口中。
[0034] 所述通用配置中的選項(xiàng)名稱包括Root密碼、用戶、用戶密碼、hosts、s laves;
[0035] 所述]^(1〇(^配置中的選項(xiàng)名稱包括11&(1〇(^_611¥、5^1'11_611¥、(30代_8;!^6、11(11^_ site、mapred_site、yarn_site;
[0036] 所述Spark配置中的選項(xiàng)名稱包括spark_env、spark_conf;
[0037] 所述Hive配置中的選項(xiàng)名稱包括hive_env、hive_site;
[0038] 所述Zookeeper配置中的選項(xiàng)名稱包括zoo. cfg;
[0039] 所述HA配置中的選項(xiàng)名稱包括NameNode列表、RM列表、ZK列表、JN列表;
[0040]所述監(jiān)控套件配置中的選項(xiàng)名稱包括指定啟動ganglia進(jìn)程的主機(jī);
[0041] 所述配置預(yù)覽中的選項(xiàng)名稱包括配置文件下載按鈕,啟動安裝按鈕。
[0042] 所述標(biāo)簽名稱是Spark配置的窗口中還設(shè)置有配置文件按扭控件;
[0043] 所述標(biāo)簽名稱是配置預(yù)覽的窗口中還設(shè)置有下載配置文件按