1准备一台Linux CentOS 6.x的开发机 (x≥5)。
2通过yum安装需要的工具和第三方软件。
【例2.1】通过yum安装工具和第三方软件
(可能需要一段时间)
sudo yum install alsa-lib-devel ant ant-nodeps boost-devel cmake\ device-mapper-multipath dhcp flex gcc-c++ gd git glibc-devel\ graphviz-perl gzip java-1.7.0-openjdk-devel\ libX11-devel libXau-devel libaio-devel\ libcurl-devel libibumad-devel \ libiodbc libiodbc-devel librdmacm-devel \ libxml2-devel lua-devel lzo-minilzo \ openldap-clients openldap-devel \ openmotif openssl-devel \ openssl-static perl-Config-IniFiles perl-Config-Tiny \ perl-DBD-SQLite perl-Expect perl-IO-Tty perl-Math-Calc-Units \ perl-Params-Validate perl-Parse-RecDescent perl-TermReadKey \ perl-Time-HiRes protobuf-compiler protobuf-devel \ readline-devel saslwrapper sqlite-devel \ unixODBC unixODBC-devel uuid-perl wget xerces-c-devel xinetd git |
3下载代码。
新建一个$YOUR_WORK_DIR工作目录,您将在这里下载代码,并进行后续编译。
【例3.1】在$YOUR_WORK_DIR中下载代码
(可能需要一段时间)
cd $YOUR_WORK_DIR git clone git://git.apache.org/incubator-trafodion.git |
4安装那些无法通过yum安装的第三方软件。
编译Trafodion需要依赖一些无法通过yum安装的第三方软件,包括以下:
Bison, ICU, LLVM, Log4cxx, Maven,MPICH, Thrift, Udis86和 Zookeeper。
在Trafodion的源代码中,traf_tools_setup.sh脚本能帮助您下载和安装这些第三方软件。traf_tools_setup.sh脚本将自动从互联网上下载以上第三方软件的源码包,然后自动编译。
此时,需要新建两个辅助目录:
(1)一个存放下载的源代码并进行编译;
(2)另一个作为这些第三方软件的安装目录。
例如,用~/download目录存放下载的源码,用~/tools作为安装目录,设置TOOLSDIR,并修改.bashrc。
【例4.1】新建辅助目录并修改.bashrc
mkdir ~/tools mkdir ~/download echo “export TOOLSDIR=~/tools” >> ~/.bashrc . ~/.bashrc |
运行traf_tools_setup.sh脚本,这些依赖的第三方软件将自动被安装。
【例4.2】运行traf_tools_setup.sh脚本
(可能需要很长时间)
cd $YOUR_WORK_DIR cdincubator-trafodion ./install/traf_tools_setup.sh -d ~/download -i ~/tools |
traf_tools_setup.sh脚本需要在互联网上下载软件包,对于中国国内开发者,因为网络的原因,可能需要耐心多试几次。
修改Maven设置:
PATH=$PATH:$TOOLSDIR/apache-maven-3.3.3/bin
echo -en "PATH=\$PATH:\$TOOLSDIR/apache-maven-3.3.3/bin\n">> $HOME/.bashrc
5编译源代码。
编译源代码,命令如下:
【例5.1】编译源代码命令
(可能需要很长时间)
cd $YOUR_WORK_DIR/incubator-trafodion source ./env.sh
rm -rf ~/.ssh ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/id_rsa.pub echo "NoHostAuthenticationForLocalhost=yes" >>~/.ssh/config chmod go-w ~/.ssh/config chmod 755 ~/.ssh; chmod 640 ~/.ssh/authorized_keys; cds ./install_local_hadoop –p rand
make all |
以上编译过程中的install_local_hadoop是为了简化开发而编译的,该脚本自动安装一个单机hadoop/hbase实例并启动。
在运行该脚本前,需要配置ssh无密码访问。
因此,Trafodion被编译完后能直接在本机启动,运行Trafodion需要hadoop/hbase环境。
若仅需编译Trafodion,则无需运行install_local_hadoop,但必须单独安装Trafodion。下一篇文章将介绍如何安装Trafodion。
由于maven需要下载大量jar包,国内开发者在编译时可能会因网络问题而频繁出错,需要耐心,或使用一个较好的maven镜像,例如OSChina镜像。
【例5.2】修改~/.m2/settings.xml
<settings xmlns=http://maven.apache.org/SETTINGS/1.1.0 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"> <mirrors> <mirror> <id>CN</id> <name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings> |
6修改ulimit,并启动Trafodion实例。
启动Trafodion需要修改ulimit,Trafodion的安装程序会自动配置。开发环境下必须手动修改,而且需要root权限。拷贝以下内容至/etc/security/limits.conf文件中,将liuliumi替换成您的Linux用户名。
【例6.1】拷贝以下内容至/etc/security/limits.conf中
# Added for Trafodion: Max locked-in memory size liuliumi soft memlock 49595556 liuliumi hard memlock 99191112 # # Added for Trafodion: Increase maximum number of file opens since Trafodion needs many liuliumi soft nofile 32768 liuliumi hard nofile 32768 # # Added for Trafodion: Increase maximum number of pending signals liuliumi soft sigpending 515196 liuliumi hard sigpending 515196 # # Added for Trafodion: Increase maximum number of proceses liuliumi soft nproc 267263 liuliumi hard nproc 267263 |
启动Trafodion。
启动Trafodion前必须退出当前shell,重新启动一个新的shell。
【例6.2】启动Trafodion
cd $YOUR_WORK_DIR/incubator-trafodion source ./env.sh swstarthbase #有时hbase在上一步没有能够启动,这里再启动一次 cds sqgen sqstart |
如果启动失败,则需确保hostname已经加在/etc/hosts中,或确保您的系统有正确的DNS配置,可以通过机器名获取正确的IP地址。
如果出现 'orphanprocesses' 等问题,使用ckillall命令终止一些遗留进程,这些进程可能是上次启动失败遗留下的。
Trafodion提供了一个名为sqlci的命令行SQL客户端用以运行SQL,现在可以启动sqlci。
【例6.3】启动sqlci
sqlci >initialize trafodion; |
现在可以正常使用Trafodion了。
愿一切顺利,祝你好运!
刘明
http://blog.itpub.net/30206145/