Apache HAWQ became an Apache open source project several weeks ago. Today I will introduce how we install and start Apache HAWQ.
Basic Requirements
Basic requirements has two parts, basic environments and some dependencies.
The first thing is to get a redhat 6.5 server and install the development tools during the setup of the system.
There are some dependencies you must install before the compiling. You should compile the libraries’ and install the libraries. Most libraries should compile and install to your system using the basic several steps :
cd $LIBRARY_CODE_HOME
./configure
make
Become root user and run :
make install
This way would install the libraries` headers to /usr/local/include and libraries file to /usr/local/lib or /usr/local/lib64. If you want to install the libraries in another place, you can use the --prefix=/the/path option when you run configure. For example:
./configure --prefix=/the/path/you/want
But don`t forget to add the /the/path/you/want to your LD_LIBRARY_PATH in case of HAWQ cannot find the libraries while compiling.
We have a libraries list that you should install before compile HAWQ. The list contains the library name , version and download url.
Name | Version | Download Url |
gperf | 3.0.4 | http://ftp.gnu.org/gnu/gperf/gperf-3.0.4.tar.gz |
snappy | 1.1.3 | https://github.com/google/snappy/releases/download/1.1.3/snappy-1.1.3.tar.gz |
bzip2 | 1.0.6 | http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz |
python | 2.6.2 | https://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz |
libevent | 1.4.6 | https://github.com/downloads/libevent/libevent/libevent-1.4.6-stable.tar.gz |
json-c | 0.9 | http://oss.metaparadigm.com/json-c/json-c-0.9.tar.gz |
krb5 | 1.11.3 | http://web.mit.edu/kerberos/dist/krb5/1.11/krb5-1.11.3-signed.tar |
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 |
libgsasl | 1.8.0 | ftp://ftp.gnu.org/gnu/gsasl/libgsasl-1.8.0.tar.gz |
libxml2 | 2.7.8 | http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz |
zlib | 1.2.3 | http://zlib.net/fossils/zlib-1.2.3.tar.gz |
readline | 6 | ftp://ftp.gnu.org/gnu/readline/readline-6.0.tar.gz |
openssl | 0.9.8 | ftp://ftp.openssl.org/source/openssl-0.9.8ze.tar.gz |
protobuf | 2.5.0 | https://github.com/google/protobuf/tree/v2.5.0 |
boost | 1.56 | http://sourceforge.net/projects/boost/files/boost/1.56.0/boost_1_56_0.tar.bz2 |
bison | 2.5 | http://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz |
thrift | 0.9.1-1 | http://archive.apache.org/dist/thrift/0.9.1/thrift-0.9.1.tar.gz |
apr | 1.2.12 | http://archive.apache.org/dist/apr/apr-1.2.12.tar.gz |
libyaml | 0.1.1 | http://pyyaml.org/download/libyaml/yaml-0.1.1.tar.gz |
curl | 7.44.0 | http://www.curl.haxx.se/download/curl-7.44.0.tar.gz |
flex | 2.5.35 | http://sourceforge.net/projects/flex/files/flex-2.5.35.tar.gz/download |
libhdfs3 | git clone https://github.com/PivotalRD/libhdfs3.git Install libhdfs3 follow the steps specified in README.md | |
Get Source Code
The Apache HAWQ source code can be obtained from Github. Click "Read More" in the bottom of this article to view the source code of HAWQ on Github. You could get the source code using git clone :
git clone https://github.com/apache/incubator-hawq.git
Install Procedure
The source code includes libyarn under $HAWQ_CODE_HOME/depends directory. And you need to compile and install it by hand. Change directory to libyarn folder and read README
cd $HAWQ_CODE_HOME/depends/libyarn/
To build libyarn, some libraries listed in the README are needed. You should install the libraries first and compile libyarn follow the steps specified in the README.
The first step of the building is to check whether you have installed all the dependencies. This is done by running the configure script.This script will run a number of tests to determine values for various system dependent variables and finally create the makefile. For a default installation simply run:
./configure
You could use --prefix=/hawq/install/path to change the HAWQ install path. Otherwise HAWQ would be install to /usr/local/ .
After finished configure, you can start to build HAWQ.To start the build, run:
make
To build concurrently, run make with -j option.For example :
make -j8
The build will take a few minutes depending on your hardware. The last line displayed should be:
All of HAWQ successfully made. Ready to install.
Become root user and run :
make install
You have installed HAWQ to your system !
Start Apache HAWQ
Since HAWQ bases on HDFS, you should ensure HDFS work before we init HAWQ. You could refer details from : http://hawq.docs.pivotal.io/docs-hawq/topics/InstallingHAWQ.html#preparingtoinstallhawq.
Now you can init and start HAWQ.
cd $APACHE_HAWQ_HOME
source greenplum_path.sh
hawq init cluster
Once you have inited successful, you can start HAWQ using:
hawq start cluster
To enter the database:
psql -d postgres
You can run the create database query to test that HAWQ is running:
[gpadmin@localhost ~]$ psql -d postgres
psql (8.2.15)
Type "help" for help.
postgres=# create database tpch;
CREATE DATABASE
postgres=# \c tpch
You are now connected to database "tpch" as user "gpadmin".
tpch=# create table t(i int);
CREATE TABLE
tpch=# \timing
Timing is on.
tpch=# insert into t select generate_series(1,100);
INSERT 0 100
Time: 166.311 ms
tpch=# select count(*) from t;
count
-------
100
(1 row)
Time: 127.698 ms
Basic Operations
When you want to stop hawq cluster, run:
hawq stop cluster
Or to restart the cluster:
hawq restart cluster
The usage of command hawq is
hawq <command> [<object>] [options]
The most commonly used hawq "commands" are:
start Start hawq service
stop Stop hawq service
init Init hawq service
restart Restart hawq service
The object are:
cluster Operate hawq cluster.
master Operate hawq master.
segment Operate local segment node.
standby Operate hawq standby.
allsegments Operate all segments.
If you want to know all the hawq command , just run hawq or hawq --help. You can find all the usage of hawq command.