Table of Contents |
---|
How to Build
Option 1 (with pre-built docker image)
Follow the steps on: https://hub.docker.com/r/mayjojo/hawq-devel/
Option 2 (build the dependencies by yourself)
OS requirement
Currently, only Redhat 6.5 and CentOS 6.5 are verified to work.
install redhat 6.5 basic server
- choose install development tools
Linux ( tested on redhat 6.x).
Dependencies
There are several dependencies (see the following table) you must install before building HAWQ. The steps in "Compile and Install" column typically install the headers to /usr/local/include and libraries to /usr/local/lib or /usr/local/lib64. If you want to install the lib in another place, you can use the --prefix=/the/path option when you run configure. For example: ./configure --prefix=/the/path. To build Apache HAWQ, gcc and some dependencies are needed. The libraries are tested on the version given. Most of the dependencies could be installed through yum. Other dependencies should be installed through the source tarball, which means the typically make 3 steps "./configure && make && make install".
Libraries should be installed using source tarball.
Name | Version | Download URL | Compile and Install | ||
---|---|---|---|---|---|
|
| gperf | 3.0.4 | httpftp/gnu/gperf/gperf-3.0.4.tar.gzconfigure | |
sudo make install | |||||
snappy | 1.1.3 | https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz | ./configure make sudo make install | ||
|
| bzip2 | 1.0.6 | wwwbzip1.0.6/bzip2-1.0.6.tar.gz | make sudo make install |
python | 2.6.2 | https://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz | ./configure make sudo make install | ||
libevent | 1.4.6 | https://github.com/downloads/libevent/libevent/libevent-1.4.6-stable.tar.gz | ./configure make sudo make install | ||
| 0.9 | ./configure make sudo make install | krb5 | ||
| 1.11.3 | http://websourceforge.mit.edunet/kerberosprojects/distboost/krb5files/1.11boost/krb5-1.11.3-signed.tar | ./configure make sudo make install | ||
libuuid | 2.26.2 | http://mirrors.163.com/centos/6.7/os/x86_64/Packages/libuuid-devel-2.17.2-12.18.el6.x86_64.rpm | rpm -i libuuid-devel-2.17.2-12.18.el6.x86_64.rpm | ||
libgsasl | 1.8.0 | ftp://ftp.gnu.org/gnu/gsasl/libgsasl-1.8.0.tar.gz | ./configure make sudo make install | ||
libxml2 | 2.7.8 | http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz | ./configure make sudo make install cd /usr/local/include/ sudo ln -s libxml2/libxml libxml | ||
56.0/boost_1_56_0.tar.bz2 | |||||
|
| zlib | 1.2.3 | http://zlib.net/fossils/zlib-1.2.3.tar.gz | ./configure --prefix=/usr make sudo make install |
readline | 6.0 | ftp://ftp.gnu.org/gnu/readline/readline-6.0.tar.gz | ./configure make sudo make install (you may need to run ldconfig) | ||
openssl | 0.9.8 | ftp://ftp.openssl.org/source/opensslarchive.apache.org/dist/thrift/0.9.1/thrift-0.9.8ze1.tar.gz ./config --prefix=/usr/local --openssldir=/usr/local/openssl makesudo make install | |||
|
| https://github.com/google/protobuf/tree/v2.5.0 | |||
| ./configure make sudo make install | boost | 1.56
| http://sourceforge.net/projects/boost/files/boost/1.56.0/boost_1_56_0.tar.bz2 | ./bootstrap.sh ./b2 sudo ./b2 install |
bison | 2.5 | http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz | ./configure make sudo make install | ||
thrift | 0.9.1-1 | http://archive.apache.org/dist/thrift/0.9.1/thrift-0.9.1.tar.gz | ./configure make sudo make install | ||
apr | 1.2.12 | http://archive.apache.org/dist/apr/apr-1.2.12.tar.gz | ./configure make sudo make install | ||
libyaml | 0.1.1 | ./configure make sudo make install | |||
curl | 7.44.0 | http://www.curl.haxx.se/download/curl-7.44.0.tar.gz | ./configure make sudo make install | ||
flex | 2.5.35 | http://sourceforge.net/projects/flex/files/flex-2.5.35.tar.gz/download | ./configure make sudo make install | ||
www.curl.haxx.se/download/curl-7.44.0.tar.gz | |||||
|
| https://github.com/PivotalRD/libhdfs3.git | |||
|
|
Libraries could be installed through yum.
Name | Versoin | ||||
---|---|---|---|---|---|
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| ||||
|
| libhdfs3 | latest version | https://github.com/PivotalRD/libhdfs3.git |
Get code and build HAWQ
- The
...
- Apaceh HAWQ
...
- source code can be obtained from the
...
- GitHub: https://github.com/apache/incubator-hawq.
- Get source code
- The code directory is CODEHOME/incubator-hawq. Then cd CODEHOME/incubator-hawq and build Apache HAWQ under this directory.
- Run command to generate makefile.
- ./configure
- Or you could user --prefix=/hawq/install/path to change the Apache HAWQ install path.
- ./configure
# cd depends/libyarn/
# mkdir build
# cd build
# ../bootstrap- --prefix=/
- hawq/
- install/
# make
# sudo make install - Go to top hawq source directory
# ./configure
# make -j8
# sudo make install
Install HDFS
...
- path
- You also could run the command with --help for more configuration.
- ./configure --help
- Run command to build
- make
- To build concurrently , run make with -j option.
- make -j8
- make -j8
Install HAWQ
- To install Apache HAWQ, run command
- make install
Test In HAWQ
- Unit test. To do unit test, go to the src/backend and run unittest check.
- cd src/backend
- make unittest-check
- Install check. After installed Apache HAWQ , ensure HDFS work before init Apache HAWQ.Then init Apache HAWQ.To do install check, run the command below under incubator-hawq.
- source /install/dir/greenplum_path.sh
- hawq init cluster
- make installcheck-good
- source /install/dir/greenplum_path.sh
Install YARN (Optional)
If you want to use YARN integration feature, you need to install YARN first.
Init and start HAWQ
...
- Install libyarn
- cd depends/libyarn/
- mkdir build
- cd build
- ../bootstrap --prefix=/usr/local/
- make
- sudo make install
Init and Start Apache HAWQ
- Before initializing HAWQ, you need to install HDFS and make sure it works
- source /install/dir/greenplum_path.sh
...
- hawq init cluster
...
- hawq start cluster
Connect and
...
Run basic queries
...
- psql -d postgres
...
- create table t ( i int );
...
- insert into t values(1);
...
- select * from t;