Warning | ||
---|---|---|
| ||
This page is being obsoleted and is replaced by: http://trafodion.apache.org/build.html |
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Describes |
...
the steps required to build |
...
and run Apache Trafodion. |
Table of Contents |
---|
...
Supported Platforms
Red Hat or Centos 6.x (6.4 or later) versions are supported as development and production platforms.
Prerequisites
Build prerequisites
You need to install Install the following packages :
...
before you can install Apache Trafodion.
Code Block | ||
---|---|---|
| ||
sudo yum install epel-release |
...
sudo yum install alsa-lib-devel ant ant-nodeps boost-devel cmake \ |
...
...
device-mapper-multipath dhcp flex gcc-c++ gd git glibc-devel \ |
...
...
glibc-devel.i686 graphviz-perl gzip java-1.7.0-openjdk-devel \ |
...
...
libX11-devel libXau-devel libaio-devel \ |
...
libcurl-devel libibcm.i686 libibumad-devel libibumad-devel.i686 \ |
...
...
libiodbc libiodbc-devel librdmacm-devel librdmacm-devel.i686 \ |
...
libxml2-devel log4cxx log4cxx-devel lua-devel lzo-minilzo \ |
...
...
net-snmp-devel net-snmp-perl openldap-clients openldap-devel \ |
...
...
openldap-devel.i686 openmotif openssl-devel openssl-devel.i686 \ |
...
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 python-qpid \ |
...
...
python-qpid-qmf qpid-cpp-client \ |
...
...
qpid-cpp-client-ssl qpid-cpp-server qpid-cpp-server-ssl \ |
...
qpid-qmf qpid-tools readline-devel saslwrapper sqlite-devel \ |
...
unixODBC unixODBC-devel uuid-perl wget xerces-c-devel xinetd |
...
Check the following before continuing
...
|
Once installed, check the following.
Java Version
The Java version must be 1.7.x.
...
Build Steps
Set up Trafodion configuration file
<TDB: change hardcoded version number 1.2.0 to be configurable>
Additional development tools are required before building Trafodion as described Additional Build Tools. A convenience script script exists that downloads, installs, and builds all these tools in a common directory. If this convenience script is not used or if any of these additional build tools are not found in the expected location, then the Trafodion configuration file needs to be updated. The Trafodion configuration file template is located in <traf download directory>/apache-trafodion-1.2.0-incubating/core/sqf/LocalSettingsTemplate.sh. To change values, copy this file to your home directory and change its name to .trafodion. Edit the .trafodion file and update according to the instructions. Be sure to change the location of your TOOLSDIR to your <tools installation directory>.
cp <traf download directory>/apache-trafodion-1.2.0-incubating/core/sqf/LocalSettingsTemplate.sh ~/.trafodion
For now, don't change locations for HADOOP_PREFIX, HBASE_HOME, and HIVE_HOME. There is a later step that describes this process - is this still needed with latest build changes?
Build Trafodion
Build using standard Apache installation
Start a new ssh session
cd <download directory>/apache-trafodion-1.2.0-incubating
export $TOOLSDIR=<tools installation directory>
source ./env.sh
Build using one of the following options:
make all
(Build Trafodion, DCS, REST) OR
make package
(Build Trafodion, DCS, REST, Client drivers) OR
make package-all
(Build Trafodion, DCS, REST, Client drivers and Tests for all components
Verify build by executing the following statement, this request should return over 90 components
sqvers
Build using local Hadoop
This section describes the steps to use the Trafodion installation script called 'install_local_hadoop' that encapsulates building the product and starting the Hadoop eco-system. This script uses a Cloudera distribution.
Make sure you have set up password less authentication. You should be able to "ssh localhost" without having to enter a password
Install Hadoop eco-system
Start a new ssh session and set environment
cd <download directory>/apache-trafodion-1.2.0-incubating
source ./env.sh
install_local_hadoop
Verify that build completed by running the following command - should report: 6 java servers and 2 mysqld processes are running
swstatus
Note:
The 'install_local_hadoop' script downloads Hadoop, HBase, Hive, and MySql jar files from the internet. To avoid this overhead, you can download the required files into a separate directory and set the environment variable MY_LOCAL_SW_DIST to point to this directory.
The following options are available with 'install_local_hadoop'. Use the -p option if the default Hadoop ports are already in use on your machine:
‘install_local_hadoop' — will use default port numbers for all services
'install_local_hadoop -p fromDisplay' - will start Hadoop with a port number range determined from the DISPLAY environment variable OR
‘install_local_hadoop -p rand' — will start with any random port number range between 9000 and 49000 OR
‘install_local_hadoop -p < specify a port # >' — will start with port number specified OR
When this script completes, Hadoop, HBase, Hive, and MySql (used as Hive's metadata repository) have been installed and are started.
The 'install_local_hadoop' script also creates several helper scripts starting with "sw" in the $MY_SQROOT/sql/scripts directory including:
swhadoop swhbase swhdfs
swhive swjdbc swmysql
swmysqladmin swstartall swstarthadoop
swstarthbase swstartmysql swstatus
swstopall swstophadoop swstophbase
swstopmysql swuninstall_local_hadoop swurls.html
swyarn
To start/stop/check Hadoop environment using Trafodion supplied scripts, you can execute ‘swstartall’ , ‘swstopall’ and ‘swstatus’, and if you need to remove the installation, execute the 'swuninstall_local_hadoop'.
Do the build
Start a new ssh session and set environment
cd <download directory>/apache-trafodion-1.2.0-incubating
source ./env.sh
Build using one of the following options:
make all
(Build Trafodion, DCS, REST) OR make package
(Build Trafodion, DCS, REST, Client drivers) OR make package-all
(Build Trafodion, DCS, REST, Client drivers and Tests for all components
Verify build by executing the following statement, this script should return over 90 components
sqvers
Install Trafodion components
install_traf_components
Test Trafodion build
If you built Trafodion using Build using standard Apache installation, follow the instructions in Test using standard Apache installation. If you built Trafodion using the Build using local Hadoop , follow the instructions in Test using local Hadoop.
Test using standard Apache installation
<TBD - add instructions on how to .tar up the build. This section needs some work>
Note: All tar files are created in ‘distribution’ folder located at the very top level (incubator-trafodion) during the make step.
To install a custom Trafodion component you can set various environment variable to overwrite the default tar files found in distribution folder.
Environment variables supported by install_traf_component script are :
DCS_TAR — Specify the fully qualified path of DCS tar file
REST_TAR — Specify the fully qualified path of REST tar file
PHX_TAR — Specify the fully qualified path of Phoenix test tar file
CLIENT_TAR — Specify the fully qualified path of Trafodion client tar file
DCSTEST_TAR — Specify the fully qualified path of DCS tests tar file
Follow installation instructions found on the Apache Trafodion wiki site - (Installation ) but modify the step that request you to download tar files from the download directory to use your generated the tar files.
Test using local Hadoop
This section describes how to start up Trafodion and run operations. It assumes that you have previously run the 'install_local_hadoop' script.
The 'install_local_hadoop' script configures everything needed to run Trafodion. It also starts Hadoop, Hive, MySql, and HBase.
Before starting, please check your ulimit. Some of them may need to be increased. If incorrect values are used, Trafodion may not start.
The following are the recommended values.
ulimit –a
- core file size (blocks, -c) 1000000
- data seg size (kbytes, -d) unlimited
- scheduling priority (-e) 0
- file size (blocks, -f) unlimited
- pending signals (-i) 515196
- max locked memory (kbytes, -l) 49595556
- max memory size (kbytes, -m) unlimited
- open files (-n) 32000
- pipe size (512 bytes, -p) 8
- POSIX message queues (bytes, -q) 819200
- real-time priority (-r) 0
- stack size (kbytes, -s) 10240
- cpu time (seconds, -t) unlimited
- max user processes (-u) 267263
- virtual memory (kbytes, -v) unlimited
- file locks (-x) unlimited
Start Trafodion
Start a new ssh session and set environment, then perform a one-time step to set up run environment:
cd <download directory>/apache-trafodion-1.2.0-incubating
source ./env.sh
cd $MY_SQROOT/sql/scripts
sqgen
Important: After sqgen, exit all shells used for Trafodion, and source the env.sh file in a new shell.
Sometimes HBase does not get started correctly and needs to be restarted:
swstatus
If HMaster is not started do:
swstophbase
swstarthbase
Finally, start the Trafodion processes:
sqstart
Note: In case of any issues and if there is a need to stop and restart a specific Trafodion component, you can use the component based start/stop scripts.
Component | Start script | Stop script |
For all of Trafodion | sqstart | sqstop |
For DCS (Database Connectivity Service) | dcsstart | dcsstop |
For REST server | reststart | reststop |
For LOB server | lobstart | lobstop |
For RMS server | rmsstart | rmsstop |
|
|
|
Checking the status of Trafodion and its components
There are several health check scripts that are available which will provide the status of Trafodion. They are :
sqcheck
(For all of Trafodion)dcscheck
(For Database Connectivity Service)rmscheck
(For RMS Server)
Creating Trafodion metadata
Trafodion is up and running, you can now start up a SQL command line interface and initialize Trafodion
Start a new ssh session and set environment and run the sqlci tool:
cd <download directory>/apache-trafodion-1.2.0-incubating
source ./env.sh
sqlci
Perform the following statements:
initialize trafodion;
exit
Test your setup by using "sqlci" or "trafci" (uses DCS to connect to the SQL engine):
get schemas;
create table table1 (a int);
invoke table1;
insert into table1 values (1), (2), (3), (4);
select * from table1;
exit;
You are done and ready to go! <TBD: add reference to documentation>
Trafodion test packages
There are several helper scripts provided to run the tests for Trafodion components in your workspace. These scripts are generated based on the tar files that are made available during execution of install_traf_component script
swphoenix {t4 | t2 } — This script will run the Phoenix test using JDBC Type 4 driver or JDBC Type 2 driver
swjdbc — This script will run JDBC Type 4 tests
...
Check as following:
Code Block | ||
---|---|---|
| ||
$ java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (rhel-2.6.1.3.el6_6-x86_64 u85-b01)
OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode) |
Ensure that the Java environment exists and points to your JDK installation. By default Java is located in /usr/lib/java-<version>.
Code Block | ||
---|---|---|
| ||
$ echo $JAVA_HOME
$ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64 |
Note |
---|
You should export JAVA_HOME in your .bashrc or .profile file. |
Verify Trafodion Download
Verify that the Trafodion source has been either:
- Downloaded and unpackaged.
- Cloned from github.
If not, please do so now.
To download from github, refer to Contributor Workflow - Code/Docs.
Otherwise downloaded and untar the source tar file from Apache Trafodion Incubator release.
Install Required Build Tools
Trafodion requires a set of tools to be installed in order to build. Refer to Required Build Tools for instructions. One of the tools that is built if it does not already exist is Maven. At this time, you should verify that Maven is part of your path. To verify that Maven is available do:
mvn --version.
If not found, then added it to your path:
PATH=$PATH:<tool installation directory>/apache-maven-3.3.3/bin
Note |
---|
You should add Maven to your PATH in your .bashrc or .profile file. |
Build Trafodion
Start a new ssh session. Use the following commands to set up the Trafodion environmental variables.
- <Trafodion source directory> is source tree base for Trafodion.
- <tools installation directory> is where Trafodion required tools are located. The following example assumes that you installed all the required tools in a single location. If you installed or used pre-installed tools in different directories, then you need to export the location of each tool as described Required Build Tools prior to sourcing in env.sh.
Code Block | ||
---|---|---|
| ||
cd <Trafodion source directory>
export TOOLSDIR=<tools installation directory>
source ./env.sh |
Build a debug version of Trafodion using one of the following options:
Command | What It Builds |
---|---|
make all | Trafodion, DCS, and REST. |
make package | Trafodion, DCS, REST, and Client Drivers. |
make package-all | Trafodion, DCS, REST, Client Drivers, and tests for all components. |
If the build fails, you might want to rerun the make step. Trafodion downloads many dependencies and sometimes one of the download operations fail. Rerunning the build generally works.
Verify the build:
Code Block | ||||
---|---|---|---|---|
| ||||
$ sqvers -u
MY_SQROOT=/home/centos/apache-trafodion-1.3.0-incubating/core/sqf
who@host=centos@mysystem
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64
SQ_MBTYPE=64d (64-debug)
linux=2.6.32-504.1.3.el6.x86_64
redhat=6.7
NO patches
Most common Apache_Trafodion Release 1.3.0 (Build debug [centos], branch -, date 06Nov15)
UTT count is 1
[6] Release 1.3.0 (Build debug [centos], branch -, date 06Nov15)
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 show several jar files. The number of files differs based on the version of Trafodion you downloaded.
Setup Test Environment
You should test your installation using:
- Trafodion installation on a system that already has a compatible version of Hadoop installed
- A local Hadoop environment created by the install_local_hadoop script
Your installation approach depends on whether you already have installed Hadoop.
Hadoop is Already Installed
Build binary tar files and then install Trafodion following instructions described in Installation.
Code Block | ||||
---|---|---|---|---|
| ||||
cd <Trafodion source directory>
make package |
The binary tar files will be created in <Trafodion source directory>/distribution directory.
Install a Local Hadoop Environment
Local Hadoop prerequisites
Setup Passwordless SSH
Check to see if you have passwordless SSH setup.
Code Block | ||||
---|---|---|---|---|
| ||||
ssh localhost
Last login: Fri Nov 6 22:44:00 2015 from 192.168.1.9 |
If passwordless SSH is not setup, please do so now. The following is an example of setting up passwordless SSH using id_rsa keys. You can choose the method that best represents your environment.
If you already have an existing set of ssh keys. Simply copy both the id_rsa.pub and id_rsa to your ~/.ssh directory.
Then, do the following:
Code Block | ||||
---|---|---|---|---|
| ||||
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/id_rsa
echo "NoHostAuthenticationForLocalhost=yes" >>~/.ssh/config
chmod go-w ~/.ssh/config
chmod 755 ~/.ssh; chmod 640 ~/.ssh/authorized_keys; cd ~/.ssh; chmod 700 .. |
If you need to create your keys first, then do the following:
Code Block | ||||
---|---|---|---|---|
| ||||
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; cd ~/.ssh; chmod 700 .. |
Verify System Limits
Please check that the system limits in your environment are appropriate for Apache Trafodion. If they are not, then you will need to increase the limits or Trafodion cannot start.
Code Block | ||||
---|---|---|---|---|
| ||||
ulimit –a
core file size (blocks, -c) 1000000
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 515196
max locked memory (kbytes, -l) 49595556
max memory size (kbytes, -m) unlimited
open files (-n) 32000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 267263
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
|
Please refer to this article for information on how you change system limits.
Run install_local_hadoop
The install_local_hadoop script downloads compatible versions of Hadoop, HBase, Hive, and MySQL. Then, it starts Trafodion.
Tip | ||
---|---|---|
| ||
install_local_hadoop downloads Hadoop, HBase, Hive, and MySql jar files from the internet. To avoid this overhead, you can download the required files into a separate directory and set the environment variable MY_LOCAL_SW_DIST to point to this directory. |
Command | What It Does |
---|---|
install_local_hadoop | Uses default ports for all services. |
install_local_hadoop -p fromDisplay | Start Hadoop with a port number range determined from the DISPLAY environment variable. |
install_local_hadoop -p rand | Start with any random port number range between 9000 and 49000. |
install_local_hadoop -p <port > | Start with the specified port number. |
For a list of ports that get configured and their default values, see Configure Ports for a Firewall.
Sample Procedure
Code Block | ||||
---|---|---|---|---|
| ||||
# Ensure that the Trafodion environmental variables have been loaded.
cd <Trafodion source directory>
source ./env.sh |
Install the Hadoop software.
Code Block | ||
---|---|---|
| ||
cd $MY_SQROOT/sql/scripts
install_local_hadoop
./install_traf_components |
Verify installation.
Code Block | ||
---|---|---|
| ||
$ swstatus
6 java servers and 2 mysqld processes are running
713 NameNode
19513 HMaster
1003 SecondaryNameNode
838 DataNode
1173 ResourceManager
1298 NodeManager
|
Six java servers as shown above and two mysqld processes should be running.
Manage Hadoop Environment
Use the following commands to manage the Hadoop environment.
Command | Usage |
---|---|
swstartall | Start the complete Hadoop environment. |
swstopall | Stops the complete Hadoop environment. |
swstatus | Checks the status of the Hadoop environment. |
swuninstall_local_hadoop | Removes the Hadoop installation. |
Run Trafodion
This section describes how to start Trafodion and run operations.
Each Time New Source is Downloaded
You need to do the following each time you download new source code.
Code Block | ||
---|---|---|
| ||
cd <Trafodion source directory>
source ./env.sh
cd $MY_SQROOT/etc
# delete ms.env, if it exists
rm ms.env
cd $MY_SQROOT/sql/scripts
sqgen |
Start Trafodion
Do the following to start the Trafodion environment.
Code Block | ||
---|---|---|
| ||
cd $MY_SQROOT/sql/scripts
sqstart
sqcheck |
Management Scripts
Component | Start | Stop | Status |
---|---|---|---|
All of Trafodion | sqstart | sqstop | sqcheck |
DCS (Database Connectivity Services) | dcstart | dcsstop | dcscheck |
REST Server | reststart | reststop | |
LOB Server | lobstart | lobstop | |
RMS Server | rmsstart | rmsstop | rmscheck |
Create Trafodion Metadata
Code Block | ||||
---|---|---|---|---|
| ||||
# Ensure that the Trafodion environmental variables have been loaded.
cd <Trafodion source directory>
source ./env.sh |
Assumption: Trafodion is up and running.
Use sqlci to create the Trafodion metadata.
Code Block | ||
---|---|---|
| ||
$ sqlci
>> initialize trafodion;
.
.
.
>> exit;
$ |
Validate Your Installation
You can use sqlci or trafci (connects via DCS) to validate your installation.
Code Block | ||||
---|---|---|---|---|
| ||||
get schemas;
create table table1 (a int);
invoke table1;
insert into table1 values (1), (2), (3), (4);
select * from table1;
exit; |
Assuming no errors, your installation has been successful. You can start working on your modifications.
Troubleshooting Notes
If you are not able to start up the environment or if there are problems running sqlci or trafci, then verify that the all the processes are up and running.
- swstatus should show at 6 java servers and 2 mysql processes.
- sqcheck should indicate all processes are running.
If processes are not running as expected, then:
- sqstop to shut down Traodion. If some Trafodion processes do not terminate cleanly, then run ckillall.
- swstopall to shut down the Hadoop ecosystem.
- swstartall to restart the Hadoop ecosystem.
- sqstart to restart Trafodion.
If problems persist please review logs:
- $MY_SQROOT/sql/local_hadoop/*/log: Hadoop, HBase, and Hive logs.
- $MY_SQROOT/logs Trafodion logs.