Installing GreenPlum & Python3.7 on Ubuntu Server

Installing GreenPlum & Python3.7 on Linux(Ubuntu) Server

首先配置SSH

1
2
3
# 在服务器端
$ ls ./.ssh
> authorized_keys

将本机的id_rsa.pub内容复制到authorized_keys中

然后可以使用Xshell直接连接,选择私钥的时候选择配对的id_rsa文件即可

安装GreenPlum

1
2
3
4
5
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:greenplum/db
$ sudo apt update
$ sudo apt install greenplum-db-6

此时已经安装好了,我们查看安装的版本

1
2
$ ls /opt
greenplum-db-6.24.3

配置环境变量

1
2
3
$ source /opt/greenplum-db-6.24.3/greenplum_path.sh
$ which gpssh
/opt/greenplum-db-6.24.3/bin/gpssh

将初始化文件拷贝到用户目录下

1
2
3
$ cp $GPHOME/docs/cli_help/gpconfigs/gpinitsystem_singlenode .
$ ls
gpinitsystem_singlenode

将主机名写入文件

1
2
3
4
5
$ hostname
node0.dingzr.risb-pg0.utah.cloudlab.us
# 创建新文件hostlist_singlenode
$ vim hostlist_singlenode
# 将hostname的输出直接粘贴到里面

创建节点对应的文件夹

1
2
3
4
$ mkdir greenplum
$ cd greenplum
$ mkdir primary master
$ cd ..

修改初始化文件

1
2
3
4
$ vim gpinitsystem_singlenode
# declare -a DATA_DIRECTORY=(/users/dingzr/greenplum/primary /users/dingzr/greenplum/primary)
# MASTER_HOSTNAME=node0.dingzr.risb-pg0.utah.cloudlab.us
# MASTER_DIRECTORY=/users/dingzr/greenplum/master
1
2
3
4
5
6
7
8
9
10
11
12
13
$ gpssh-exkeys -f hostlist_singlenode
[STEP 1 of 5] create local ID and authorize on local host

[STEP 2 of 5] keyscan all hosts and update known_hosts file

[STEP 3 of 5] retrieving credentials from remote hosts

[STEP 4 of 5] determine common authentication file content

[STEP 5 of 5] copy authentication files to all remote hosts

[INFO] completed successfully
$ gpinitsystem -c gpinitsystem_singlenode

测试是否安装成功

1
2
3
4
5
6
$ createdb demo
$ psql demo
psql (9.4.26)
Type "help" for help.

demo=#

安装python3.7

wget工具下载压缩包

1
2
3
4
$ wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz
$ tar -xzvf Python-3.7.9.tgz
$ ls
gpAdminLogs gpinitsystem_singlenode greenplum hostlist_singlenode Python-3.7.9 Python-3.7.9.tgz

进入解压后的python文件夹,安装python依赖库,并编译安装python

1
2
3
4
5
6
7
8
9
10
11
12
13
$ cd Python-3.7.9
# 安装依赖库(非常重要,不然有可能报各种奇奇怪怪的错!)
$ sudo apt-get install libbz2-dev libffi-dev libncurses5-dev libgdbm-dev liblzma-dev sqlite3 libsqlite3-dev openssl libssl-dev tcl8.6-dev tk8.6-dev libreadline-dev zlib1g-dev uuid-dev
# 有些时候安装完python后运行某些代码可能会出现for ifunc symbol `clock_gettime' segmentation fault这样的问题,我个人是这样解决的(参照这个帖子:https://stackoverflow.com/questions/58077672/python3-relink-issue-while-importing-opencv):
# $ sudo apt install python3-opencv

# 编译,注意可以在--prefix后指定目录,也可以不指定
$ ./configure --prefix=/usr/local/src/python37
# 安装
$ sudo make && sudo make install
# 链接,注意这里面的/usr/local/src/python37需要换成编译阶段--prefix后面指定的目录
$ sudo ln -s /usr/local/src/python37/bin/python3.7 /usr/bin/python3.7
$ sudo ln -s /usr/local/src/python37/bin/pip3.7 /usr/bin/pip3.7

然后需要重新source以下,并重设PYTHONHOME和PYTHONPATH,因为被greenplum改过

1
2
3
$ source /opt/greenplum-db-6.24.3/greenplum_path.sh
$ unset PYTHONHOME
$ unset PYTHONPATH

终于弄好了,至少我是这样的,很麻烦,如果有别的问题建议google一下


Installing GreenPlum & Python3.7 on Ubuntu Server
http://example.com/2023/05/23/GreenPlum/
Author
dingzr2001
Posted on
May 23, 2023
Licensed under