在CDH 6.3.1上安装HAWQ 2.4.0

2020-03-18 17:43:20 浏览数 (1)

一、安装环境

CDH 6.3.1集群主机: 172.16.1.124:NameNode、SecondaryNameNode 172.16.1.125:DataNode 172.16.1.126:DataNode 172.16.1.127:DataNode

二、选择HAWQ主机

在安装HAWQ之前,使用下面的步骤选择和准备所需主机。 (1)选择作为HAWQ segment的主机。记住有以下限制:

  • 每台主机都必须满足安装相应版本HAWQ的系统要求。
  • 每个HAWQ segment所在主机必须和其上运行的HDFS DataNode协同工作。
  • HAWQ master segment和standby master segment必须部署在不同的主机上。

在本实验环境中,CDH集群中的全部四台主机均作为HAWQ segment,172.16.1.124部署为HAWQ master。由于CDH没有配置NameNode HA,因此不部署HAWQ的standby master。

(2)选择运行PXF的主机。记住有以下限制:

  • PXF必须安装在HDFS NameNode和所有HDFS DataNodes主机上。
  • 如果配置了Hadoop HA,PXF必须安装在包括所有NameNode和所有HDFS Node的主机上。
  • 如果想通过PXF访问HBase和Hive,必须在将要安装PXF的主机上首先安装HBase和Hive的客户端。

由于PXF的性能较差,再有HAWQ 2.4.0本身支持外部表,因此本实验环境中不安装PXF。

(3)确认所有主机上的所需端口没有被占用 HAWQ master和standby master服务缺省使用5432端口。

三、安装前准备

以下步骤需要用root用户在全部主机执行。

1. 建立gpadmin用户和HAWQ主目录

代码语言:javascript复制
useradd --home=/opt/gpadmin/ --no-create-home --comment "HAWQ admin" gpadmin 
echo YOURPASSWORD | passwd --stdin gpadmin mkdir /opt/gpadmin
chown gpadmin:gpadmin /opt/gpadmin

将gpadmin用户加入sudo,编辑/etc/sudoers文件,添加以下一行:

代码语言:javascript复制
gpadmin ALL=(ALL) NOPASSWD:ALL

2. 创建HAWQ的本地数据目录

代码语言:javascript复制
mkdir -p /opt/gpadmin/hawq-data-directory/masterdd
mkdir -p /opt/gpadmin/hawq-data-directory/segmentdd
chown -R gpadmin:gpadmin /opt/gpadmin/

3. 安装依赖包

代码语言:javascript复制
wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
rpm -Uvh epel-release*rpm
yum -y install libgsasl
yum -y install thrift
yum -y install protobuf
yum -y install boost

三、安装HAWQ

以下步骤需要用root用户在全部主机执行。

1. 下载安装包

代码语言:javascript复制
wget https://archive.apache.org/dist/hawq/2.4.0.0/apache-hawq-rpm-2.4.0.0.tar.gz

2. 解压并安装

代码语言:javascript复制
tar -zxvf apache-hawq-rpm-2.4.0.0.tar.gz
cd hawq_rpm_packages/
rpm -ivh apache-hawq-2.4.0.0-el7.x86_64.rpm

四、配置HAWQ

以下步骤需要用root用户在172.16.1.124主机执行。

1. 创建HAWQ的HDFS数据目录

代码语言:javascript复制
su - hdfs
hdfs dfs -mkdir /hawq_default
hdfs dfs -chown gpadmin:gpadmin /hawq_default

2. 修改配置文件

代码语言:javascript复制
su - gpadmin
cd /usr/local/apache-hawq/etc/
vi hawq-site.xml

修改以下属性:

代码语言:javascript复制
<property>
        <name>hawq_master_address_host</name>
        <value>172.16.1.124</value>
        <description>The host name of hawq master.</description>
</property>

<property>
        <name>hawq_master_address_port</name>
        <value>5432</value>
        <description>The port of hawq master.</description>
</property>

<property>
        <name>hawq_standby_address_host</name>
        <value>none</value>
        <description>The host name of hawq standby master.</description>
