参考资料:
http://code.google.com/p/hypertable/wiki/HowToBuild#Building,_Installing,_and_Running_Tests
安装平台:fedora 10
安装依赖包:
1)yum install git gcc-c++ make cmake python-devel bzip2-devel zlib-devel expat-devel rrdtool rrdtool-devel
2)wget http://downloads.sourceforge.net/boost/boost_1_40_0.tar.bz2
bzip2 -d boost_1_40_0.tar.bz2
tar xvf boost_1_40_0.tar
cd boost_1_40_0
./bootstrap.sh --with-libraries=filesystem,iostreams,program_options,system,thread,graph,regex
./bjam install
或者
./bjam -a "-sTOOLS=gcc" "--includedir=/usr/include" "--libdir=/usr/lib/boost" "--build-type=complete" threading=multi "--layout=tagged" install
注意"--build-type=complete"
//注意bootstrap.sh执行的参数或bjam参数否则后面编译会出现无法找到libiostream-mt.so之类类库等情况
3)安装log4cpp
wget http://dag.wieers.com/rpm/packages/log4cpp/log4cpp-1.0-1.el5.rf.i386.rpm
rpm -i log4cpp-1.0-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/log4cpp/log4cpp-devel-1.0-1.el5.rf.i386.rpm
rpm -i log4cpp-devel-1.0-1.el5.rf.i386.rpm
4)BerkeleyDB
cd build_unix
../dist/configure --enable-cxx --enable-java #(java is optional
here, but enable it for later usage)
make
make install
注意--enable-cxx参数,否则后面对hypertable make时也会出错
5) 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有点参数注意了:
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
4)yum install cronolog google-perftools-devel libevent-devel readline-devel ncurses-devel db4-devel
wget http://hypertable.org/pub/re2.tgz
tar -zxvf re2.tgz
cd re2
make
make test
make install
make testinstall
5)wget http://www.hypertable.org/pub/hyperic-sigar-1.6.3.tar.gz
tar -xzvf hyperic-sigar-1.6.3.tar.gz
cp hyperic-sigar-1.6.3/sigar-bin/include/*.h /usr/local/include
cp hyperic-sigar-1.6.3/sigar-bin/lib/libsigar-x86-linux.so /usr/local/lib/
sh -c "echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf"
/sbin/ldconfig
开始编译安装
1修改cmakelist中关于kfs库和头文件的信息(非必需,如果已经安装了kfs可以修改)
2编译安装过程是:
(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输出的东东,行数不多,大多是关联模块的执行文件或库文件的位置,特别注意库文件的位置是否正确。特别注
意boost和BerkeleyDB. 一般他找到的东西都对,但我们有两个版本的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就可以了。
3)安装后启动kfs
将KFS作为底层的文件系统,目前hypertable最新版本已经支持
1) 修改conf/hypertable.cfg文件
加入以下内容
#kfs meta server
Kfs.MetaServer.Name=10.60.1.125
Kfs.MetaServer.Port=20000
Kfs.Broker.Workers=20
2) 启动kfs的metaserver chunkserver
3) ./bin/start-all-servers.sh kfs
另外hypertable 使用了开源的集群管理工具capistrano 使用前提是各个机器间建立ssh信任关系,我是直接使用脚本来启动server,bin/目录下的脚本还是很有用的
Bin目录下的脚本说明:
1) start-all-server.sh 启动所有的有关server 包括DfsBroker hyperspace Hypertable.MasterHypertable.RangeServer 使用这个脚本的话,所有的server同时在一台机器上启动
2) start-dfsbroker.sh 启动文件系统,参数:kfs | hdfs | local
3) start-hyperspace.sh 启动hyperspace
4) start-master.sh 启动Hypertable.Master
5) start-rangeserver.sh 启动Hypertable.Rangeserver
6) stop-servers.sh 停止服务脚本
7) ./ht shell 进入hypertable命令行界面 与./hypertable命令相同
如果是运行在集群下的话,
在master上启动start-dfsborker.sh start-hyperspace.sh start.master.sh三个脚本
在slave机器上启动start-dfsborker.sh start-rangeserver.sh 两个脚本