作者:郭奥门

爱可生 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 可以启动,但是队列无法工作,会阻塞任务)。