因为公司业务需要最近让我研究一下国内的mpp数据库,对比了几家后发现基于hawq的oushudb在各方面都尤为不错。
记录一下本人第一次在本地搭建oushudb的全过程,本章节主要讲安装前的准备工作。
本节安装之前需要准备4台主机,各个节点上即将安装的组件如下表所示:
角色主机 | oushum1 |
IP | 192.168.1.31 |
OushuDB Master | primary |
OushuDB Segment | no |
NameNode | standby |
DataNode | no |
Zookeeper | yes |
** 说明:每个节点都需要配置/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源
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
二、交换公钥,设置无密码登陆
创建一个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用户做ssh-exkeys则需要集群每台机器上都有该用户,并且密码一致。
三、安装其他节点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'
Oushu Database(简称OushuDB)是由Apache HAWQ创始团队打造的新一代云原生数据仓库,该产品采用了存储与计算分离技术架构,具有MPP的所有优点,还具有弹性,支持混合工作负载和高扩展性等优点。 同时支持公有云与私有云。高可扩展,遵循ANSI-SQL标准,具有极速执行器,提供PB级数据交互式查询能力。并且提供对主要BI工具的描述性分析支持和高级机器学习功能。兼容Oracle,GPDB和PostgreSQL,可以轻松取代传统数据仓库包括Teradata,Oracle,DB2,Greenplum和SQL-on-Hadoop引擎。并且原生支持Kubernetes容器平台,帮助企业无缝迁移到最新的云计算平台。OushuDB已在金融、电信、制造、医疗和互联网等行业得到广泛的部署和应用。