Apache HAWQ叢集的安裝部署
最近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 manpasswdsudotarwhichgit mlocate links makebzip2net-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 installpg8000
pip --retries=50--timeout=300 installsimplejson
pip --retries=50--timeout=300 installunittest2
pip --retries=50--timeout=300 installpycrypto
pip --retries=50--timeout=300 installpyyaml
pip --retries=50--timeout=300 installlockfile
pip --retries=50--timeout=300 installparamiko
pip --retries=50--timeout=300 installpsi
pip --retries=50 --timeout=300install http://darcs.idyll.org/~t/projects/figleaf-0.6.1.tar.gz
pip --retries=50 --timeout=300install 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