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之前,使用下面的步骤选择和准备所需主机。 (1)选择作为HAWQ segment的主机。记住有以下限制:
在本实验环境中,CDH集群中的全部四台主机均作为HAWQ segment,172.16.1.124部署为HAWQ master。由于CDH没有配置NameNode HA,因此不部署HAWQ的standby master。
(2)选择运行PXF的主机。记住有以下限制:
由于PXF的性能较差,再有HAWQ 2.4.0本身支持外部表,因此本实验环境中不安装PXF。
(3)确认所有主机上的所需端口没有被占用 HAWQ master和standby master服务缺省使用5432端口。
以下步骤需要用root用户在全部主机执行。
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文件,添加以下一行:
gpadmin ALL=(ALL) NOPASSWD:ALL
mkdir -p /opt/gpadmin/hawq-data-directory/masterdd
mkdir -p /opt/gpadmin/hawq-data-directory/segmentdd
chown -R gpadmin:gpadmin /opt/gpadmin/
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
以下步骤需要用root用户在全部主机执行。
wget https://archive.apache.org/dist/hawq/2.4.0.0/apache-hawq-rpm-2.4.0.0.tar.gz
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
以下步骤需要用root用户在172.16.1.124主机执行。
su - hdfs
hdfs dfs -mkdir /hawq_default
hdfs dfs -chown gpadmin:gpadmin /hawq_default
su - gpadmin
cd /usr/local/apache-hawq/etc/
vi hawq-site.xml
修改以下属性:
<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>
编辑/usr/local/apache-hawq/etc/slaves文件,增加所有主机IP:
172.16.1.124
172.16.1.125
172.16.1.126
172.16.1.127
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/
参考/usr/local/apache-hawq/etc/gpcheck.cnf文件修改内核参数与限制。以下步骤用root用户在所有主机执行。
编辑/etc/sysctl.conf,增加以下内容:
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
使配置生效:
sysctl -p
编辑/etc/security/limits.conf文件,增加以下内容:
* soft nofile 2900000
* hard nofile 2900000
* soft nproc 131072
* hard nproc 131072
在172.16.1.124用gpadmin用户执行以下命令:
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
在172.16.1.124用gpadmin用户执行:
[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=#