GBase 8a集群V8客户端gccli适配欧拉操作系统绕行方案分析

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: GBase 8a集群V8客户端gccli适配欧拉操作系统绕行方案分析

一、概述

笔者所在项目近期出现一例GBase 8a集群V8客户端gccli适配欧拉操作系统并连接V8集群进行ETL处理的需求,因集群版本及操作系统相对老旧,在适配较新的欧拉操作系统时出现一些问题,最终通过绕行方案解决,现将需求场景及绕行方案整理如下。

二、需求场景及问题分析

某电信运营商GBase 8a数据中台集群根据客户应用端业务扩容需要,计划部署若干台新客户端主机并安装gccli工具进行数据ETL处理,根据某电信运营商国产化要求,新客户端主机必须安装国产操作系统欧拉(openEuler-22.03-LTS-x86_64)。

集群总体环境如下:

集群版本:GBase8a_MPP_Cluster-NoLicense-8.6.2_build33-R11-redhat7.3-x86_64

集群操作系统:rhel_7.3_x64

新客户机操作系统:openEuler-22.03-LTS-x86_64

现场在部署过程中发现V8版本gccli无法在欧拉系统上正常运行,运行gccli报错”缺少共享库libnsl.so.1,该库文件在操作系统不存在”。

进一步尝试安装V9版本gccli(9.5.2.46.6-centos8-x86_64.tar),但在连接集群运行SQL时出现sftp加载导出报错的问题(加载报错Failed initialization,rmt导出报错Failed to receive FIN data before closing socket)。

现场初步分析并与客户沟通了问题处理建议:

1)申请针对V8版本集群发布适配欧拉系统的客户端gccli安装包。

2)将集群升级至V9版本,升级版本跨度较大,成本及风险相对较大。

与客户沟通后的结论为,该集群目前业务繁杂,运行平稳,且包括该集群在内的其余5套集群也存在类似需求,要尽量减少问题处理风险,快速解决问题,不考虑对集群进行升级。

三、绕行方案

根据现场分析及测试验证,发现可通过给libnsl.so.1做软链接的方式解决gccli连接数据库问题,通过配置sshd兼容协议解决sftp加载导出报错问题,从而快速低成本解决上述问题,总体方法如下:

1、确认在欧拉客户机部署V8版本客户端

gccli-8.6.2_build33-R11-redhat7.3-x86_64.tar

2、在欧拉客户机创建link文件/usr/lib64/libnsl.so.1

ln -s /usr/lib64/libnsl.so.2.0.1 /usr/lib64/libnsl.so.1

3、调整欧拉客户机sshd配置文件/etc/ssh/sshd_config,修改参数KexAlgorithms、MACs

KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

修改为:

KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1

MACs hmac-sha2-512,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-256-etm@openssh.com

修改为:

MACs hmac-sha2-512,hmac-sha2-512-etm@openssh.com,hmac-sha2-256,hmac-sha2-256-etm@openssh.com,hmac-md5,hmac-sha1,umac-64@openssh.com

4、重启欧拉客户机sshd

systemctl restart sshd

三、附录-问题记录

1)V8版本gccli无法在欧拉系统上正常运行,报错缺少共享库libnsl.so.1:

[gbase@Euler-001 gccli-8.6.2_build33-R11]$ /gbase/product/gccli-8.6.2_build33-R11/gcluster/server/bin/gccli -uroot -pxxxxxx -h172.16.243.21

/gbase/product/gccli-8.6.2_build33-R11/gcluster/server/bin/gbase: error while loading shared libraries: libnsl.so.1: cannot open shared object file: No such file or directory

2)V9版本gccli(9.5.2.46.6-centos8-x86_64.tar)加载导出报错:

数据加载验证: 加载报错Failed initialization

gbase> LOAD DATA INFILE 'sftp://user:xxxxxx@172.16.243.130/home/gbase/tmp_1.tbl' INTO TABLE testdb_20211125.tmp_1 DATA_FORMAT 3 FIELDS TERMINATED BY ',' MAX_DATA_PROCESSORS 2;

ERROR 1733 (HY000): (GBA-01EX-700) Gbase general error: I/O operation on sftp://gbase:*@172.16.243.130/home/gbase/tmp_1.tbl failed with error - Failed initialization, File name sftp://gbase:*@172.16.243.130/home/gbase/tmp_1.tbl

rmt导出验证:导出报错Failed to receive FIN data before closing socket,导出文件存在,内容不全

gbase> rmt:select * from gclusterdb.nodedatamap into outfile 'nodedatamap.txt';