</property>

<property>
        <name>hawq_segment_address_port</name>
        <value>40000</value>
        <description>The port of hawq segment.</description>
</property>

<property>
        <name>hawq_dfs_url</name>
        <value>172.16.1.124:8020/hawq_default</value>
        <description>URL for accessing HDFS.</description>
</property>

<property>
        <name>hawq_master_directory</name>
        <value>/opt/gpadmin/hawq-data-directory/masterdd</value>
        <description>The directory of hawq master.</description>
</property>

<property>
        <name>hawq_segment_directory</name>
        <value>/opt/gpadmin/hawq-data-directory/segmentdd</value>
        <description>The directory of hawq segment.</description>
</property>

3. 添加slaves

编辑/usr/local/apache-hawq/etc/slaves文件,增加所有主机IP:

代码语言:javascript复制
172.16.1.124
172.16.1.125
172.16.1.126
172.16.1.127

4. 将配置文件复制到其它主机

代码语言:javascript复制
scp hawq-site.xml 172.16.1.125:/usr/local/apache-hawq/etc/
scp hawq-site.xml 172.16.1.126:/usr/local/apache-hawq/etc/
scp hawq-site.xml 172.16.1.127:/usr/local/apache-hawq/etc/
scp slaves 172.16.1.127:/usr/local/apache-hawq/etc/
scp slaves 172.16.1.126:/usr/local/apache-hawq/etc/
scp slaves 172.16.1.125:/usr/local/apache-hawq/etc/

五、配置OS内核参数与限制

参考/usr/local/apache-hawq/etc/gpcheck.cnf文件修改内核参数与限制。以下步骤用root用户在所有主机执行。

1. 修改内核参数

编辑/etc/sysctl.conf,增加以下内容:

代码语言:javascript复制
kernel.sem= 250 512000 100 2048
kernel.msgmnb= 65536
kernel.msgmax= 65536
net.ipv4.tcp_syncookies= 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
kernel.msgmni = 2048
kernel.shmmax = 1000000000
kernel.shmall = 4000000000
kernel.sysrq = 1

使配置生效:

代码语言:javascript复制
sysctl -p

2. 修改限制

编辑/etc/security/limits.conf文件,增加以下内容:

代码语言:javascript复制
* soft nofile 2900000
* hard nofile 2900000
* soft nproc 131072
* hard nproc 131072

六、创建HAWQ集群

在172.16.1.124用gpadmin用户执行以下命令:

代码语言:javascript复制
cd /usr/local/apache-hawq/
source greenplum_path.sh 
cd ./bin
# 配置gpadmin用户免密登录
./hawq ssh-exkeys -h 172.16.1.124 -h 172.16.1.125 -h 172.16.1.126 -h 172.16.1.127
# 初始化集群
./hawq init cluster

七、验证HAWQ启动

在172.16.1.124用gpadmin用户执行:

代码语言:javascript复制
[gpadmin@manager/opt/gpadmin]$source /usr/local/apache-hawq/greenplum_path.sh
[gpadmin@manager/opt/gpadmin]$hawq state
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:-- HAWQ instance status summary
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:------------------------------------------------------
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Master instance                                = Active
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   No Standby master defined                           
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Total segment instance count from config file  = 4
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:------------------------------------------------------
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Current HAWQ acl type                          = standalone
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:------------------------------------------------------ 
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Segment Status                                    
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:------------------------------------------------------ 
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Total segments count from catalog      = 4
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Total segment valid (at master)        = 4
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Total segment failures (at master)     = 0
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Total number of postmaster.pid files missing   = 0
20200313:17:28:30:020934 hawq_state:manager:gpadmin-[INFO]:--   Total number of postmaster.pid files found     = 4
[gpadmin@manager/opt/gpadmin]$psql -d postgres
psql (8.2.15)
Type "help" for help.

postgres=# 

参考:

  • HAWQ技术解析(二) —— 安装部署
  • 基于Centos7和CDH5.14.2 安装HAWQ2.3.0

0 人点赞