hypertable-0.9.2.2-alpha 安装

 

By云深作者:Schubert/Terry  2009年3月

转载请注明出处


本文讲述hypertable-0.9.2.2-alpha安装方法。 
主要的指导文档要参考HypertableWiki文档:http://code.google.com/p/hypertable/wiki/ HowToInstall 

 

1. cmake: 
   
参考cmake网站 http://www.cmake.org/安装到缺省目录,在/usr/local下面,到/usr/local/bin下面看看是否有cmake的相关命令。 
   ./bootstrap 
   make 
   make install 


2. BerkeleyDB.4.7: 
   http://www.oracle.com/technology/software/products/berkeley-db/index....
db-4.7.25.tar.gz 
   
虽然系统一般已经有安装4.3BDB,但互相不影响,不必卸掉db4-4.3....,因为Hypertable只用到一些API(实际上 
4.3
的在Hypertable0.9.2.2时也能用,所以下面的安装过程以前可以不做。
    cd build_unix 
    ../dist/configure --enable-cxx --enable-java #(java is optional 
here, but enable it for later usage) 
    make 
    make install 
略看一下READMEINSTALL文档安装更好,缺省在/usr/local/BerkeleyDB.4.7 下面,文档在docs/ 
index.html
里面 
   echo "/usr/local/BerkeleyDB.4.7/lib" > /etc/ld.so.conf.d/ 
BerkeleyDB.conf 
   ldconfig 
   
这样相关lib就可以在后面的安装过程中生效了。 


3. boost: 
   
http://www.boost.orgboost_1_35_0.tar.gz 
   
按照boost网站上 Getting Started Guide 的安装步骤安装之。以后要好好学习boost了,好多东西:-) 
   ./configure 
   make 
   make install 
   
这个版本的Boost安装在/usr/local下面,库都在/usr/local/lib下面 
   
既然安装了这个新版本,如果原来系统中有boost1.33等老版本,可以rpm -e掉他们。 
   rpm -e boost-devel-1.33.1-10.el5.x86_64  #(only for 64bit system) 
   rpm -e boost-devel-1.33.1-10.el5 
   rpm -e boost-1.33.1-10.el5.x86_64  #(only for 64bit system) 
   rpm -e boost-1.33.1-10.el5 
   rpm -qa|grep boost 

  @@这么多库东东安装在/usr/local/lib下面,那就echo "/usr/local/lib" > /etc/ 
ld.so.conf.d/usr_local_lib.conf
,并ldconfig以便以后其他程序能找到这些共享库。 


4. log4cpp: 
   
 http://log4cpp.sourceforge.net/ 下载log4cpp-1.0.tar.gz,按照网站说明安装之。 
   
缺省安装在/usr/local下面。到/usr/local/lib下面看看安装的库文件。 
    ./configure 
   make 
   make install 
   log4cpp
lib文件也安装在/usr/local/lib下,前面安装boost时已经生成了 /etc/ld.so.conf.d/ 
usr_local_lib.conf
,所以只需 ldconfig 就可以了。 


5. expat, readline, ncurses 
 
一般系统都安装好了expat, readlinencurses,所以用rpm检查无误就可以了。 


6. tcmalloc (Optional) 
   
虽然是Optional,但据说这东西对内存分配的性能有巨大提升,那就安装之吧。 
   
http://code.google.com/p/google-perftools/ 下载google- 
perftools-0.98.tar.gz
并好好学习一下下感觉说的好强的。 
   
但如果你是x86_64的主机,就要先安装另外一个东东libunwind 先到http://www.nongnu.org/ 
libunwind/
下载 libunwind-0.98.6.tar.gz 
   
这个libunwind是帮助跟踪call-chain of a program 
   
编译libunwind有点参数注意了: 
    CFLAGS=-fPIC ./configure 
    make CFLAGS=-fPIC 
    make CFLAGS=-fPIC install 
    ldconfig 
    -------------------------- 
   
再编译安装google-perftools-0.98。步骤无非是configure/make/make install 
   
这个东东也被缺省安装在/usr/local/lib下面,那就再ldconfig一下吧,前面我们已经创建号/etc/ 
ld.so.conf.d/usr_local_lib.conf
了,这里只需 ldconfig 


添加依赖库:hyperic-sigar-1.6.0.tar.gz

wget http://internap.dl.sourceforge.net/sourceforge/sigar/hyperic-sigar-1.6.0.tar.gz

tar -xzvf hyperic-sigar-1.6.0.tar.gz

