Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
Tabs Container
idbuild-tabs
directionhorizontal
Tabs Page
idmacos
titleMacOS (10.10+)

Install dependencies on MAC (with xcode installed)

Make sure you have done: xcode-select --install to install developer tools

Code Block
languagebash
brew install protobuf protobuf-c Gsasl openssl boost thrift json-c ccache snappy libyaml libevent python cmake lcov

brew tap brona/iproute2mac
brew install iproute2mac
 
brew cask install java
brew install maven
 
sudo easy_install pip
sudo pip install paramiko pycrypto
Info
titleNote for Installing Dependencies

OS requirement

Use a text editor to edit the /etc/sysctl.conf file. Add or edit each of the following parameter definitions to set the required value. 

        kern.sysv.shmmax=2147483648

        kern.sysv.shmmin=1

        kern.sysv.shmmni=64

        kern.sysv.shmseg=16

        kern.sysv.shmall=524288

        kern.maxfiles=65535

        kern.maxfilesperproc=65536

  • Reboot to apply the change.

Install Xcode

Xcode includes the tools, compiler and SDK for building HAWQ.

and command line tools

After install/update xcode, please run ‘xcode-select --install’ to install command line tools, and then open xcode to make sure you have already installed it. 

Turning Off Rootless System Integrity Protection in OS X El Capitan 10.11+

