aarch64平台安装运行cassandra 2.2
cassandra 2.2在arm64平台上安装运行的一些问题
增加JVM线程栈大小
编辑配置文件/etc/cassandra/conf/cassandra-env.sh
1 | # Per-thread stack size |
Xss参数设置为512k
如果该参数设置过小,cassandra会拒绝启动,日志文件/var/log/cassandra/cassandra.log
中会有错误信息:
1 | The stack size specified is too small, Specify at least 456k |
替换JNA库/模块
cassandra 2.2自带的JNA为4.0.0版本,不支持aarch64架构
下载当前最新版本JNA 5.17.0,并进行替换
1 | $ wget https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.17.0/jna-5.17.0.jar |
修改cassandra服务sysv rc脚本
cassandra自动的服务脚本为sysv rc风格的,systemd可以兼容,但需要修改pid文件的路径
编辑脚本文件/etc/rc.d/init.d/cassandra
,做如下修改:
1 | pid_file=/run/cassandra/cassandra.pid |
也就是pid_file从/var/run目录修改为/run目录下,因为systemd现在默认使用/run目录来存储pid文件
如果不修改,会有以下错误:
1 | cassandra.service: New main PID 1221568 does not exist or is a zombie. |
启用cassandra服务
安装完成默认是没有启用服务的
1 | $ sudo systemctl is-enabled cassandra.service |
启用服务
1 | $ sudo systemctl enable cassandra.service |
启动服务
正常启动服务就可以了
1 | $ sudo systemctl start cassandra.service |
References:
[1]Cassandra 3.10 Could not initialize class com.sun.jna.Native