cp hyperic-sigar-1.6.0/sigar-bin/include/*.h /usr/local/include

x86 32bit

            cp hyperic-sigar-1.6.0/sigar-bin/lib/libsigar-x86-linux.so /usr/local/lib/  

x86_64 

           cp hyperic-sigar-1.6.0/sigar-bin/lib/libsigar-amd64-linux.so /usr/local/lib/

ldconfig


7. hypertable 
   
前面搞了半天这才进入主题,可见hypertable的作者老人家还是很会利用新的"高科技"的。咱们要学习啊。记得KFS也是如此,不过也很 
不爽,这么多依赖关系,使用和学习起来很是烦啊。 
   
这两天Google CodeHypertable Project Wiki中关于安装的文档更新了,大家要注意喽,不过也没有什么很大的 
差别,以后有更新要以更新为准。 
   
先到http://code.google.com/p/hypertable/ 下载hypertable-x.x.x.x-alpha- 
src.tar.gz
 
   
编译安装过程是: 
    (1)
找个地方创建你的安装目录,如我在/home/schunert/test/hypertable,缺省人家是要安装到/opt/ 
hypertable
的,记得后面cmake的时候要修改一下。 
    (2)
找个地方创建你的build目录,如我在/home/schubert/test/src/hypertable-0.9.0.6- 
alpha/build
,然后进去这个目录 
    (3)
然后 cmake <your_source_dir>,如我只需cmake .. 
         
建议还是仔细看看cmake输出的东东,行数不多,大多是关联模块的执行文件或库文件的位置,特别注意库文件的位置是否正确。特别注 
boostBerkeleyDB. 一般他找到的东西都对,但我们有两个版本的BerkeleyDB,他有时找到老的,所以我们需在下一步改之。 
    (4)  
ccmake修改编译配置文件,运行ccmake <your_source_dir>。在显示的界面里面键入t,根据提示修改相 
关配置变量内容,特别注意,如果不对就修改之
          BDB_INCLUDE_DIR  /usr/local/BerkeleyDB.4.7/include 
          BDB_LIBRARY   /usr/local/BerkeleyDB.4.7/lib/libdb_cxx.so 
          CMAKE_INSTALL_PREFIX   /home/schubert/test/hypertable 
         
修改好后键入c然后g保存就行了。其实这些参数的设置都在build目录下的CMakeCache.txt文件中啦,进去看看吧。 
    (5)
然后make/make install就可以了。不过时间有点长哦,如果你用的是多核心CPU,那么就make -j 
number_of_cpu_or_cores_plus_1(
比如我的四核CPU make -j 5),速度会快很多哦。去喝杯咖啡吧。 

   安装完成了,单机localFS运行试试看: 
    cd /home/schubert/test/hypertable/0.9.0.6 
    bin/start-all-servers.sh local 
   
一定能起来吧。 
    Successfully started DFSBroker (local) 
    Successfully started Hyperspace 
    Successfully started Hypertable.Master 
    Successfully started Hypertable.RangeServer 
    ps aux
你会看到四个进程,各自就是上面的对应。 


也可以按照如下步骤编译:

  假定编译环境如下:

  CMAKE_INSTALL_PREFIX="/opt/hypertable_test/exec/hypertable" 

  CMAKE_BUILD_TYPE="Release" 

  Boost_INCLUDE_DIR="/usr/local/include/boost-1_35" 

  BDB_INCLUDE_DIR="/usr/local/BerkeleyDB.4.7/include"

  BDB_LIBRARY="/usr/local/BerkeleyDB.4.7/lib/libdb_cxx.so"        

  

  HYPERTABLE_SRC =    "/opt/hypertable/src/hypertable-0.9.2.2-alpha"

  BUILD_DIR = "/opt/hypertable/build/hypertable-0.9.2.2-alpha"

  

 1)将源文件加压到{HYPERTABLE_SRC }  

 2)进入build目录,

 3)执行 cmake -DCMAKE_INSTALL_PREFIX={CMAKE_INSTALL_PREFIX}

-DCMAKE_BUILD_TYPE="Release" 

-DBoost_INCLUDE_DIR={Boost_INCLUDE_DIR} 

-DBDB_INCLUDE_DIR={BDB_INCLUDE_DIR}

-DBDB_LIBRARY={BDB_LIBRARY}

 

 根据实际情况替换相关参数,cmake语句不换行。


4makemake installhypertable就安装到{CMAKE_INSTALL_PREFIX}/hypertable/0.9.2.2

进入{CMAKE_INSTALL_PREFIX}/hypertable/0.9.2.2,执行bin/start-all-servers.sh local,单机启动

build目录,执行make test进行单元测试。

结果如下:

[root@demo-LVS1 build]# make test

Running tests...

Start processing tests

Test project /opt/hypertable_test/build

  1/ 46 Testing Common-Exception                 Passed

  2/ 46 Testing Common-Logging                   Passed

  3/ 46 Testing Common-Serialization             Passed

  4/ 46 Testing Common-ScopeGuard                Passed

  5/ 46 Testing Common-InetAddr                  Passed

  6/ 46 Testing Common-PageArena                 Passed

  7/ 46 Testing Common-Properties                Passed

  8/ 46 Testing Common-BloomFilter               Passed

  9/ 46 Testing Common-Hash                      Passed

 10/ 46 Testing HyperComm                        Passed

 11/ 46 Testing HyperComm-datagram               Passed

 12/ 46 Testing HyperComm-timeout                Passed

 13/ 46 Testing HyperComm-timer                  Passed

 14/ 46 Testing HyperComm-reverse-request        Passed

 15/ 46 Testing BerkeleyDbFilesystem             Passed

 16/ 46 Testing FileBlockCache                   Passed

 17/ 46 Testing CellStoreScanner                 Passed

 18/ 46 Testing Schema                           Passed

 19/ 46 Testing LocationCache                    Passed

 20/ 46 Testing LoadDataSource                   Passed

 21/ 46 Testing LoadDataEscape                   Passed

 22/ 46 Testing BlockCompressor-BMZ              Passed

 23/ 46 Testing BlockCompressor-LZO              Passed

 24/ 46 Testing BlockCompressor-NONE             Passed

 25/ 46 Testing BlockCompressor-QUICKLZ          Passed

 26/ 46 Testing BlockCompressor-ZLIB             Passed

 27/ 46 Testing CommitLog                        Passed

 28/ 46 Testing MetaLog-RangeServer              Passed

 29/ 46 Testing Client-large-block               Passed

 30/ 46 Testing HyperDfsBroker                   Passed

 31/ 46 Testing Hyperspace                       Passed

 32/ 46 Testing Hypertable-shell                 Passed

 33/ 46 Testing RangeServer                      Passed

 34/ 46 Testing Client-random-write-read         Passed

 35/ 46 Testing RangeServer-commit-log-gc        Passed

 36/ 46 Testing RangeServer-load-exception    ***Failed 

 37/ 46 Testing RangeServer-maintenance-thread***Failed 

 38/ 46 Testing RangeServer-row-overflow         Passed

 39/ 46 Testing RangeServer-split-recovery-1  ***Failed 

 40/ 46 Testing RangeServer-split-recovery-2  ***Failed 

 41/ 46 Testing RangeServer-split-recovery-3  ***Failed 

 42/ 46 Testing RangeServer-split-recovery-4  ***Failed 

 43/ 46 Testing RangeServer-split-recovery-5  ***Failed 

 44/ 46 Testing RangeServer-split-recovery-6     Passed

 45/ 46 Testing RangeServer-bloomfilter-rows     Passed

 46/ 46 Testing RangeServer-bloomfilter-rows-c   Passed

 

85% tests passed, 7 tests failed out of 46

 

The following tests FAILED:

         36 - RangeServer-load-exception (Failed)

         37 - RangeServer-maintenance-threads (Failed)

         39 - RangeServer-split-recovery-1 (Failed)

         40 - RangeServer-split-recovery-2 (Failed)

         41 - RangeServer-split-recovery-3 (Failed)

         42 - RangeServer-split-recovery-4 (Failed)

         43 - RangeServer-split-recovery-5 (Failed)

Errors while running CTest

make: *** [test] Error 8

 

由于没有完整安装,或环境因素影响,有关测试为failed


8. hypertable on Hadoop 
   
参考Wiki: http://code.google.com/p/hypertable/wiki/UpAndRunningWithHadoop 
    Hadoop
的安装很简单,就不提了。

 

以上供参考,以hypertable官方网站为准。

 

ubuntu上安装hypertable的较详细的说明文档:

如何安裝Hypertable》地址:http://trac.nchc.org.tw/cloud/wiki/HyperTable/HowToInstall

台湾同行写的,写的很仔细,佩服!

 

 

你可能感兴趣的:(文档,processing,Build,include,library,testing)