Following below instructions: ( refer to http://osxdaily.com/2015/10/05/disable-rootless-system-integrity-protection-mac-os-x )

  1. Reboot the Mac and hold down Command + R keys simultaneously after you hear the startup chime, this will boot OS X into Recovery Mode
  2. When the “OS X Utilities” screen appears, pull down the ‘Utilities’ menu at the top of the screen instead, and choose “Terminal”
  3. Type the following command into the terminal then hit return: csrutil disable; reboot
Tabs Page
idtab-yum
titleRed Hat/CentOS 7.X

Install dependencies on CentOS 7.X

Dependencies

(CentOS 7 users can follow easy steps provided by Zhanwei Wang)

 

Code Block
languagebash
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum makecache
yum install -y man passwd sudo tar which git mlocate links make bzip2 net-tools \
  autoconf automake libtool m4 gcc gcc-c++ gdb bison flex gperf maven indent \
  libuuid-devel krb5-devel libgsasl-devel expat-devel libxml2-devel \
  perl-ExtUtils-Embed pam-devel python-devel libcurl-devel snappy-devel \
  thrift-devel libyaml-devel libevent-devel bzip2-devel openssl-devel \
  openldap-devel protobuf-devel readline-devel net-snmp-devel apr-devel \
  libesmtp-devel xerces-c-devel python-pip json-c-devel libhdfs3-devel \
  apache-ivy java-1.7.0-openjdk-devel \
  openssh-clients openssh-server

pip --retries=50 --timeout=300 install paramiko pycrypto
yum install lcov
 
You need to install cmake >=3.0 also. (Download from https://cmake.org/files/)

 

OS requirement

  • use a text editor to edit the /etc/sysctl.conf file. Add or edit each of the following parameter definitions to set the required value. 

     kernel.shmmax = 1000000000
     kernel.shmmni = 4096
     kernel.shmall = 4000000000
     kernel.sem = 250 512000 100 2048
     kernel.sysrq = 1
     kernel.core_uses_pid = 1
     kernel.msgmnb = 65536
     kernel.msgmax = 65536
     kernel.msgmni = 2048
     net.ipv4.tcp_syncookies = 0
     net.ipv4.ip_forward = 0
     net.ipv4.conf.default.accept_source_route = 0
     net.ipv4.tcp_tw_recycle = 1
     net.ipv4.tcp_max_syn_backlog = 200000
     net.ipv4.conf.all.arp_filter = 1
     net.ipv4.ip_local_port_range = 1281 65535
     net.core.netdev_max_backlog = 200000
     vm.overcommit_memory = 2
     fs.nr_open = 3000000
     kernel.threads-max = 798720
     kernel.pid_max = 798720
     # increase network
     net.core.rmem_max=2097152
     net.core.wmem_max=2097152
  • Execute the following command to apply your updated /etc/sysctl.conf file to the operating system configuration:
    sysctl -p
  • Use a text editor to edit the /etc/security/limits.conf file. Add the following definitions in the exact order that they are listed
     * soft nofile 2900000
     * hard nofile 2900000
     * soft nproc 131072
     * hard nproc 131072
Tabs Page
titleRed Hat/CentOS 6.X
classtabs-compile-dependencies

Build dependencies yourself ( tested on Red Hat 6.X).

Dependencies

There are several dependencies (see the following table) you must install before building HAWQ. To build Apache HAWQ, gcc and some dependencies are needed. The libraries are tested on the given versions. Most of the dependencies can be installed through yum. Other dependencies should be installed through the source tarball. Typically you can use "./configure && make && make install" to install from source tarball.

Libraries that must be installed using source tarball.


 You might need to run "ldconfig -p <LIBRARY_INSTALL_PATH>" after installing them.

For thrift build, you might need "--without-tests" for configure.

Install maven:
sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
sudo yum install -y apache-maven

Install pip:

wget https://bootstrap.pypa.io/get-pip.py

python get-pip.py

 

pip --retries=50 --timeout=300 install paramiko pycrypto
 

Libraries that can be installed through yum.

NameVersoin
epel-release6-8
make
3.81
gcc
>=4.7.2
gcc-c++
>=4.7.2
gperf
3.0.4
snappy-devel
1.1.3
bzip2-devel 
1.0.6
python-devel 
2.6.2
libevent-devel
1.4.6
krb5-devel
1.11.3
libuuid-devel
2.26.2
libgsasl-devel
1.8.0
libxml2-devel 
2.7.8
zlib-devel
1.2.3
readline-devel
6
openssl-devel
0.9.8
bison
1.875
apr-devel
1.2.12
libyaml-devel
0.1.1
flex
>2.5.4
lcov1.12
libesmtp-devel 

Default version of gcc in Red Hat/CentOS 6.X is 4.4.7 or lower, you can quickly upgrade gcc following instructions below:

Code Block
languagebash
cd /etc/yum.repos.d
# make sure you have root permission
wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
# install higher version using devtoolset-2
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
# Start using software collections
scl enable devtoolset-2 bash

You will need to install python packages same as those which are required for Red Hat/CentOS 7.

OS requirement

  • use a text editor to edit the /etc/sysctl.conf file. Add or edit each of the following parameter definitions to set the required value. 

     kernel.shmmax = 1000000000
     kernel.shmmni = 4096
     kernel.shmall = 4000000000
     kernel.sem = 250 512000 100 2048
     kernel.sysrq = 1
     kernel.core_uses_pid = 1
     kernel.msgmnb = 65536
     kernel.msgmax = 65536
     kernel.msgmni = 2048
     net.ipv4.tcp_syncookies = 0
     net.ipv4.ip_forward = 0
     net.ipv4.conf.default.accept_source_route = 0
     net.ipv4.tcp_tw_recycle = 1
     net.ipv4.tcp_max_syn_backlog = 200000
     net.ipv4.conf.all.arp_filter = 1
     net.ipv4.ip_local_port_range = 1281 65535
     net.core.netdev_max_backlog = 200000
     vm.overcommit_memory = 2
     fs.nr_open = 3000000
     kernel.threads-max = 798720
     kernel.pid_max = 798720
     # increase network
     net.core.rmem_max=2097152
     net.core.wmem_max=2097152
  • Execute the following command to apply your updated /etc/sysctl.conf file to the operating system configuration:
    sysctl -p
  • Use a text editor to edit the /etc/security/limits.conf file. Add the following definitions in the exact order that they are listed
     * soft nofile 2900000
     * hard nofile 2900000
     * soft nproc 131072
     * hard nproc 131072
Tabs Page
iddocker-tab
titleDocker (Red Hat/CentOS 7.X)

Build with Prebuilt Docker Image

Probably the simplest way to get started with the build is starting with the community developed docker image with all the project dependencies pre-installed.

To use the docker image follow the steps on: https://hub.docker.com/r/mayjojo/hawq-devel/

...