ERROR 1708 (HY000): 172.16.243.22:5050Failed to query in gnode:

DETAIL: (GBA-01EX-700) Remote export: Failed to receive FIN data before closing socket[51], (104)Connection reset by peer

SQL: SELECT /172.16.243.21_20_1_2023-11-02_11:40:36/ /+ to('172.16.243.130:16066') / /+ TID('917549') / gclusterdb.nodedatamap.hashkey AS hashkey, gclusterdb.nodedatamap.nodeid AS nodeid, gclusterdb.nodedatamap.data_distribution_id AS data_distribution_id INTO OUTFILE 'nodedatamap.txt' outfilemode by

ERROR:

Invalid data type. Connection: 172.16.243.22:18156.

相关文章
|
11天前
|
人工智能 弹性计算 运维
云端问道7期方案教学-使用操作系统智能助手OS Copilot轻松运维与编程
本文介绍了阿里云基础软件团队推出的操作系统智能助手 OS Copilot,旨在解决 Linux 开发与运维中的痛点。OS Copilot 基于大模型和操作系统领域知识构建,支持自然语言问答、命令辅助执行、系统运维优化及代码生成等功能,极大降低了学习成本和工作量。文章详细阐述了其产品架构、典型应用场景以及实验反馈渠道,帮助用户更高效地进行系统管理和编程。目前该产品处于公测阶段,免费提供给阿里云 ECS 实例和 Alinux 3 系统用户使用。
|
7月前
|
Java Android开发 iOS开发
深入探讨移动操作系统的性能优化:安卓与iOS的对比分析
在现代移动设备中,操作系统的性能优化至关重要。本文从系统架构、内存管理、电池续航和应用程序运行效率等多个维度,深入探讨了安卓(Android)和iOS两大主流移动操作系统的优化策略及其实际效果,旨在为开发者和用户提供更清晰的了解和选择依据。
266 0
|
4月前
|
Windows
Windows操作系统部署安装Kerberos客户端
详细介绍了在Windows操作系统上部署安装Kerberos客户端的完整过程,包括下载安装包、安装步骤、自定义安装路径、修改环境变量、配置hosts文件和Kerberos配置文件,以及安装后的验证步骤。
493 3
Windows操作系统部署安装Kerberos客户端
|
5月前
|
Linux C语言
深度探索Linux操作系统 —— 编译过程分析
深度探索Linux操作系统 —— 编译过程分析
45 2
|
5月前
|
存储 缓存 Java
性能分析之构建 Linux 操作系统分析决策树
【8月更文挑战第16天】性能分析之构建 Linux 操作系统分析决策树
46 0
性能分析之构建 Linux 操作系统分析决策树
|
6月前
|
人工智能 搜索推荐 物联网
现代移动应用与操作系统发展趋势分析
本文探讨了当前移动应用与操作系统的最新发展趋势,涵盖了移动应用开发技术、用户体验设计及移动操作系统的演进。通过分析市场上的新兴技术和未来的发展方向,为读者提供了深入了解移动科技领域的视角。 【7月更文挑战第15天】
55 4
|
5月前
|
人工智能 Cloud Native Linux
SAS对生成式AI前景分析问题之龙蜥操作系统对大模型AI的支持如何解决
SAS对生成式AI前景分析问题之龙蜥操作系统对大模型AI的支持如何解决
34 0
|
8月前
|
JSON 数据管理 测试技术
自动化测试工具Selenium Grid的深度应用分析深入理解操作系统的内存管理
【5月更文挑战第28天】随着互联网技术的飞速发展,软件测试工作日益复杂化,传统的手工测试已无法满足快速迭代的需求。自动化测试工具Selenium Grid因其分布式执行特性而受到广泛关注。本文旨在深入剖析Selenium Grid的工作原理、配置方法及其在复杂测试场景中的应用优势,为测试工程师提供高效测试解决方案的参考。
|
8月前
|
存储 算法 固态存储
半导体存储品牌企业江波龙加入龙蜥社区,完成与 Anolis OS 适配
江波龙与 Anolis OS 的成功适配,进一步验证了 Anolis OS 能满足对存储容量灵活性和系统整体稳定性的高标准要求,可以为广大用户提供优质、高性能产品。
|
7月前
|
人工智能 搜索推荐 vr&ar
现代移动应用与操作系统发展趋势分析
随着移动技术的迅猛发展,移动应用与操作系统在今天的数字化社会中扮演着至关重要的角色。本文探讨了移动应用开发的最新趋势,分析了不同移动操作系统的特点及其对应用开发的影响,同时讨论了未来的发展方向与挑战。