系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Ubuntu編譯安裝Hypertable

Ubuntu編譯安裝Hypertable的方法

時(shí)間:2015-04-17 17:45:55 作者:qipeng 來源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請(qǐng)使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150417/45849.html 手機(jī)查看 評(píng)論

  HyperTable是開源的數(shù)據(jù)庫,在Ubuntu系統(tǒng)中的安裝并沒有那么簡(jiǎn)單,下面小編將針對(duì)HyperTable在Ubuntu下的編譯安裝做個(gè)詳細(xì)的介紹,如果你還不知道怎么安裝的話可以來學(xué)習(xí)一下。

 Ubuntu編譯安裝Hypertable的方法

  【安裝】

  安裝過程運(yùn)行于Ubuntu操作系統(tǒng),以下所列說明指令適用于Ubuntu的安裝方式,若使用者要安裝到其他作業(yè)平臺(tái)環(huán)境,可以參考下列安裝項(xiàng)目并以通用該平臺(tái)的安裝指令來取代之,接下來會(huì)說明編譯過程中的相關(guān)檔案存放位置,以及如何組態(tài)并編譯原始程式碼,最后再說明安裝方式及如何執(zhí)行迴歸測(cè)試。

  Hypertable原始程式碼的存放路徑放置于:

  ~/src/hypertable

  編譯過程中所產(chǎn)生的連結(jié)物件檔存放于:

  ~/build/hypertable

  編譯完成的輸出執(zhí)行檔存放路徑:

  ~/hypertable

  【下載原始程式碼】

  要取得Hypertable原始碼需要先安裝 git這套由google所提出的版本控制軟體,安裝指令如下:

  $ sudo apt-get install git-core

  然后執(zhí)行以下指令設(shè)定git所通行的使用者資訊,這一份使用者資訊原則上是由git這套版本控制軟體儲(chǔ)存,以及留作記錄程式碼被哪些使用者下載的一份參考來源,其設(shè)定使用者資訊方式如下:

  $ git config --global user.name “《your name》”

  $ git config --global user.email “《your email》”

  使用git下載Hypertable原始碼之指令:

  $ git clone git://scm.hypertable.org/pub/repos/hypertable.git

  更新已下載之Hypertable原始碼方式:

  $ cd ~/hypertable

  $ git pull

  【如何設(shè)定編譯組態(tài)】

  在編譯Hypertable之前,需要先把編譯環(huán)境準(zhǔn)備好,有一些編譯軟體要先安裝就序,以下條列出在Ubuntu環(huán)境下,各項(xiàng)編譯軟體的安裝指令:

  此套件在安裝C語言標(biāo)準(zhǔn)程式庫所需要的編譯環(huán)境,如果沒有安裝build-essential套件時(shí)可能會(huì)出現(xiàn)編譯階段找不到stdio.h這個(gè)引入檔案的位置,因此建議要先確認(rèn)這項(xiàng)套件是否有安裝。

  $ sudo apt-get install build-essential

  在Hypertable會(huì)使用到一些資料壓縮與解壓縮功能,因此需要安裝 z library。

  $ sudo apt-get install zlib1g-dev

  安裝可跨平臺(tái)的makefiles產(chǎn)生工具CMake,因此可以選擇編譯器及編譯環(huán)境來產(chǎn)生Hypertable的執(zhí)行檔;根據(jù)官網(wǎng)公佈資訊,目前測(cè)試過可執(zhí)行的平臺(tái)仍以Linux/Unix為主,Windows平臺(tái)仍在測(cè)試當(dāng)中。

  $ sudo apt-get install cmake

  安裝Boost 程式庫1.34.1以上版本,這套程式庫為強(qiáng)化C++ Standard Library而設(shè)計(jì),內(nèi)含功能像是記憶體的Buffer處理,數(shù)學(xué),Hash,MPI,圖形等等函式庫。

  $ sudo apt-get install libboost.*-dev libboost-doc libboost.*1.34.1

  安裝log4cpp套件,此套件參考log4j而設(shè)計(jì),故名思議是針對(duì)c++而設(shè)計(jì)的記錄日志檔機(jī)制,在Hypertable里的記錄檔案便是由此套記錄機(jī)制在處理Log功能。

  $ sudo apt-get install liblog4cpp*

  安裝expat套件,這個(gè)套件是一個(gè)XML處理程式庫,在Hypertable舉凡對(duì)于XML的存取都是引用這個(gè)套件來處理。

  $ sudo apt-get install expat libexpat1 libexpat1-dev

  安裝libattr套件,它是處理檔案的延伸屬性的程式庫。

  $ sudo apt-get install libattr1 libattr1-dev

  安裝readline套件,這份套件內(nèi)含讀取terminal上的command line程式庫,在Hypertable里面像是登入hql shell模式,或其他會(huì)需要讀取command line的情況會(huì)使用到這一類的功能。

  $ sudo apt-get install libreadline5-dev

  安裝ncurses,透過它可以撰寫terminal底下的文字模式介面程式,在Hypertable里面像是登入hql shell模式,或需要模擬文字模式下的使用者介面,會(huì)使用到這一類的功能。

  $ sudo apt-get install libncurses5 libncurses5-dev

  安裝tcmalloc(Thread-Caching Malloc)套件,它是一個(gè)記憶體配置套件,可處理多執(zhí)行緒情況下的記憶體回收之程式庫。

  $ sudo apt-get install libgoogle-perftools0 libgoogle-perftools-dev

  開始編譯程式前還需要建立安裝目錄,以及編譯后的物件檔案存放目錄

  $ mkdir ~/src/hypertable

  $ mkdir -p ~/build/hypertable

  執(zhí)行CMake來產(chǎn)生編譯組態(tài)文件(makefiles),并指定編譯后的執(zhí)行檔模式為偵錯(cuò)模式(Debug)或發(fā)行模式(Release),以及安裝路徑,如果組態(tài)過程中出現(xiàn)找不到預(yù)設(shè)路徑下的Boost程式庫時(shí),可以再指定其路徑,指令范例如下列所示,其中 -D代表定義某個(gè)變數(shù)的前置符號(hào)。

  $ cmake -DCMAKE_INSTALL_PREFIX=“~/hypertable” -DCMAKE_BUILD_TYPE=“Debug” -DBoost_INCLUDE_DIR=“/usr/include/boost” ~/src/hypertable

  在產(chǎn)生編譯程式讀取的組態(tài)檔過程中,顯示結(jié)果加註說明如下:

  組態(tài)過程。。.

  -- Looking for required boost libraries.。。

  尋找boost程式庫當(dāng)中。。.

  -- Boost include dir: /usr/include/boost

  找到boost的header檔案路徑

  -- Boost thread lib: /usr/lib/libboost_thread-mt.so

  找到boost的多執(zhí)行緒處理之動(dòng)態(tài)程式庫

  -- Boost program options lib: /usr/lib/libboost_program_options-mt.so

  找到boost的程式參數(shù)處理之動(dòng)態(tài)程式庫

  -- Boost lib dir: /usr/lib

  找到boost的動(dòng)態(tài)程式庫存放路徑

  -- Boost version: 1_34_1

  顯示boost的版本資訊

  -- Looking for doxygen.。。

  尋找doxygen程式庫當(dāng)中。。.

  -- Looking for doxygen.。。 - found /usr/bin/doxygen

  找到doxygen的執(zhí)行程式路徑

  -- Looking for dot tool.。。

  尋找graphviz繪圖使用的dot套件

  -- Looking for dot tool.。。 - found /usr/bin/dot

  找到dot的執(zhí)行程式路徑

  -- Found Tcmalloc: /usr/lib/libtcmalloc_minimal.so

  找到tcmalloc的動(dòng)態(tài)連結(jié)程式庫路徑

  -- Got boost 1.34.x, prepend fix directory

  -- Configuring done

  -- Generating done

  -- Build files have been written to: ~/build/hypertable

  組態(tài)完成后把編譯需要的設(shè)定檔放到指定路徑~/build/hypertable

  【如何編譯與安裝】

  開始編譯之前,要先切換到編譯組態(tài)檔的存放路徑,根據(jù)上述組態(tài)預(yù)設(shè)路徑為~/build/hypertable,然后再執(zhí)行編譯指令:

  $ cd ~/build/hypertable

  $ make

  編譯之后的結(jié)果顯示如下:

 。 6%] Built target HyperComm

 。 10%] Built target HyperCommon

 。 11%] Built target commTest

 。 12%] Built target commTestDatagram

 。 12%] Built target commTestReverseRequest

  [ 13%] Built target commTestTimeout

 。 13%] Built target commTestTimer

  [ 13%] Built target sampleClient

 。 14%] Built target testServer

 。 14%] Built target htConvert

 。 17%] Built target Hyperspace

 。 33%] Built target Hypertable

  [ 42%] Built target HyperDfsBroker

 。 50%] Built target Hyperspace.Master

 。 56%] Built target Hypertable.Master

  [ 57%] Built target htgc

 。 73%] Built target Hypertable.RangeServer

  [ 76%] Built target count_stored

 。 79%] Built target csdump

  [ 79%] Built target bmz-test

 。 79%] Built target bmzip

  [ 80%] Built target compressor_test

 。 80%] Built target generate_test_data

  [ 80%] Built target loadDataSourceTest

 。 81%] Built target locationCacheTest

 。 81%] Built target schemaTest

 。 85%] Built target dfsTest

 。 88%] Built target dfsclient

 。 94%] Built target hyperspace

 。 94%] Built target hyperspaceTest

 。 95%] Built target hypertable

  [ 95%] Built target hypertable_test

 。 96%] Built target dumplog

  [ 96%] Built target merge_diff

 。 97%] Built target rsTest

 。 98%] Built target rsclient

 。 99%] Built target rsdump

 。 99%] Built target serverup

  [100%] Built target localBroker

  安裝指令如下:

  $ make install DESTDIR=“~/hypertable”

  由于安裝過程較為繁雜,所以省略了其中一些步驟之后說明如下:

  編譯過程省略。。

 。 6%] Built target HyperComm

  。。.

  。。.

 。100%] Built target localBroker

  連結(jié)程式過程。。

  Linking CXX executable CMakeFiles/CMakeRelink.dir/Hyperspace.Master

  Linking CXX executable CMakeFiles/CMakeRelink.dir/Hypertable.Master

  Linking CXX executable CMakeFiles/CMakeRelink.dir/htgc

  Linking CXX executable CMakeFiles/CMakeRelink.dir/Hypertable.RangeServer

  Linking CXX executable CMakeFiles/CMakeRelink.dir/count_stored

  Linking CXX executable CMakeFiles/CMakeRelink.dir/csdump

  Linking CXX executable CMakeFiles/CMakeRelink.dir/generate_test_data

  Linking CXX executable CMakeFiles/CMakeRelink.dir/dfsclient

  Linking CXX executable CMakeFiles/CMakeRelink.dir/hyperspace

  Linking CXX executable CMakeFiles/CMakeRelink.dir/hypertable

  Linking CXX executable CMakeFiles/CMakeRelink.dir/dumplog

  Linking CXX executable CMakeFiles/CMakeRelink.dir/merge_diff

  Linking CXX executable CMakeFiles/CMakeRelink.dir/rsclient

  Linking CXX executable CMakeFiles/CMakeRelink.dir/rsdump

  Linking CXX executable CMakeFiles/CMakeRelink.dir/serverup

  Linking CXX executable CmakeFiles/CMakeRelink.dir/localBroker

  安裝程式過程,部份內(nèi)容省略未列出,僅列出整理排列后之內(nèi)容。。

  Install the project.。。

  -- Install configuration: “Debug”

  安裝設(shè)定檔。。

  -- Installing ~/hypertable/0.9.0.5/conf/hypertable.cfg

  -- Installing ~/hypertable/0.9.0.5/conf/METADATA.xml

  安裝引用檔案及應(yīng)用范例程式及測(cè)試資料庫內(nèi)容(省略)。。

  安裝Java及C/C++程式庫。。

  -- Installing ~/hypertable/0.9.0.5/java/lib/commons-logging-1.0.4.jar

  -- Installing ~/hypertable/0.9.0.5/java/lib/Hadoop-0.14.4-core.jar

  -- Installing ~/hypertable/0.9.0.5/java/lib/junit-4.3.1.jar

  -- Installing ~/hypertable/0.9.0.5/java/lib/log4j-1.2.13.jar

  -- Installing ~/hypertable/0.9.0.5/java/lib/hypertable-0.9.0.jar

  -- Installing ~/hypertable/0.9.0.5/lib/libHyperComm.a

  -- Installing ~/hypertable/0.9.0.5/lib/libHyperCommon.a

  -- Installing ~/hypertable/0.9.0.5/lib/libHyperspace.a

  -- Installing ~/hypertable/0.9.0.5/lib/libHypertable.a

  -- Installing ~/hypertable/0.9.0.5/lib/libHyperDfsBroker.a

  安裝可執(zhí)行程式。。

  -- Installing ~/hypertable/0.9.0.5/bin/jrun

  -- Installing ~/hypertable/0.9.0.5/bin/start-all-servers.sh

  -- Installing ~/hypertable/0.9.0.5/bin/start-master.sh

  -- Installing ~/hypertable/0.9.0.5/bin/start-range-server.sh

  -- Installing ~/hypertable/0.9.0.5/bin/kill-servers.sh

  -- Installing ~/hypertable/0.9.0.5/bin/slaves.sh

  -- Installing ~/hypertable/0.9.0.5/bin/Hyperspace.Master

  -- Installing ~/hypertable/0.9.0.5/bin/Hypertable.Master

  -- Installing ~/hypertable/0.9.0.5/bin/htgc

  -- Installing ~/hypertable/0.9.0.5/bin/Hypertable.RangeServer

  -- Installing ~/hypertable/0.9.0.5/bin/csdump

  -- Installing ~/hypertable/0.9.0.5/bin/count_stored

  -- Installing ~/hypertable/0.9.0.5/bin/generate_test_data

  -- Installing ~/hypertable/0.9.0.5/bin/dfsclient

  -- Installing ~/hypertable/0.9.0.5/bin/hyperspace

  -- Installing ~/hypertable/0.9.0.5/bin/hypertable

  -- Installing ~/hypertable/0.9.0.5/bin/dumplog

  -- Installing ~/hypertable/0.9.0.5/bin/merge_diff

  -- Installing ~/hypertable/0.9.0.5/bin/rsclient

  -- Installing ~/hypertable/0.9.0.5/bin/rsdump

  -- Installing ~/hypertable/0.9.0.5/bin/serverup

  -- Installing ~/hypertable/0.9.0.5/bin/localBroker

  【由原始程式碼建立程式說明文件】

  要由原始程式碼產(chǎn)生文件資料,需要再額外安裝2個(gè)套件,分別為Doxygen及Graphviz,第1個(gè)套件是產(chǎn)生類別,屬性及函式功能說明文件之文件產(chǎn)生器程式庫,可協(xié)助程式設(shè)計(jì)者將特定格式之註解里的說明文件導(dǎo)出,產(chǎn)生說明文件,目前Doxygen支援的程式語言包含C++/C/Java/Object-C/Python/IDL/Fortran/VHDL/PHP/C#等程式語言;另一個(gè)套件Graphviz可以將指定格式的結(jié)構(gòu)化資訊,轉(zhuǎn)換為抽象圖形或網(wǎng)路圖形,在Doxygen套件里的圖形處理,是引用這個(gè)套件來產(chǎn)生類別階層圖。

  產(chǎn)生說明文件的方式,只要將目錄切換到組態(tài)設(shè)定檔路徑,然后執(zhí)行Make指令后可以自動(dòng)產(chǎn)生文件:

  $ cd ~/build/hypertable

  $ make doc

  文件產(chǎn)生后放置路徑為~/build/hypertable/doc ,文件首頁放置路徑為:

  $ ~/build/hypertable/doc/html/index.html

  【執(zhí)行迴歸測(cè)試】

  執(zhí)行程式部署完成之后,還需要再進(jìn)一步設(shè)定Hypertable掛載的磁碟分割區(qū),開啟檔案的延伸屬性功能,然后重新啟動(dòng)Hypertable之后才算完成安裝步驟。當(dāng)Hypertable使用的磁碟磁區(qū)是本機(jī)硬碟空間,并且作業(yè)系統(tǒng)為Windows/Linux/Unix,才會(huì)需要特別再修改/etc/fstab設(shè)定檔,增加user_xattr屬性;若是作業(yè)系統(tǒng)為Mac OS或是使用Hadoop File System(HDFS)/Kosmos File System(KFS),則會(huì)內(nèi)建有延伸屬性功能,不用再去修改檔案系統(tǒng)。

  修改/etc/fstab前的內(nèi)容范本:

  $ /dev/sda1 ext3 defaults,errors=remount-ro 0 1

  修改/etc/fstab后的內(nèi)容范本:

  $ /dev/sda1 ext3 defaults,user_xattr,errors=remount-ro 0 1

  不用關(guān)機(jī)并重新掛載磁碟空間的方法:

  $ sudo mount -o remount /home

  重新啟動(dòng)Hypertable方式是先關(guān)閉所有的伺服器,然后再開啟,指令如下:

  切換到執(zhí)行檔案路徑

  $ cd ~/hypertable/0.9.0.5/bin

  關(guān)閉Server

  $ 。/kill-servers.sh

  使用本機(jī)端磁碟空間的開啟方式

  $ 。/start-all-servers.sh local

  啟動(dòng)所有伺服器的指令格式如下:

  Usage: start-test-servers.sh [local|hadoop|kosmos]

  運(yùn)行迴歸測(cè)試之指令及結(jié)果如下:

  $ make test

  Running tests.。。

  Start processing tests

  Test project /home/sunny/build/hypertable

  1/ 17 Testing HyperComm Passed

  2/ 17 Testing HyperComm-datagram Passed

  3/ 17 Testing HyperComm-timeout Passed

  4/ 17 Testing HyperComm-timer Passed

  5/ 17 Testing HyperComm-reverse-request Passed

  6/ 17 Testing Schema Passed

  7/ 17 Testing LocationCache Passed

  8/ 17 Testing LoadDataSource Passed

  9/ 17 Testing BlockCompressor-BMZ Passed

  10/ 17 Testing BlockCompressor-LZO Passed

  11/ 17 Testing BlockCompressor-NONE Passed

  12/ 17 Testing BlockCompressor-QUICKLZ Passed

  13/ 17 Testing BlockCompressor-ZLIB Passed

  14/ 17 Testing HyperDfsBroker Passed

  15/ 17 Testing Hyperspace Passed

  16/ 17 Testing hypertable Passed

  17/ 17 Testing RangeServer Passed

  100% tests passed, 0 tests failed out of 17

  【組態(tài)設(shè)定說明】

  系統(tǒng)組態(tài)預(yù)設(shè)的存放位置為安裝路徑的conf目錄底下:

  ~/hypertable/0.9.0.5/conf/hypertable.cfg

  這個(gè)組態(tài)檔可提供使用者設(shè)定3種檔案系統(tǒng)的橋接程式 (DfsBroker?)之位址與通訊埠等等資訊,以及Hyperspace與Hypertable的Master伺服器資訊,和Hypertable的Range Server資訊,換言之,這些可設(shè)定的伺服器位址可以不限定在同一臺(tái)機(jī)器上,它們可以各別存在于不同臺(tái)機(jī)器上運(yùn)作,除了Hyperspace與Hypertable的Master伺服器同一時(shí)間只允許互動(dòng)運(yùn)作一個(gè)執(zhí)行個(gè)體之外,Range Server與DfsBroker是可以多個(gè)執(zhí)行個(gè)體同時(shí)互動(dòng)執(zhí)行的,所以啟動(dòng)Hypertable服務(wù)的機(jī)器,都會(huì)先確認(rèn)過DfsBroker是否運(yùn)作正常,Hyperspace與Hypertable的Master是否啟動(dòng)成功,然后再啟動(dòng)本機(jī)的Range Server;單機(jī)版的Hypertable會(huì)同時(shí)啟動(dòng)Hyperspace+Master+Range Server+Local DfsBroker?在同一臺(tái)機(jī)器上,多機(jī)版的Hypertable則可以把這4種服務(wù)分散在不同臺(tái)機(jī)器上。

  預(yù)設(shè)的設(shè)定檔內(nèi)容如下:

  #

  # hypertable.cfg

  #

  # Global properties

  # Hypertable的等待連線時(shí)間

  Hypertable.Request.Timeout=180

  # HDFS Broker服務(wù)的相關(guān)設(shè)定

  HdfsBroker.Port=38030

  HdfsBroker.fs.default.name=hdfs://localhost:9000

  HdfsBroker.Workers=20

  # Local DFS Broker 服務(wù)的相關(guān)設(shè)定

  DfsBroker.Local.Port=38030

  DfsBroker.Local.Root=fs/local

  # DFS Broker 給用戶端的相關(guān)設(shè)定

  DfsBroker.Host=localhost

  DfsBroker.Port=38030

  # Hyperspace 的相關(guān)設(shè)定

  Hyperspace.Master.Host=localhost

  Hyperspace.Master.Port=38040

  Hyperspace.Master.Dir=hyperspace

  Hyperspace.Master.Workers=20

  # Hypertable.Master 的相關(guān)設(shè)定

  Hypertable.Master.Host=localhost

  Hypertable.Master.Port=38050

  Hypertable.Master.Workers=20

  # Hypertable.RangeServer 的相關(guān)設(shè)定

  Hypertable.RangeServer.Port=38060

  上面就是Ubuntu安裝HyperTable的方法介紹了,從編譯安裝到組態(tài)設(shè)定說明都做了詳細(xì)的介紹,解決你的安裝難題。

發(fā)表評(píng)論

0

沒有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見解

立即評(píng)論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