SCIDB集群安装
一、环境配置 安装前的准备
Ip地址 |
节点名称 |
主从关系 |
192.168.100.193 |
Work0 |
主 coordinator |
192.168.100.182 |
Work1 |
从 |
192.168.100.183 |
Work2 |
从 |
192.168.100.189 |
Work3 |
从 |
192.168.100.195 |
Work4 |
从 |
1.1配置/etc/hosts 所有节点
Root # vi /etc/hosts 添加如下信息
#ipadd
192.168.100.193 work0
192.168.100.182 work1
192.168.100.183 work2
192.168.100.189 work3
192.168.100.195 work4
1.2添加scidb用户组 所有节点
root # groupadd scidb 增加用户组
root # useradd –g scidb scidb 增加用户到用户组
root # passwd scidb 修改scidb密码
root # visudo 修改sudo用户
在root ALL = (ALL) ALL 下面添加
scidb ALL=(ALL)ALL
1.3yum源的添加 所有节点
root # cd /etc/yum.repo.d/
root # yum –y install wget
-------------------------devtoolset-3的源----------------------------
root # rpm –ivh rhscl-devtoolset-3-epel-6-x86_64.noarch.rpm (安装rpm包)
root# rm –rf rhscl-devtoolset-3-epel-6-x86_64.noarch.rpm (删除rpm包 没用了就删除哦)
----------------java-common的源------可能网络环境不好多尝试几次-----------
root # rpm –ivh rhscl-rh-java-common-epel-6-x86_64-yu1-2.noarch.rpm (安装)
root # rm –rf rhscl-rh-java-common-epel-6-x86_64-1-2.noarch.rpm (删除)
可以使用scp *.rpm work1:/etc/yum.repo.d/ 发送过去
root # ls 会出现 表示安装成功
rhscl-rh-java-common-epel-6-x86_64.repo rhscl-devtoolset-3-epel-6-x86_64.repo
1、4 sudo vi /etc/selinux/config
selinux=disabled
二、coordinator 节点配置
2.1.1 互信
#su scidb //切换用户
安装需要的软件包 yum安装就可以了
$ sudo yum -y install subversion expect openssh-server openssh
启动服务 开机自启
$ sudo chkconfig --add sshd
$ sudo chkconfig sshd on
$ sudo service sshd start
$ sudo vi /etc/sysconfig/iptables 添加如下语句
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1239 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
$ sudo service iptables restart 重启防火墙服务
2.1.2 下载源码
http://forum.paradigm4.com/uploads/db6652/original/1X/af46ea0924d43cd943a10a3c83ecf778800bf2a0.tgz
将源码放在/home/scidb 目录下
$ sudo tar –xvzf scidb-15.7.0.9267.tga
$mv scidb-15.7.0.9267 scidbtrunk //改文件名字
2.1.3 无密码传输配置
~
$ cd ~
$ ssh-keygen #不输入任何数据 默认
$ chmod 775 ~
$ chmod 755 ~/.ssh
$ exec ssh-agent bash
$ ssh-add
$ cd scidbtrunk//无密传输
$ deployment/deploy.sh access root "" "" work0 work1 work2 work3 work4
$ deployment/deploy.sh access scidb "" "" work0 work1 work2 work3 work4
----------------------有几个写几个节点--------------------------
---测试是否可行-------------
$ ssh work1 date
$ ssh work2 date
------------------------全部机器重新启动一遍------------------------
2.2 coordinator 环境配置 (work0 表示coordinator节点的IP地址)
$cd scidbtrunk
$ deployment/deploy.sh prepare_toolchain work0
-----------这一步控制好libpqxx的版本------------
rpm -e --nodeps 卸载掉全部的libpqxx-1.4.的版本
$sudo sed -i '/[epel]/a exclude=libpqxx*' /etc/yum.repos.d/epel.repo
重新执行上述语句
也可以跳过 这就需要自己手动安装libpqxx包
wget https://downloads.paradigm4.com/centos6.3/3rdparty/libpqxx-3.1-1.src.rpm
wget https://downloads.paradigm4.com/centos6.3/3rdparty/libpqxx-devel-3.1-1.x86_64.rpm
wget https://downloads.paradigm4.com/centos6.3/3rdparty/libpqxx-3.1-1.x86_64.rpm
使用 rpm -ivh *.rpm 安装 (卸载那个安装那个就好)
---------------------------------------------
$ deployment/deploy.sh prepare_coordinator work0
$ deployment/deploy.sh prepare_chroot scidb work0
------------------在这一步可能执行到mock 的安装报错------------------------
--------------使用如下方式解决
wget https://downloads.paradigm4.com/centos6.3/3rdparty/mock-1.1.24-1.noarch.rpm
wget https://downloads.paradigm4.com/centos6.3/3rdparty/mock-1.1.24-1.src.rpm
1)、sudo rpm -e --nodeps mock-*.noarch (卸载掉两个包)
2)、sduo rpm -ivh mock-1.1.24-1.noarch.rpm
3)、sudo rpm -ivh mock-1.1.24-1.src.rpm (其实失败就在这里 因为这个安装不成功)
安装完成后 直接继续向下执行
------------------------------------------------------------------------------------------------
2.3 postgres安装
$cd scidbtrunk
deployment/deploy.sh prepare_postgresql postgres postgres 192.168.100.0/24 work0
---------------------只写work0-----------------------------------
其中 192.168.100.0/24 会添加传递在/var/lib/pgsql/data/pg_hba.conf 文件内
可以通过$ ifconfig | grep Mask 查看
2.4确保postgres用户可以访问scidb源码
$ sudo usermod –G scidb –a postgres
$ chmod g+rx scidbtrunk
$ sudo -u postgres ls /home/scidb/data/scidb
-----------------------------这里配置postgres的文件--------------------------------
$su -
# cd /var/lib/pqsql/data
# vi postgresql.confg
port=5432 (去掉#注释)
#vi pg_hba.conf
将所有节点的IP加入进去
host all alll 192.168.10x.X/24 trust
#service postgresql restart
------------------------------------------------------------------------------------------------
------------------可以不配置----------------------------------------------------------------
2.5 挂载ssd
cd scidbtrunk
rm -fr stage
mkdir stage
sudo echo "tmpfs scidbtrunk/stage tmpfs size=8G,nr_inodes=80k" >> /etc/fstab
sudo mount -a
---------------------------------------------------------------------------------------------------
2.6 配置环境
$ vi .bashrc
export SCIDB_VER=15.7
export SCIDB_SOURCE_PATH=scidbtrunk//注意路径
export SCIDB_BUILD_PATH=$SCIDB_SOURCE_PATH/stage/build (接下来的make -j4 要在这个目录下执行)
export SCIDB_INSTALL_PATH=/opt/scidb/$SCIDB_VER
export SCIDB_BUILD_TYPE=RelWithDebInfo
export PATH=$SCIDB_INSTALL_PATH/bin:$PATH
$ source .bashrc//生效
2.7 安装软件包—build packages
$cd sicdbtrunk
$./run.py setup
$ cd stage/build
$ make -j8 (八线程编译安装)
$ ./deployment/deploy.sh build_fast /tmp/packages
2.8 安装scidb的rpm包
$ cd scidb
$ ./deployment/deploy.sh scidb_install /tmp/packages work0 work1 work2 work3 work4
-----------------有几个节点 就写几个几点------------------------------------------如果提示缺少安装的rpm包 就用yum安装—主从节点都有可能---------------------------------------------------------
-------这就体现出之前配置的yum源的好处—也可能不缺包 看运气了-------------------------
--------------------如果提示某个节点没有某个文件 我的解决方案如下------------------------
#cd /opt/scidb
#tar czvf 15.7.tar.gz 15.7/ (将15.7下的全部文件打包为15.7.tar.gz)
#scp 15.7.tar.gz work1:/opt/scidb/ (scidb/目录你手动创建哈 )
#scp 15.7.tar.gz work2:/opt/scidb/
有几个子节点都传递过去
[ @ work1] # tar -xvzf 15.7.tar.gz (每个节点分别解压)
至此所有的包都手动传递过去了,然后我们可以继续执行就好了
-----类似于greenplum传输安装包的安装方法---------参--------考----------------------------
------------------------------------------------------------------------------------------------------------------
3 初始化scidb数据库
$cd scidbtrunk
$ ./deployment/deploy.sh scidb_prepare scidb"scidb" mydb1 mydb2 mydb3
/home/scidb/mydb-DB 2 default 1 work0 work1 work2 work3 work4
-------------可能提示缺省python的扩展包 使用easy_install package_name------------------
Scidb 为scidb 数据库用户
"scidb" 为scidb 数据库密码
mydb1 postgres数据库用户
mydb2 postgres 数据库的密码
mydb3 postgres 数据库
-------出—现—密码—提示—表示—密码----错误------------
取消
--------------------------------------------------------------------------------------------------------------------
-----------------------------多修改重复几次就好了---------------------------------------------------------
我的执行语句为
./deployment/deploy.sh scidb_prepare scidb "scidb" scidb scidb scidbpg
/home/scidb/mydb-DB 2 default 1 work0 work1 work2 work3 work4
在使用这条语句的时 要先执行下面的语句
将scidb设置为与postgres同等级的超级用户
$ sudo -u postgres createuser --superuser scidb
为访问该数据库设置密码
$ psql –d postgres
Postgres # CREATE DATABASE scidbpg OWNER scidb;
Postgres # \c scidbpg
Scidbpg# \password scidb回车
//输入密码(scidb)
Scidb# \du 查看是否添加成功 用户列表
4 启动 关闭 scidb数据库
$ scidb.py startall scidbpg
$ scidb.py stopallscidbpg
$iquery
AFQ#
单节点环境变量的配置
$vi .bashrc
export SCIDB_VER=<your-scidb-version> # i.e. 15.7
export SCIDB_INSTALL_PATH=<dev_dir>/scidbtrunk/stage/install
export SCIDB_BUILD_TYPE=Debug
export PATH=$SCIDB_INSTALL_PATH/bin:$PATH
export MALLOC_CHECK_=3
export MALLOC_PERTURB_=127
缺省 argparse模块
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
easy_install argparse