0
点赞
收藏
分享

微信扫一扫

【Linux部署】最新版greenplum-6.19.0详细安装步骤libnsl/libcrypto/libssl/libreadline No such file or directory问题解决

问题解决所需文件网盘资源:

链接:https://pan.baidu.com/s/1uMrhVmHlvEQ-sEGZtqhqiw 
提取码:kkab

文件列表:

libnsl-2.17.so
libcrypto.so.1.0.2k
libssl.so.1.0.2k
libreadline.so.6.2

1.环境说明

  防火墙: 开了以后需要各种设置,很可能造成各种外部的连接不成功,比如 ftp、telnet、ssh…(有些问题并不是浮在表面,你根本不知道是防火墙的锅),简单起见云服务器可以关闭防火墙而使用容易配置的安全组。
  SELinux: SELinux 策略是白名单原则,需要非常清楚安装软件使用的权限才能配置好(配置麻烦不说,头疼的是你不知道需要什么权限),而 Linux 已经有了比较完善的 Security Best Practice。在 Linux 上部署工具有更多的实践经验和可行方案去保证系统的安全,即便是没有 SELinux,是故大家普遍选择关闭 SELinux。

# 查看防火墙是否关闭 未关闭使用(systemctl stop firewalld)
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

# 查看selinux状态 未关闭修改(SELINUX=disabled)
cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
# 系统版本
[root@aliyun ~]# rpm -qi centos-release
Name        : centos-release
Version     : 8.1
Release     : 1.1911.0.8.el8
Architecture: x86_64

# jdk 版本
[root@aliyun ~]# java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)

本次安装的 Greenplum 文件为:open-source-greenplum-db-6.19.0-rhel7-x86_64.rpm,以下安装步骤均以此版本为准。

2.环境配置

# 1.修改内核参数【根据需要进行配置 本次未修改】
vim /etc/sysctl.conf
# 修改
kernel.shmall = 4000000000
kernel.shmmax = 500000000
kernel.shmmni = 4096
vm.overcommit_memory = 2
vm.overcommit_ratio = 95
net.ipv4.ip_local_port_range = 10000 65535
kernel.sem = 500 2048000 200 40960
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296

# 2.设置 RemoveIPC=no 避免 remove 掉所有的 IPC 导致的数据库宕机
echo "RemoveIPC=no" >> /etc/systemd/logind.conf
service systemd-logind restart

# 3.修改打开文件限制【根据需要进行配置 本次未修改】
vim /etc/security/limits.conf
# End of file
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072

# 4.修改 ssh 连接数【由于是单机版 本次未修改】
cat <<EOF>> /etc/ssh/sshd_config
MaxStartups 200
MaxSessions 200
EOF

修改后要重启服务器。

3.用户文件及授权

添加组及用户是很重要的,很多操作必须在特定用户下执行,之前安装 postgresql 遇到很多这方面的坑,大家小心。

# 1.添加组及用户
groupadd gpadmin
useradd -r -m -g gpadmin gpadmin
# 删除组 groupdel gpadmin 删除用户 userdel gpadmin

# 2.文件授权及密码创建
chown -R gpadmin:gpadmin /home/gpadmin/
# 设置密码
[root@aliyun ~]# echo gpadmin | passwd --stdin gpadmin
Changing password for user gpadmin.
passwd: all authentication tokens updated successfully.

# 3.创建文件夹并授权
mkdir /usr/local/greenplum
chown -R gpadmin:gpadmin /usr/local/greenplum/

4.安装

安装包放置在 /usr/local/greenplum/ 目录下:

# 【不使用】使用 rpm 安装报依赖缺失
[root@acloud greenplum]# rpm -Uvh open-source-greenplum-db-6.19.0-rhel7-x86_64.rpm
error: Failed dependencies:
        apr is needed by open-source-greenplum-db-6-6.19.0-1.el7.x86_64
        apr-util is needed by open-source-greenplum-db-6-6.19.0-1.el7.x86_64
        krb5-devel is needed by open-source-greenplum-db-6-6.19.0-1.el7.x86_64
        perl is needed by open-source-greenplum-db-6-6.19.0-1.el7.x86_64

# 1.直接使用 yum install 所需依赖自动安装
[root@tcloud greenplum]# yum install -y ./open-source-greenplum-db-6.19.0-rhel7-x86_64.rpm

# 默认安装到/usr/local下
lrwxrwxrwx   1 root root  30 Jan 21 15:41 greenplum-db -> /usr/local/greenplum-db-6.19.0
drwxr-xr-x  11 root root 238 Jan 21 15:41 greenplum-db-6.19.0

# 2.文件转到 gpadmin 名下
chown -R gpadmin:gpadmin /usr/local/greenplum*

# 3.使环境变量生效
source /usr/local/greenplum-db/greenplum_path.sh

5.初始化准备

