Trafodion 开发环境搭建
来源:互联网 发布:互联网过滤软件 编辑:程序博客网 时间:2024/04/30 23:54
Trafodion是Apache下面的开源孵化项目,既然是开源,任何人都可以修改并提交你的代码,Trafodion欢迎大家通过各种方式为开源社区贡献一份力量,最直接的方式当然是提交你的代码。
要想将自己的代码提交到开源Trafodion社区,首先得准备一套自己的开发环境,有了自己的开发环境,就可以在下载下来的Trafodion源码基础上修改、编译并测试,本篇幅通过详细步骤描述如何搭建Trafodion的开发环境,希望对有志于贡献Trafodion的各位提供一点帮助,如有错误,还请指正!
1 首先需要准备一台自己的开发机器,推荐操作系统版本为CentOS 6.5~6.7(注:以下步骤的执行均建议使用root用户),操作系统版本可通过以下命令查看
[root@cent-1 ~]# cat /etc/centos-release CentOS release 6.8 (Final)
2 操作系统基本配置,包括修改ulimit、关闭iptables、关闭selinux、安装ntp、修改/etc/hosts、配置本机ssh免密码、安装JDK(推荐oracle jdk1.7),因为Trafodion是基于Hadoop,这些配置均是Hadoop及Trafodion运行的前提条件,主要命令如下
//关闭iptablesservice iptables stopchkconfig iptables off//安装并启动ntpyum install -y ntpservice ntpd startchkconfig ntpd on//关闭selinuxsetenforce 0sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config//安装oracle jdk1.7,需提前准备好rpm包,若Linux自带jdk可忽略此步骤rpm -ivh oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm//编辑/etc/hostsecho "192.168.0.16 cent-1 cent-1.novalocal" >>/etc/hosts//修改ulimitecho "# Added for Trafodion: Max locked-in memory sizeroot soft memlock 49595556root hard memlock 99191112# Added for Trafodion: Increase maximum number of file opens since Trafodion needs manyroot soft nofile 32768root hard nofile 32768# Added for Trafodion: Increase maximum number of pending signalsroot soft sigpending 515196root hard sigpending 515196# Added for Trafodion: Increase maximum number of procesesroot soft nproc 267263root hard nproc 267263" >>/etc/security/limits.conf
3 yum安装开发环境需要的一些工具和第三方包
yum install -y 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 apr apr-util apr-devel apr-util-devel unzip
4 下载Trafodion源码,提前创建好自己的工作目录,将源码下载至工作目录下,这里假设目录为~/my_workspace
mkdir ~/my_workspacecd ~/my_workspacegit clone https://github.com/apache/incubator-trafodion.git
5 安装那些无法通过yum安装的第三方软件,这些第三方软件是Trafodion编译时需要依赖的,这些工具可以通过Trafodion源码中traf_tools_setup.sh脚本下载然后自动编译。因此需要我们提交创建两个辅助目录:一个用来存放下载的源代码并编译;另一个用来安装这些软件,作为这些软件的安装目录,需要注意:必须将安装目录设置给TOOLSDIR这个环境变量,Trafodion编译时需要通过这个TOOLSDIR环境变量来找到这些依赖的第三方软件。我们这里使用~/download目录存放下载的源码,用~/tools作为安装目录
//以下步骤创建辅助目录并添加TOOLSDIR环境变量mkdir ~/toolsmkdir ~/downloadecho export TOOLSDIR=~/tools >> ~/.bashrc. ~/.bashrc//以下步骤执行traf_tools_setup.sh脚本并安装依赖的第三方软件,此步骤需要通过网络下载软件包,可能会由于网络原因中断,建议多次几次,或者配置代理下载cd ~/my_workspace/incubator-trafodion./install/traf_tools_setup.sh -d ~/download -i ~/tools
6 上述步骤执行完成后会下载以下列表软件并安装,包括maven(用于代码编译),为方便后续编译步骤,此处我们需要将maven的可执行文件路径加入到PATH环境变量中,一般也可以通过修改.bashrc来完成,加入完成后可以通过直接”mvn -v”命令检查是否添加成功
//下载软件列表apache-log4cxx-0.10.0apache-maven-3.3.3bison_3_linuxdest-llvm-3.2dest-mpich-3.0.4hadoop-2.6.0icu4c_4.4protobuf-2.5.0thrift-0.9.0udis86-1.7.2zookeeper-3.4.5//检查mvn环境变量配置成功mvn -v
7 编译源代码,编译源代码的过程需要通过网络下载大量的jar包,可能会因为网络问题频繁出错,建议使用代理下载,或者使用一个比较好的maven镜像,抑或者使用本地repository直接替换~/.m2目录
cd ~/my_workspace/incubator-trafodionsource ./env.shmake all
8 如果只是希望编译Trafodion,那么make all成功即意味着编译成功,但如果希望在开发环境中正常启动Trafodion,则需要先安装好Trafodion依赖的Hadoop和HBase,这可以通过Trafodion源代码中的install_local_hadoop脚本实现,此脚本会下载、安装并启动包括HDFS、Hive、HBase、MySQL在内的服务
cd ~/my_workspace/incubator-trafodionsource ./env.sh//切换到~/my_workspace/incubator-trafodion/core/sqf/sql/scripts目录cds//执行安装本地hadoop,通常需要执行两次,第一次用于给目录添加权限./install_local_hadoop
9 上述步骤成功后,我们必须开启一个新的shell窗口,在新的shell窗口里面,我们使用hbcheck命令来检查Trafodion所依赖的HBase是否正常工作,只有HBase正常工作,Trafodion才能正常启动。如果HBase没有启动,可以使用swstarthbase启动HBase,也可以使用swstartall启动包括HDFS、Hive、HBase、MySQL在内的所有组件。
cd ~/my_workspace/incubator-trafodionsource ./env.sh//检查hbase是否可用hbcheck
如果HBase正常启动,hbcheck的结果大致如下,
Stderr being written to the file: /root/my_workspace/incubator-trafodion/core/sqf/logs/hbcheck.logZooKeeper Quorum: localhost, ZooKeeper Port : 2181HBase is available!HBase version: 1.2.0-cdh5.7.1HMaster: cent-1,55185,1510713313066Number of RegionServers available:1RegionServer #1: cent-1,33702,1510713314440Number of Dead RegionServers:1Dead RegionServer #1: cent-1,34995,1510712037725Number of regions: 2Number of regions in transition: 0Average load: 2.0
10 如果上述HBase没有问题,现在我们可以启动Trafodion了,启动Trafodion包括sqgen、sqstart、初始化等步骤,具体命令如下
cd ~/my_workspace/incubator-trafodionsource ./env.shcds//sqgen主要用于生成环境变量、certificate等sqgen//启动Trafodion数据库,包括多个组件如dtm、rms等sqstart//启动完成后,需要进行sqlci(命令行SQL客户端)做初始化步骤sqlci//初始化,会创建一些trafodion的系统表,可通过hbase shell下list检查表的变化,此命令需在sqlci命令行执行initialize trafodion;
数据库正常启动后,我们可以使用sqcheck检查当前的进程状态,正常结果如下,
[root@cent-1 incubator-trafodion]# sqcheck*** Checking Trafodion Environment ***Checking if processes are up.Checking attempt: 1; user specified max: 2. Execution time in seconds: 0.The Trafodion environment is up!Process Configured Actual Down------- ---------- ------ ----DTM 2 2RMS 4 4DcsMasterDcsServermxosrvr 0 0
11 通过以上结果我们可以发现,DTM、RMS进程均正常启动,但DcsMaster、DcsServer、mxosrvr均为空,DCS是客户端和Trafodion服务器连接的桥梁,属于单独的一部分,我们可以通过Trafodion中的脚本install_traf_components来进行安装,并通过dcsstart来启动
cd ~/my_workspace/incubator-trafodionsource ./env.shcds//安装dcs组件./instal_traf_components//启动DCS模块的服务,此处需要切换到新的shell窗口执行dcsstart
DCS启动成功后再通过sqcheck检查所有进程状态如下,
[root@cent-1 incubator-trafodion]# sqcheck*** Checking Trafodion Environment ***Checking if processes are up.Checking attempt: 1; user specified max: 2. Execution time in seconds: 0.The Trafodion environment is up!Process Configured Actual Down------- ---------- ------ ----DTM 2 2RMS 4 4DcsMaster 1 1DcsServer 1 1mxosrvr 4 4RestServer 0 0
现在我们可以通过Trafci来试用基本的SQL命令吧,
[root@cent-1 incubator-trafodion]# trafciWelcome to Apache Trafodion Command InterfaceCopyright (c) 2015-2017 Apache Software FoundationJLine support is: falseHost Name/IP Address: localhost:23400User Name: zzConnected to Apache TrafodionSQL>create table t(a int, b int);--- SQL operation complete.SQL>showddl t;CREATE TABLE TRAFODION.SEABASE.T ( A INT DEFAULT NULL NOT SERIALIZED , B INT DEFAULT NULL NOT SERIALIZED ) ATTRIBUTES ALIGNED FORMAT;--- SQL operation complete.SQL>insert into t values(1,2),(3,4);--- 2 row(s) inserted.SQL>select * from t;A B----------- ----------- 1 2 3 4--- 2 row(s) selected.SQL>drop table t;--- SQL operation complete.
- Trafodion 开发环境搭建
- Windows环境安装Trafodion客户端
- 搭建Java开发环境
- 搭建Java开发环境
- 搭建J2ME开发环境
- Python开发环境搭建
- Appfuse 开发环境搭建
- 搭建FreeBSD开发环境
- liferay开发环境搭建
- J2ME 开发环境搭建
- 毕业设计开发环境搭建
- eclips- 开发环境搭建
- 搭建开发环境
- jsp 开发环境搭建
- Windows开发环境搭建
- 搭建J2ME开发环境
- 搭建Android开发环境
- gloox开发环境搭建
- ASP .Net学习笔记_20171115
- UISearchController 教程-开始
- 产品经理教你写代码—用JAVA写一个阿里云VPC Open API调用程序
- 线程并发三:线程组和守护线程
- java == 和equals
- Trafodion 开发环境搭建
- js中的原型链
- LR录制手机app脚本
- lintcode&九章算法——Google面试题 | 有效括号字符串 ? 待解决
- ios 图片拉伸方法
- php流程控制以及swich、case、default、break,continue的用法
- PHP——登录时用户名密码区分大小写设置(binary)
- React学习笔记_shoping_cart
- 制造linux安装系统老毛桃u盘