Explains how to build the Trafodion source.
Warning
You MUST complete the steps in Create Build Environment before you build the Trafodion source since those steps install required Linux packages as well as set up important environmental variables.
Download and Install Trafodion Source Tree
If you haven’t done so already, then download and install the Trafodion source tree. Refer to the Source Download instructions in the How-To chapter.
Set Up Environmental Variables
Use the following commands to set up the Trafodion environmental variables.
TOOLSDIR Variable
You should have set up the TOOLSDIR environment variable in your .bashrc or .profile already. as part of installing the Trafodion build tools. If you have not, please do so now. Refer to Install Required Build Tools.
If you need to over-ride a value set in the core/sqf/sqenvcom.sh file, you may set the variables in ~/.trafodion. See core/sqf/LocalSettingsTemplate.sh file for more info.
Trafodion can be built in one of two flavors, debug or release. The default flavor is debug.
cd <Trafodion source directory> source ./env.sh
cd <Trafodion source directory>/core/sqf source ./sqenvr.sh cd ../..
Example
$ cd mysource/incubator-trafodion $ source ./env.sh If you are ready to build Trafodion, perform one of the following options: make all (Build Trafodion, DCS, and REST) OR make package (Build Trafodion, DCS, REST, and Client drivers) OR make package-all (Build Trafodion, DCS, REST, Client drivers, and Tests) If Trafodion has been built and you want test: Execute the install_local_hadoop script which performs a single node install using a popular Hadoop distribution cd /home/trafdeveloper/mysource/incubator-trafodion/core/sqf/sql/scripts install_local_hadoop [-p <port option>] install_traf_components configure Trafodion and start the processes HAVE FUN! You can also choose to install_local_hadoop before building Trafodion. $
Build Trafodion Components
All make options sets up your environment to run a debug version of the Trafodion server-side code on the server where you are building the code. This is refereed to as "Trafodion" in the table below.
Command | What It Builds |
---|---|
make all | Trafodion, DCS, and REST. |
make package | Trafodion, DCS, REST, and Client Drivers. Often referred to as "Trafodion binaries". |
make package-all | Trafodion, DCS, REST, Client Drivers, and tests for all components. |
Tip
make
step. Trafodion downloads many dependencies and sometimes one of the download operations fail. Rerunning the build generally works. If the build continues to fail after a few tries, then rerun the make with the -j 1
option to run the build in non-parallel mode, which makes it easier to locate errors.make all
$ make all Building all Trafodion components cd core && make all make[1]: Entering directory `/home/trafdeveloper/mysource/incubator-trafodion/core' ./bldenvchk.sh; cd sqf && make genverhdr make[2]: Entering directory `/home/trafdeveloper/mysource/incubator-trafodion/core/sqf' Building Apache Trafodion Version 1.3.0 debug *** Warning: QT_TOOLKIT does not point to an existing directory. *** Warning: SQL Compiler Debugger will not be built. cd sqf && make setupdir make[2]: Entering directory `/home/trafdeveloper/mysource/incubator-trafodion/core/sqf' mkdir -p export/bin64d mkdir -p export/lib64d mkdir -p export/include/sql mkdir -p export/include cd monitor/linux; make setup . . . [INFO] Nothing to compile - all classes are up to date ##(DCS) [INFO] Building jar: /home/trafdeveloper/mysource/incubator-trafodion/dcs/target/dcs-1.3.0.jar ##(DCS) [INFO] Building tar: /home/trafdeveloper/mysource/incubator-trafodion/dcs/target/dcs-1.3.0.tar.gz ##(DCS) [INFO] BUILD SUCCESS ##(DCS) mkdir -p ../distribution ##(DCS) mv target/dcs-1.3.0.tar.gz ../distribution ##(DCS) rm -f trafodion-dcs.jar.versions ##(DCS) make[2]: Leaving directory `/home/trafdeveloper/mysource/incubator-trafodion/dcs' ##(DCS) make[1]: Leaving directory `/home/trafdeveloper/mysource/incubator-trafodion/core' $ # Check that distribution files were created $ ls distribution dcs-1.3.0.tar.gz rest-1.3.0.tar.gz $
make package
Build Trafodion plus tar files for DCS, REST, and Client Drivers.
$ cd mysource/incubator-trafodion $ source ./env.sh $ make package Packaging Trafodion components cd core && make package make[1]: Entering directory `/home/trafdeveloper/mysource/incubator-trafodion/core' ./bldenvchk.sh; cd sqf && make genverhdr make[2]: Entering directory `/home/trafdeveloper/mysource/incubator-trafodion/core/sqf' Building Apache Trafodion Version 1.3.0 debug . . . rm -f "trafodion_debug.tar" pkglist-files pkglist-symlinks tmp/sqenv.sh ##(Package) make[2]: Leaving directory `/home/trafdeveloper/mysource/incubator-trafodion/core/sqf' ##(Package) make[1]: Leaving directory `/home/trafdeveloper/mysource/incubator-trafodion/core' $ ls distribution/ dcs-1.3.0.tar.gz rest-1.3.0.tar.gz trafodion_clients-1.3.0-debug.tgz trafodion_server-1.3.0-debug.tgz
make package-all
Build Trafodion plus tar files for DCS, REST, Client Drivers, and tests for all components.
Packaging all Trafodion components cd core && make package-all make[1]: Entering directory `/home/trafdeveloper/mysource/incubator-trafodion/core' ./bldenvchk.sh; cd sqf && make genverhdr make[2]: Entering directory `/home/trafdeveloper/mysource/incubator-trafodion/core/sqf' Building Apache Trafodion Version 1.3.0 debug . . . cd tmp; tar --mode o-rwx -rf ../"trafodion_debug.tar" sqenv.sh ##(Package) gzip -c "trafodion_debug.tar" > "../../distribution/trafodion_"server-1.3.0-debug".tgz" ##(Package) rm -f "trafodion_debug.tar" pkglist-files pkglist-symlinks tmp/sqenv.sh ##(Package) make[2]: Leaving directory `/home/trafdeveloper/mysource/incubator-trafodion/core/sqf' ##(Package) make[1]: Leaving directory `/home/trafdeveloper/mysource/incubator-trafodion/core' $ ls distribution/ dcs-1.3.0.tar.gz phoenix-tests.tgz trafodion_clients-1.3.0-debug.tgz trafodion_server-1.3.0-debug.tgz dcs-tests.tgz rest-1.3.0.tar.gz trafodion-regress.tgz
Verify Build
Local Binary Files
Check that local Trafodion binary files were created in the build.
$ # Check that local binary files were created $ ls $MY_SQROOT/export/bin64d dtmci ldapcheck monitor mpirun mxosrvr odb64luo sqid sqvers tdm_arkesp tmshutdown hydra_pmi_proxy ldapconfigcheck monmemlog mxcierrors.cat mxsscp pstartd sqinfo sqwatchdog tdm_udrserv idtmsrv mondump mpicc mxlobsrvr mxssmp shell sqlci tdm_arkcmp tm
sqvers
Use sqvers
to verify the build.
$ sqvers -u MY_SQROOT=/home/trafdeveloper/mysource/incubator-trafodion/core/sqf who@host=trafdeveloper@box01 JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64 SQ_MBTYPE=64d (64-debug) linux=2.6.32-504.el6.x86_64 redhat=6.6 NO patches Most common Apache_Trafodion Release 1.3.0 (Build debug [trafdeveloper], branch -, date 25Jan16) UTT count is 1 [6] Release 1.3.0 (Build debug [trafdeveloper], branch -, date 25Jan16) export/lib/hbase-trx-cdh5_3-1.3.0.jar export/lib/hbase-trx-hbase_98_4-1.3.0.jar export/lib/hbase-trx-hdp2_2-1.3.0.jar export/lib/sqmanvers.jar export/lib/trafodion-dtm-1.3.0.jar export/lib/trafodion-sql-1.3.0.jar $
The output from the sqvers -u
commands should show several jar files. The number of files differs based on the version of Trafodion you downloaded.
Next Steps
Do one of the following once the build has completed:
- Create Test Environment: Set up the Trafodion development test environment on the server where you did the build. You'll install a Hadoop environment, start Trafodion, and run the Trafodion Test Libraries.
- Install Trafodion Binaries: Using the packages you created (make package or make package-all), install the Trafodion Binaries using the steps described in the Trafodion documentation.