# 1.创建实例目录(主节点及 segment 实例存储文件夹 gpnode 个数视服务器情况而定)
mkdir -p /home/greenplum/gpdata/master
mkdir -p /home/greenplum/gpdata/gpnode1
mkdir -p /home/greenplum/gpdata/gpnode2
mkdir -p /home/greenplum/gpdata/gpnode3
mkdir -p /home/greenplum/gpdata/gpnode4

# 2.修改目录属主
chown -R gpadmin:gpadmin /home/greenplum/
chown -R gpadmin:gpadmin /home/greenplum/gpdata
chown -R gpadmin:gpadmin /home/greenplum/gpdata/master
chown -R gpadmin:gpadmin /home/greenplum/gpdata/gpnode*

6.以下使用gpadmin用户操作

# 切换到 gpadmin 用户
su gpadmin

# 创建密钥对【具体操作不再贴出】
ssh-keygen -t rsa
# 发放密钥【需要输入 gpadmin 用户的密码】
ssh-copy-id aliyun

# 1.环境变量配置
# postgresql 默认端口号 5432 这里使用2345
cat <<EOF>> /home/greenplum/.bashrc
source /usr/local/greenplum-db/greenplum_path.sh
export PGPORT=2345
export PGUSER=gpadmin
export MASTER_DATA_DIRECTORY=/home/greenplum/gpdata/master/gpseg-1
export PGDATABASE=gpdb
# export LD_PRELOAD=/lib64/libz.so.1 ps 
EOF
# 配置生效
source /home/greenplum/.bashrc

# 2.节点 host 配置(单机版值配置一个 master 节点)
cat <<EOF>> /home/greenplum/hostfile_exkeys
aliyun
EOF

# 3.ssh 权限互通设置
gpssh-exkeys -f /home/greenplum/hostfile_exkeys

报错 1️⃣ 2️⃣ 3️⃣

  • (1) Error: unable to import module: libssl.so.10: cannot open shared object file: No such file or directory
  • (2) Error: unable to import module: libcrypto.so.10: cannot open shared object file: No such file or directory
  • (3) Error: unable to import module: /lib64/libcrypto.so.10: version `libcrypto.so.10’ not found (required by /usr/local/greenplum-db-6.19.0/ext/python/lib/python2.7/lib-dynload/_hashlib.so)

问题处理:

# 报错问题处理 root 用户下创建软连接【要根据 /usr/lib64 下的文件进行创建】
ln -s /usr/lib64/libssl.so.1.1.1k  libssl.so.10
ln -s /usr/lib64/libcrypto.so.1.1.1k  libcrypto.so.10
# 前边的软连接依然报错
# 发现是版本不对 使用以下两个文件并创建软连接即可
ln -s /usr/lib64/libssl.so.1.0.2k  libssl.so.10
ln -s /usr/lib64/libcrypto.so.1.0.2k  libcrypto.so.10
# 4.设置节点服务器(单机版就是 master 节点)
cat <<EOF>> /home/greenplum/seg_hosts_file
aliyun
EOF

# 5.编辑gp初始化文件
cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config /home/greenplum/gpinitsystem_config
# 修改配置文件内容
vim /home/greenplum/gpinitsystem_config
declare -a DATA_DIRECTORY=(/home/greenplum/gpdata/gpnode1 /home/greenplum/gpdata/gpnode2) 
MASTER_HOSTNAME=aliyun
MASTER_DIRECTORY=/home/greenplum/gpdata/master    
MASTER_PORT=2345
DATABASE_NAME=gpdb

# 6.初始化(-s xx代表备用主节点是xx机器 单机无需配置)
bin/gpinitsystem -c /home/greenplum/gpinitsystem_config -h /home/greenplum/seg_hosts_file

报错 4️⃣

/usr/local/greenplum-db-6.19.0/bin/postgres: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory

处理:

# 添加文件 libnsl-2.17.so 并创建软连接
ln -s /usr/lib64/libnsl-2.17.so libnsl.so.1

报错 5️⃣

psql: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory
# 添加文件 libreadline.so.6.2 并创建软连接
ln -s /usr/lib64/libreadline.so.6.2 libreadline.so.6

在这里插入图片描述

初始化,输入Y继续…

在这里插入图片描述
日志太长未全部截图,部分报错无碍。

source /usr/local/greenplum-db/greenplum_path.sh
source /home/greenplum/.bashrc

7.使用设置

# psql登录修改密码
psql -p 2345
# 修改数据库密码
alter role gpadmin with password 'gpadmin';
# 远程连接配置
vim /home/greenplum/gpdata/master/gpseg-1/pg_hba.conf
# 添加:
host     all         gpadmin         0.0.0.0/0               md5
# 重新加载配置文件
gpstop -u

使用 Navicat 验证数据库连接成功:

在这里插入图片描述

8.其他命令

gpstart #正常启动 
gpstop #正常关闭 
gpstop -M fast #快速关闭 
gpstop –r #重启

总结

第二部分的配置文件没有进行修改,这部分要根据实际情况进行配置,本文旨在单机安装最新版本的 GP 数据库,具体使用方法需要更多的学习 😄

举报

相关推荐

0 条评论