Create Test Environment Describes how to set up the Trafodion test environment used by developers and testers Prerequisites Python Passwordless ssh If you already have an existing set of ssh keys If you need to create your keys first Start a ssh agent System Limits Verify Network Setup Find FQDN Test FQDN Modify FQDN Resolution Install Hadoop and Trafodion Pre-Installed Hadoop Build Binary tar Files Install Trafodion Local Hadoop Run install_local_hadoop Sample Procedure Next Steps Warning You MUST complete the steps in Create Build Environment and build the Trafodion components using the instructions in Build Source b efore you create the test environment Prerequisites The following prerequisites need to be met in order to create a functional Trafodion Test Environment Python Some of the test frameworks use python For example, see trafodion/dcs/src/test/pytests/readmerst Passwordless ssh Do the following to check whether you have passwordless SSH setup correctly Verify passwordless ssh ssh localhost Last login: Fri Nov 6 22:44:00 2015 from 19216819 If the ssh localhost command prompts for a password, then passwordless ssh is not set up correctly The following examples set up passwordless ssh using id_rsa keys You can choose the method that best represents your environment If the ssh localhost command prompts for a passphrase, then you need to run an ssh-agent (See below) If you already have an existing set of ssh keys Simply copy both the id_rsapub and id_rsa to your ~/ssh directoryc Then, do the following to modify your ssh environment
Example: Add ssh keys ssh-keygen -t rsa -N "" -f ~/ssh/id_rsa cat ~/ssh/id_rsapub >> ~/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; If you need to create your keys first Do the following: Example: Generate ssh Keys rm -rf ~/ssh ssh-keygen -t rsa -N "" -f ~/ssh/id_rsa cat ~/ssh/id_rsapub >> ~/ssh/authorized_keys chmod 600 ~/ssh/id_rsapub echo "NoHostAuthenticationForLocalhost=yes" >>~/ssh/config chmod go-w ~/ssh/config chmod 755 ~/ssh; chmod 640 ~/ssh/authorized_keys; Start a ssh agent An ssh agent remembers the passphrase Do the following: Example: Start ssh Agent eval (ssh-agent) Agent pid 22167 ssh-agent Enter passphrase for /home/centos/ssh/id_rsa: Identity added: /home/centos/ssh/id_rsa (/home/centos/ssh/id_rsa) ssh localhost Last login: Thu Jan 26 06:07:55 2017 from ::1 exit 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 Use the following command to check your system limits: ulimit -a
The recommended settings are as follows: Recommended Limit Settings 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 To change your limits settings, you typically edit /etc/security/limitsconf and reboot the server Example: /etc/security/limitsconf settings # Changes added for the Trafodion Test Environment * - core 1000000 * - nproc 267263 * - nofile 32000 * - sigpending 515196 * - memlock 49595556 * - stack 10240 TIP Some CentOS/RedHat versions define nproc limits in /etc/security/limitsd/90-nprocconf, too If so, you can simply delete this file before rebooting the server Verify Network Setup Hadoop services typically require a functional resolution fully-qualified network domain name (FQDN) to function properly The FQDN network configuration is located in /etc/hosts while name resolution is configured using /etc/resolvconf Find FQDN The hostname utility allows you to find the short name as well as the FQDN for your server
Find FQDN # Get current hostname hostname box01 # Get fully-qualified domain name for server hostname --fqdn box01trafodionorg Test FQDN The ssh utility allows you to test whether the configured correctly Example: Failed FQDN Resolution ssh box01trafodionorg # Command hangs, ctrl-c to break Modify FQDN Resolution NOTE Some of the steps in this subsection requires root access to change configurations and run utilities Name resolution is performed per the configuration in /etc/resolvconf while /etc/hosts configures the FQDN Example: Incompatible /etc/resolveconf <-> /etc/hosts settings # Check FQDN resolution (fail example) host -T Host box01trafodionorg not found: 5(REFUSED) # Examine issue cat /etc/resolvconf # Generated by NetworkManager nameserver 19216811 cat /etc/hosts 127001 localhost localhostlocaldomain localhost4 localhost4localdomain4 ::1 localhost localhostlocaldomain localhost6 localhost6localdomain6 100215 box01trafodionorg box01 In this example, the name server is in a different domain than box01trafodionorg
Example: Check Network Interface Configuration # Check interface configuration sudo ifconfig eth3 Link encap:ethernet HWaddr 08:00:27:D0:B7:40 inet6 addr: fe80::a00:27ff:fed0:b740/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1703 errors:0 dropped:0 overruns:0 frame:0 TX packets:3778 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:195684 (1910 KiB) TX bytes:1290492 (12 MiB) eth4 lo Link encap:ethernet HWaddr 08:00:27:A5:29:28 inet addr:192168112 Bcast:1921681255 Mask:2552552550 inet6 addr: fe80::a00:27ff:fea5:2928/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:282605 errors:0 dropped:0 overruns:0 frame:0 TX packets:148931 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:290384816 (2769 MiB) TX bytes:18066069 (172 MiB) Link encap:local Loopback inet addr:127001 Mask:255000 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:263 errors:0 dropped:0 overruns:0 frame:0 TX packets:263 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:41810 (408 KiB) TX bytes:41810 (408 KiB) The server is running on an 1921681x network Therefore, this example shows an issue with the /etc/hosts configuration Correct the setting as root editing the /etc/hosts In this example, the eth4 address is 192168112 yielding the following result
Example: Verify FQDN Resolution Changes cat /etc/hosts 127001 localhost localhostlocaldomain localhost4 localhost4localdomain4 ::1 localhost localhostlocaldomain localhost6 localhost6localdomain6 192168112 box01trafodionorg box01 ssh box01trafodionorg The authenticity of host 'box01trafodionorg (192168112)' can't be established RSA key fingerprint is 88:f7:90:fe:35:76:10:92:cf:6d:c4:60:ca:b9:43:9f Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'box01trafodionorg,192168112' (RSA) to the list of known hosts Last login: Tue Jan 26 13:41:58 2016 from localhost exit ssh box01 The authenticity of host 'box01 (192168112)' can't be established RSA key fingerprint is 88:f7:90:fe:35:76:10:92:cf:6d:c4:60:ca:b9:43:9f Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'box01' (RSA) to the list of known hosts Last login: Tue Jan 26 14:07:09 2016 from box01trafodionorg exit Repeat for each server in your environment to ensure proper FQDN resolution before installing Hadoop Install Hadoop and Trafodion You can create a Trafodion test environment using a: Pre-Installed Hadoop: Trafodion installation on a system that already has a compatible version of Hadoop installed Local Hadoop : You install a Hadoop environment using the install_local_hadoop script, which creates an Hadoop environment based on Cloudera archives Your installation approach depends on whether you already have installed Hadoop Pre-Installed Hadoop NOTE Currently, Trafodion requires: Operating System: 64-bit Red Hat Enterprise Linux (RHEL) 65, 66, and 67 SUSE SLES 113 Hadoop: Cloudera CDH 52+ Hortonworks HDP 22+ Apache HBase 10+ Build Binary tar Files Build the Trafodion binary tar files
Example: Build Trafodion Binary tar Files cd <Trafodion source directory> make package-all For more information, refer to Build Trafodion Components in the Build Source chapter Install Trafodion The binary artifacts built above include the following tars and RPMs Note that the ambari server RPM is under the RH* directory It varies depending ont he Redhat version hence we will have one version for each RH version that we support These are binaries that will be need to do the install using Ambari install or the Python Installer The details of how to use these installers are detailed in the Provisioning Guide : Apache Trafodion Provisioning Guide Example: Build Trafodion Binary tar Files <Trafodion home directory>/distribution> ls apache-trafodion_clients-210-rh6-x86_64-debugtargz apache-trafodion_installer-210-incubatingtargz apache-trafodion_pyinstaller-210-incubatingtargz apache-trafodion-regresstgz apache-trafodion_server-210-rh6-x86_64-debugtargz dcs-teststgz phoenix-teststgz RH6 traf_ambari-210-1noarchrpm <Trafodion home directory>/distribution/rh6 > ls apache-trafodion_server-210-develx86_64rpm Local Hadoop Use the following instructions to install a local Hadoop environment based on Cloudera archives Run install_local_hadoop The install_local_hadoop script downloads compatible versions of Hadoop, HBase, Hive, and MySQL based on the Cloudera archives 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 variablemy_local_sw_dist to point to this directory TODO: NEED EXAMPLE HERE Command install_local_hadoop install_local_hadoop -p fromdisplay Usage Uses default ports for all services 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, please refer to Port Assignments on the Trafodion web site Sample Procedure 1 Start a new ssh session and ensure that the Trafodion environmental variables are loaded cd <Trafodion source directory> source /envsh Example: Load Environment Variables cd mysource/trafodion source /envsh 2 Install the Hadoop software cd TRAF_HOME/sql/scripts install_local_hadoop /install_traf_components Example: Install Hadoop Software cd TRAF_HOME/sql/scripts install_local_hadoop Checking for existing Hadoop processes The testware tpcds_kitzip does not exist and will not be installed This testware is needed to run developer HIVE regression tests Installed directory size and name = 27G /home/trafdeveloper/mysource/trafodion/core/sqf/sql/local_hadoop Setup is complete You can use the convenience scripts starting with sw located in /home/trafdeveloper/mysource/trafodion/core/sqf/sql/scripts /install_traf_components Installing and configuring DCS, REST, TRAFCI & Phoenix tests for Trafodion Environment used for core, DCS, REST and Phonenix Configuration scripts for DCS, REST, TRAFCI and Phoenix test are set up Open a new session and start Trafodion by executing sqgen and sqstart scripts 3 Verify installation
swstatus 6 java servers and 2 mysqld processes are running 713 NameNode 19513 HMaster 1003 SecondaryNameNode 838 DataNode 1173 ResourceManager 1298 NodeManager The following Java servers should be running: NodeManager (Yarn) ResourceManager (Yarn) NameNode (HDFS) SecondaryNameNode (HDFS) DataNode (HDFS) HMaster (HBase) In addition, 2 mysqld processes should be running The Hadoop enviroment is install in: MY_SQROOT/sql/local_hadoop The log files are located inmy_sqroot/ sql/local_hadoop/log and in the Hadoop components' log directories If a service is not started, then look in the associated log files for the issue and search for the error string for possible solutions to the issue; these are Hadoop issues and are therefore outside the scope of this guide 4 Run sqgen sqgen creates the Trafodion configuration files Do the following: a Start a new terminal window for this step b Do the following: cd <Trafodion source directory> source /envsh cd MY_SQROOT/etc # delete msenv, if it exists rm msenv cd MY_SQROOT/sql/scripts sqgen
cd mysource/trafodion source /envsh cd MY_SQROOT/etc # delete msenv, if it exists rm msenv cd MY_SQROOT/sql/scripts sqgen Workstation environment - Not a clustered environment Generating SQ environment variable file: /home/trafdeveloper/mysource/trafodion/core/sqf/etc/msenv Note: Using clusterconf format type 2 *********************************************************** Updating Authentication Configuration *********************************************************** Creating folders for storing certificates Example: Run sqgen 5 Start Trafodion Example: sqstart sqstart Checking orphan processes Removing old mpijob* files from /home/trafdeveloper/mysource/trafodion/core/sqf/tmp Removing old monitorport* files from /home/trafdeveloper/mysource/trafodion/core/sqf/tmp Executing sqipcrm (output to sqipcrmout) Starting the SQ Environment (Executing /home/trafdeveloper/mysource/trafodion/core/sqf/sql/scripts/gomoncold) Background SQ Startup job (pid: 15755) You can monitor the SQ shell log file : /home/trafdeveloper/mysource/trafodion/core/sqf/logs/sqmonlog Startup time 0 hour(s) 0 minute(s) 59 second(s) 6 Initialize Trafodion The final step is to initialize the Trafodion database
sqlci Apache Trafodion Conversational Interface 130 Copyright (c) 2015 Apache Software Foundation >>initialize trafodion; --- SQL operation complete >> exit; End of MXCI Session Example: Initialize Trafodion Next Steps At this point, you should have a running Trafodion Test Environment The following chapters provide additional guidance for how to use the Trafodion Test Environment: Test: Describes the Trafodion test libraries Manage Test Environment: Describes how to manage the test environment including tasks such as starting/stopping Trafodion In addition, you can now install Trafodion client software and use the product as an end user would Refer to the Trafodion documentation for details