最近Pivotal公司发布了Apache HAWQ的企业版HDB 2.0,因功能强大,性能出色,很多人已经迫不及待想要安装来玩玩了。今天我们就来聊聊怎么部署强大的HAWQ 2.0吧。
企业版的HAWQ你花了钱基本就可以躺着等它安装好了,所以这里先不讨论,我们来讲讲社区版 HAWQ的多节点集群的安装部署。
( 想装个单节点来试试的同学也可以参考这里:https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=61320026 )
一. 系统准备工作:
首先我们准备好5台机器,机器名分别为test1,test2, test3, test4,test5,每台机器安装好CENTOS 7.2,选择软件安装时,‘Base Environment'选择'Development and Creative Workstation', ’Add-Ons for Selected Environment' 勾选 ‘Additional Development’, 'Development Tools'和‘Platform Development'。
1. 修改系统配置文件
1.1备份系统文件 /etc/sysctl.conf
1.2修改 /etc/sysctl.conf文件如下:
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
1.3 运行sysctl –p 让以上设置生效
1.4 备份并添加以下设置到/etc/security/limits.conf :
* soft nofile 2900000
* hard nofile 2900000
* soft nproc 131072
* hard nproc 131072
1.5 重新登录以使配置生效
2. 创建用户和用户组
2.1 创建用户’gpadmin’和用户组’gpadmin’
groupadd gpadmin
useradd –g gpadmin -d /home/gpadmin -s /bin/bash -m gpadmin
2.2 将gpadmin加入到sudo组
echo gpadmin ALL=\(ALL\) NOPASSWD: ALL >> /etc/sudoers
二.安装HDFS
HAWQ 2.0支持社区版HDFS和HDP(hortonworks)版,推荐使用HDP 2.4.0版本,因为HAWQ 2.0是基于HDP2.4.0来测试的。
本文我们假设已经安装好了一个非HA非Kerberos的HDFS,namenode安装在test5上,secondary namenode 安装在test1 上,datanodes 分别安装在test2, test3, test4上。
创建好hdfs目录hdfs://test5:8020/hawq ,并将目录owner改为gpadmin。
安装配置请参考以下文档(推荐使用Ambari进行图形化安装),这里我们就不多说了。
http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.4.0/index.html
三.安装HAWQ所需的第三方库
用YUM 可以很方便的来管理安装所有HAWQ需要的第三方库,安装过程中如果找不到某些库,请多尝试一些YUM的源来解决。我们这里除了CENTOS的源以外还添加了Fedora的Extra Packages forEnterprise Linux (EPEL)源。
1. 下载安装EPEL YUM 安装包:
curl https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm-o epel-release-latest-7.noarch.rpm
sudo rpm -ivh epel-release-latest-7.noarch.rpm
2. 一键安装所有的第三方库:
yum install -y man passwd sudo tar which git mlocate links make bzip2 net-tools autoconf automake libtool m4 gcc gcc-c++ gdbbison flex cmake gperf maven indent libuuid-devel krb5-devel libgsasl-devel expat-devellibxml2-devel perl-ExtUtils-Embed pam-devel python-devel libcurl-develsnappy-devel thrift-devel libyaml-devel libevent-devel bzip2-developenssl-devel openldap-devel protobuf-devel readline-devel net-snmp-develapr-devel libesmtp-devel xerces-c-devel python-pip json-c-devel apache-ivyjava-1.7.0-openjdk-devel openssh-clients openssh-server python-pip
3. PIP 安装python模块:
pip --retries=50--timeout=300 install pg8000
pip --retries=50--timeout=300 install simplejson
pip --retries=50--timeout=300 install unittest2
pip --retries=50--timeout=300 install pycrypto
pip --retries=50--timeout=300 install pyyaml
pip --retries=50--timeout=300 install lockfile
pip --retries=50--timeout=300 install paramiko
pip --retries=50--timeout=300 install psi
pip --retries=50 --timeout=300 install http://darcs.idyll.org/~t/projects/figleaf-0.6.1.tar.gz
pip --retries=50 --timeout=300 install http://sourceforge.net/projects/pychecker/files/pychecker/0.8.19/pychecker-0.8.19.tar.gz/download
四.HAWQ的编译安装及配置
1. 在test1上下载HAWQ源代码并编译安装到比如/data/hawq目录:
git clone https://git-wip-us.apache.org/repos/asf/incubator-hawq.git
cd incubator-hawq
./configure –prefix=/data/hawq
make
make install
2. 修改HAWQ的配置文件
2.1 基于HAWQ的配置文件模板来生成新的配置文件
cp /data/hawq/etc/template-hawq-site.xml/data/hawq/etc/hawq-site.xml
2.2 修改 /data/hawq/etc/hawq-site.xml,在此我们将以下值替换为实际环境中的值。修改完请确认配置文件中所有带百分号的值已被替换完。以下值用户可以根据自己的环境自行修改。
hawq_master_address_host: test1
hawq_master_address_port: 20000
hawq_standby_address_host: test5
hawq_segment_address_port: 21000
hawq_dfs_url: test5:8020/hawq
hawq_master_directory: /data/masterdd
hawq_segment_directory: /data/segmentdd
hawq_master_temp_directory: /tmp
hawq_segment_temp_directory: /tmp
hawq_global_rm_type: none
hawq_rm_yarn_address: 0.0.0.0:8032
hawq_rm_yarn_scheduler_address: 0.0.0.0:8030
2.3 修改/data/hawq/etc/slaves为:
test2
test3
test4
3. 从test1复制/data/hawq目录到所有机器上的对应目录,确保gpadmin用户对/data/hawq/etc目录有写权限。
4. 在所有机器上配置无密码SSH访问,HAWQ提供了一个工具来做这个事情
4.1 我们首先以gpadmin用户登录test1
4.2创建一个包含所有机器名的文本文件hostfile如下
~/hostfile:
test1
test2
test3
test4
test5
4.3 source greenplum_path.sh
4.4 hawq ssh-exkeys –f ~/hostfile
5. 用gpadmin用户创建好HAWQ的data目录:
mkdir–p /data/masterdd (test1, test5)
mkdir –p /data/segmentdd (test2, test3, test4)
五.初始化HAWQ
hawq init cluster
初始化成功后,HAWQ就算全部安装完成了。开始玩吧!
以上操作均已在centos7.2上验证过了,但在实际安装中还是难免会遇到各种问题,如果你遇到安装问题,欢迎通过以下途径反馈,谢谢!
Mailto: [email protected]
Jira: https://issues.apache.org/jira/browse/HAWQ