在 TDengine 的 Issue 集中搜索关键词“ARM”,所列条目不少,也有很多用户跟我们的研发人员反馈,希望 TDengine 能尽快在 ARM 平台上跑起来。这项任务一直都在我们的研发计划内,并且,在 TDengine 最近更新的 1.6.4.0 版本上,已正式支持 ARM 64 位处理器。今后如果你想在树莓派上处理物联网、车联网、工业互联网数据,完全不需要把时间花在数据库的选择上,直接使用 TDengine 就对了!
那么, TDengine 如何在 ARM 64 位版本上编译呢? 很简单,下面以开发调试环境为例,介绍一下 TDengine 的编译过程。
编译环境
硬件环境:华为泰山ARM云服务器
kylin@kylinos:~/git$ lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
每个核的线程数:1
每个座的核数: 2
Socket(s): 1
NUMA 节点: 1
L1d 缓存: 64K
L1i 缓存: 64K
L2 缓存: 512K
L3 缓存: 32768K
NUMA node0 CPU(s): 0,1
OS环境:银河麒麟
kylin@kylinos:~/git$ uname -a
Linux kylinos 4.15.0-58-generic #64kord1k1 SMP Thu Aug 15 15:51:07 CST 2019 aarch64 aarch64 aarch64 GNU/Linux
注:在其他环境(比如不同的 ARM CPU 或其他 OS)中,可能会出现一些环境相关的问题,如果你在编译过程中遇到了,还请在 GitHub 上提交 Issue。
TDengine的编译方式
一、make方式
1、从GitHub 获取 TDengine工程
kylin@kylinos:~/git$ git clone https://github.com/taosdata/TDengine.git
2、进入工程目录完成编译
kylin@kylinos:~/git$ cd TDengine
kylin@kylinos:~/git/TDengine$ mkdir debug
kylin@kylinos:~/git/TDengine$ cd debug
kylin@kylinos:~/git/TDengine/debug$ sudo cmake .. -DARMVER=arm64
kylin@kylinos:~/git/TDengine/debug$ sudo make
编译成功后,在 build 目录下会生成 bin、lib 两个目录,其中 bin/taos、bin/taosd 就是客户端和服务端的执行程序;lib 目录里面库文件。
可以直接在 bin 目录下执行 ./taosd 启动服务端进程(使用缺省配置文件:/etc/taos/taos.cfg),执行 ./taos 启动客户端 shell。
二、打包方式
1、从GitHub获取TDengine工程:
kylin@kylinos:~/git$ git clone https://github.com/taosdata/TDengine.git
2、进入工程目录,执行编译、打包脚本:
kylin@kylinos:~/git$ cd TDengine
kylin@kylinos:~/git/TDengine$ sudo ./packaging/release.sh arm64
成功完成编译和打包后,在当前目录下,会生成debs、rpms、release三个目录:
kylin@kylinos:~/git/TDengine$ ll debs
总用量 2036
drwxr-xr-x 2 root root 4096 12月 4 16:58 ./
drwxrwxr-x 13 kylin kylin 4096 12月 4 16:58 ../
-rw-r--r-- 1 root root 2073162 12月 4 16:58 TDengine-1.6.4.1-arm64.deb
kylin@kylinos:~/git/TDengine$ ll rpms
总用量 4364
drwxr-xr-x 2 root root 4096 12月 4 16:58 ./
drwxrwxr-x 13 kylin kylin 4096 12月 4 16:58 ../
-rw-r--r-- 1 root root 4458442 12月 4 16:58 TDengine-1.6.4.1-arm64.rpm
kylin@kylinos:~/git/TDengine$ ll release/
总用量 6884
drwxr-xr-x 2 root root 4096 12月 4 16:58 ./
drwxrwxr-x 13 kylin kylin 4096 12月 4 16:58 ../
-rw-r--r-- 1 root root 4426874 12月 4 16:58 TDengine-1.6.4.1-arm64.tar.gz
-rw-r--r-- 1 root root 2611591 12月 4 16:58 TDengine-client-1.6.4.1-arm64.tar.gz
debs目录下是TDengine服务端的deb安装包;
rpms目录下是TDengine服务端的rpm安装包;
release目录下是TDengine服务端和客户端的tar压缩安装包。
不妨试一试
都有哪些设备会用到 ARM 64 位处理器呢?
比如常见的手机、平板电脑、数字电视、机顶盒、服务器、智能家居、汽车驾驶系统、还有一些可穿戴设备。这时,就有人会问了,安卓手机上是否能跑起来 TDengine?
移植一款软件除了要看硬件系统外,也要考虑操作系统。目前,TDengine 客户端支持 Windows 和 Linux,也可以通过 RESTful 接口在任何平台上连接 TDengine 服务器,但是TDengine 服务器端只支持 Linux 系统。
如果你有把 TDengine 服务器跑在其他操作系统或 CPU 上的想法,我们建议你去试一试,毕竟想法还是要有的,万一实现了呢。最近就有网友分享,将 TDengine 成功的跑在了国产 CPU 龙芯上,运行起来没有遇到任何问题。
也非常欢迎到时候你能把实现过程分享出来,集优秀想法之大成,我想,这才是 TDengine 开源的意义。
点击wwww.taosdata.com,体验 TDengine!