分布式 | 如何在鲲鹏(ARM)的服务器上运行 DBLE?
2021-02-01 本文已影响0人
爱可生开源社区
作者:郭奥门
爱可生 DBLE 研发成员,负责分布式数据库中间件的新功能开发,回答社区/客户/内部提出的一般性问题。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
背景
鲲鹏 920 处理器是华为在 2019 年 1 月发布的数据中心高性能处理器,由华为自主研发设计,旨在满足数据中心多样性计算、绿色计算等需求。鲲鹏处理器基于 ARM 架构。
ARM 是一种 CPU 架构,有别于 Intel&AMD 的CPU 采用的 CISC 复杂指令集;ARM CPU 采用 RISC 精简指令集(reduced instruction set computer,精简指令集计算机)。
近几年为了响应国产化的号召,越来越多的国内厂商也逐渐使用华为鲲鹏920的服务器来替代之前的服务器。最近也是有很多社区小伙伴在鲲鹏的服务器上安装dble时遇到了一些问题,这里总结了一下安装步骤。
步骤
DBLE 的 GitHub 文档《0.3 快速开始》是基于 x86 处理器的服务器的安装教程,在基于 ARM 处理器的服务器上安装 DBLE 时可能会报以下错误:
[root@huawei bin]# ./dble start
Unable to locate any of the following operational binaries:
/opt/dble/bin/./wrapper-linux-aarch64-64
/opt/dble/bin/./wrapper-linux-aarch64-32
/opt/dble/bin/./wrapper
这时我们需要先执行以下步骤:
1.补齐 wrapper 需要的文件
- 从 java service wrapper 下载并解压 ARM 架构的文件
wget https://download.tanukisoftware.com/wrapper/3.5.40/wrapper-linux-armhf-64-3.5.40.tar.gz
tar zxvf wrapper-linux-armhf-64-3.5.40.tar.gz
-
将 bin/wrapper 拷贝至 dble/bin 目录下
-
将 lib/libwrapper.so 拷贝至 dble/lib 目录下
2.安装鲲鹏版 jdk
环境变量等问题不在此赘述,自行 Google 解决(adoptopenjdk 官网、编译工具 — AdoptOpenJDK)。
3.启动 DBLE
查看 wrapper.log,如出现类似以下的日志表示 DBLE 启动成功。
STATUS | wrapper | 2021/01/08 13:45:15 | --> Wrapper Started as Daemon
STATUS | wrapper | 2021/01/08 13:45:15 | Java Service Wrapper Community Edition 64-bit 3.5.40
STATUS | wrapper | 2021/01/08 13:45:15 | Copyright (C) 1999-2019 Tanuki Software, Ltd. All Rights Reserved.
STATUS | wrapper | 2021/01/08 13:45:15 | http://wrapper.tanukisoftware.com
STATUS | wrapper | 2021/01/08 13:45:15 |
STATUS | wrapper | 2021/01/08 13:45:16 | Launching a JVM...
INFO | jvm 1 | 2021/01/08 13:45:16 | Listening for transport dt_socket at address: 8088
INFO | jvm 1 | 2021/01/08 13:45:16 | WrapperManager: Initializing...
INFO | jvm 1 | 2021/01/08 13:45:19 | Server startup successfully. dble version is [5.7.21-dble-3.20.10.99-cdc0923be854d91a0f942a9027bef1454057bde3-20210107185349]. Please see logs in logs/dble.log
4.连接验证
查看 user.xml 文件中的 shardingUser 用户,并使用 mysql 客户端建立连接,如出现以下情况表示连接建立成功
[root@localhost ~]# mysql -uroot -p123456 -P8066 -hyour_ip
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.11-dble-3.20.10.0-b29c7c91ac638509dbc4f2c146aea41c3f9f0b83-20201203053354 dble Server (ActionTech)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+----------+
| DATABASE |
+----------+
| testdb |
+----------+
1 row in set (0.04 sec)
mysql> use testdb;
Database changed
注意
- wrapper 版本为 3.5.40,不一致会报错
INFO | jvm 1 | 2021/01/08 16:12:21 | WrapperManager: ERROR - The version of the Wrapper which launched this JVM is "3.5.42"
INFO | jvm 1 | 2021/01/08 16:12:21 | WrapperManager: while the version of the Wrapper jar file currently in use
INFO | jvm 1 | 2021/01/08 16:12:21 | WrapperManager: is "3.5.40".
INFO | jvm 1 | 2021/01/08 16:12:21 | WrapperManager:
STATUS | wrapper | 2021/01/08 16:12:23 | <-- Wrapper Stopped
- 不使用鲲鹏版的 jdk 也是可以启动成功,不过在实际使用过程中可能会出现无法预知的问题(比如之前遇到使用 Oracle 的 ARM 版 jdk,DBLE 可以启动,但是队列无法工作,会阻塞任务)