安装准备

本节安装之前需要准备4台主机,各个节点上即将安装的组件如下表所示:

角色主机 oushum1 oushum2 oushus1 oushus2
IP 192.168.1.11 192.168.1.12 192.168.1.21 192.168.1.22
OushuDB Master primary standby no no
OushuDB Segment no no yes yes
NameNode standby active no no
DataNode no no yes yes
Zookeeper yes yes yes no

** 说明:每个节点都需要配置/etc/hosts,上表中的主机名称需要在每台机器的/etc/hosts中追加 **

192.168.1.11 oushum1
192.168.1.12 oushum2
192.168.1.21 oushus1
192.168.1.22 oushus2

配置YUM源

首先登陆到oushum1,然后切换到root用户:

ssh oushum1
su - root

有两种方式配置YUM源,第一种是配置Oushu源,通过互联网安装部署,第二种是通过下载Oushu安装包,然后配置本地源安装。

方式一:配置Oushu的YUM源,适合有互联网连接情况

Redhat/CentOS 7.0, 7.1, 7.2系统并且包含avx指令请配置以下YUM源:

wget -P /etc/yum.repos.d/ http://yum.oushu-tech.com/oushurepo/oushudatabaserepo/centos7/latest/oushu-database.repo

Redhat/CentOS 7.0, 7.1, 7.2系统但是不包含avx指令请配置以下YUM源:

wget -P /etc/yum.repos.d/ http://yum.oushu-tech.com/oushurepo/oushudatabaserepo/centos7/latest/oushu-database-noavx.repo

Redhat/CentOS 7.3系统的用户并且包含avx命令请配置如下YUM源:

wget -P /etc/yum.repos.d/ http://yum.oushu-tech.com/oushurepo/oushudatabaserepo/centos7/latest/oushu-database-cent73.repo

Redhat/CentOS 7.3系统的用户但是不包含avx命令请配置如下YUM源:

wget -P /etc/yum.repos.d/ http://yum.oushu-tech.com/oushurepo/oushudatabaserepo/centos7/latest/oushu-database-cent73-noavx.repo

方式二:下载安装包,配置本地源,适合不需一直联网安装情况

下载安装包(或通过物理介质拷贝的方式获取):

sudo su root
cd /
wget http://yum.oushu-tech.com/oushurepo/tarball/release/oushu-software/centos7/latest/oushu-software-full-latest-rhel7-x86_64.tar.gz

解压软件包并安装httpd,请用具体的版本号代替*.*.*.*,比如oushu-database-full-2.0.0.0-rhel7-x86_64.tar.gz:

tar xzf oushu-database-full-latest-rhel7-x86_64.tar.gz
yum -y install httpd
systemctl start httpd
chown -R apache:root /oushu-database-full-*.*.*.*-rhel7-x86_64

安装本地源,请用具体的版本号代替*.*.*.*,比如/oushu-database-full-2.0.0.0/setup_repo.sh:

/oushu-database-full-*.*.*.*/setup_repo.sh

关闭selinux:

setenforce 0

重建yum缓存:

yum clean all
yum makecache

上述步骤成功后,请删除压缩包,以节省磁盘空间:

rm -f /oushu-database-full-*.*.*.*-rhel7-x86_64.tar.gz

交换公钥,设置无密码登陆

创建一个hostfile文件,包含cluster中的所有机器。

cd /root
touch hostfile

编辑hostfile文件内容如下(集群各机器的hostname):

oushum1
oushum2
oushus1
oushus2

因为我们需要使用OushuDB命令行工具”hawq ssh-exkeys”来简化无密码登录设置以及使用“hawq ssh”来简化集群操作,所以我们在oushum1上先安装OushuDB:

yum install -y hawq
source /usr/local/hawq/greenplum_path.sh  #设置hawq环境变量

在集群每台机器上执行如下指令:

sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config & sudo service sshd restart

在oushum1执行:

hawq ssh-exkeys -f hostfile  #交换公钥,使得ssh时无需输入用户密码(需要输入root用户密码)

注:如果集群中的root用户密码不一致,请修改root用户密码,使其保持一致。如果使用非root用户做ssh-exkeys则需要集群每台机器上都有该用户,并且密码一致。

如何更改root用户密码:

sudo echo 'password' | sudo passwd  --stdin root

请使用有sudo权限的用户执行,在’ ‘中输入想要更改的密码:

安装其他节点YUM源

在oushum1上,通过“hawq scp”命令统一安装其他节点的YUM源:

hawq scp -f hostfile /etc/yum.repos.d/oushu-database-cent73.repo =:/etc/yum.repos.d

关闭selinux

hawq ssh -f hostfile -e 'sed -i "s/^SELINUX\=enforcing/SELINUX\=disabled/g" /etc/selinux/config'
hawq ssh -f hostfile -e 'setenforce 0'

”hawq ssh -f hostfile”会在hostfile中的所有节点上执行”-e”选项带的命令。

关闭防火墙

如果防火墙已经开启,需要关闭防火墙:

hawq ssh -f hostfile -e 'systemctl stop iptables'
hawq ssh -f hostfile -e 'systemctl disable iptables'
hawq ssh -f hostfile -e 'systemctl stop firewalld'
hawq ssh -f hostfile -e 'systemctl disable firewalld'

安装配置NTP

hawq ssh -f hostfile -e 'yum install -y ntp'
hawq ssh -f hostfile -e 'systemctl enable ntpd' #配置NTPD服务开机启动
hawq ssh -f hostfile -e 'systemctl start ntpd' #启动NTPD服务

安装java

在oushum1使用“hawq ssh”统一安装所有节点的JDK,配置JAVA_HOME,本次安装中,JAVA_HOME的路径是/usr/java/default。如果已经安装了JDK,那么只需要将已安装的JDK目录,如/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64/,软连接到/usr/java/default

hawq ssh -f hostfile -e 'yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel'
hawq ssh -f hostfile -e 'mkdir /usr/java'
hawq ssh -f hostfile -e 'ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64/ /usr/java/default'

关于数据目录

本次安装我们假设每台机器上有两个数据盘,分别mount在/data1和/data2上。在其他硬件配置下,可能有很多块盘,用户需要根据盘数的不同更改后面相应的配置信息。尤其需要注意的是HDFS的数据目录, Magma 的数据目录和OushuDB的临时文件目录。

关于IPV6

目前Magma 暂不支持IPV6,需要将/etc/hosts中 “::1 localhost” 此行注释掉。