1. 程式人生 > >Apache HAWQ叢集的安裝部署

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來測試的。

  1. 本文我設已經安裝好了一個非HA非Kerberos的HDFS,namenode安裝在test5,secondary namenode 安裝在test1 上,datanodes 分安裝在test2, test3, test4上。

  2. 建好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