高性能分布式No SQL数据库Aerospike(二)——安装部署

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 高性能分布式No SQL数据库Aerospike(二)——安装部署

不同发行版


服务端名称 Linux系统发行版
aerospike-server-community-3.5.9-debian6.tgz Debian 6
aerospike-server-community-3.5.9-debian7.tgz Debian 7
aerospike-server-community-3.5.9-el6.tgz Centos 6
aerospike-server-community-3.5.9-ubuntu12.04.tgz Ubuntu 12.04
aerospike-server-community-3.5.9.tar.gz 所有linux


服务端安装


访问aerospike的官网地址:www.aerospike.com/artifacts/,从中获取所需的安装资源。

下图为www.aerospike.com/artifacts/a…中的内容:


root安装


在centos中使用rpm包安装比较方便,可以同时安装server和tools包。但是rpm安装需要root权限,只能在有root权限时才能使用。安装包为特性linux发行版的安装包,如centos 6使用aerospike-server-community-3.5.9-el6.tgz,debian7上使用aerospike-server-community-3.5.9-debian7.tgz。

使用rpm安装比较简单,解压后运行asinstall脚本即可。

1671161065716.jpg


非root安装


没有root权限时,需要使用非root权限的安装方式。安装包为linux通用版安装包,如:aerospike-server-community-3.5.9.tar.gz。

1671161073442.jpg

安装后默认生成的配置文件中,最大文件描述符个数为15000个(参数proto-fd-max),可能会超过机器的配置,故在没有root权限时会无法启动。我们可以把配置文件中的参数改小,或者把系统最大文件描述符改大。不修改的错误日志如下:

Jan 09 2016 15:05:39 GMT: INFO (config): (cfg.c::3104) }
Jan 09 2016 15:05:39 GMT: CRITICAL (config): (cfg.c:as_config_post_process:3119) 1024 system file descriptors not enough, config specified 15000
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::93) SIGABRT received, aborting Aerospike Community Edition build 3.5.15
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: found 9 frames
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 0: /home/wg/aerospike-server/bin/bin/asd(as_sig_handle_abort+0x59) [0x4542b1]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 1: /lib/x86_64-linux-gnu/libc.so.6(+0x36ff0) [0x7fa4fa4ccff0]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 2: /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x39) [0x7fa4fa4ccf79]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 3: /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) [0x7fa4fa4d0388]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 4: /home/wg/aerospike-server/bin/bin/asd(cf_fault_event+0x271) [0x4e7604]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 5: /home/wg/aerospike-server/bin/bin/asd(as_config_post_process+0x232) [0x439589]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 6: /home/wg/aerospike-server/bin/bin/asd(main+0x203) [0x434ab9]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 7: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fa4fa4b7ec5]
Jan 09 2016 15:05:39 GMT: WARNING (as): (signal.c::95) stacktrace: frame 8: /home/wg/aerospike-server/bin/bin/asd() [0x4337e9]

把配置文件中文件描述符的个数从15000改成1024就可以启动了。

service {
  user wg
  group wg
  run-as-daemon
  paxos-single-replica-limit 1 # Number of nodes where the replica count is automatically reduced to 1.
  pidfile /home/alvin/aerospike-server/bin/var/run/aerospike.pid
  transaction-queues 8
  transaction-threads-per-queue 8
  proto-fd-max 1024
  work-directory /home/alvin/aerospike-server/bin/var
}

启动一段时间后,日志正常。文件描述符个数改小后会影响系统性能。


配置文件


配置文件地址:/etc/aerospike/aerospike.conf

Aerospike安装完成后,主要需要配置两个部分的内容:集群和命名空间(namespace)


集群


Aerospike的集群支持两种模式:

multicast(多播) :,基于UDP协议,集群中所有节点同时在同一个地址发布自己的信息和在该地址监听其他节点的信息,这样所有节点都能知道其他节点的存在了。因此,该模式下只需要配置一个UDP地址即可。

mesh(点播) :基于TCP协议,集群中的每个节点都和其他节点建立一对一的连接(所以称为点播),用于完成节点的发现。因此,在这种模式下,配置文件中需要配置集群中每个节点的地址。但是,当集群添加节点时,由于添加的这个节点的地址之前是不知道的,所以老的节点一般是没有配置新加节点的地址,这时也不需要重启老的节点,只需要在新加入的节点中配置集群中其他节点的地址就可以了。

multicast配置

1671161097371.jpg

mesh配置
mode mesh
port 3002
mesh-seed-address-port 10.100.1.22 3002
mesh-seed-address-port 10.100.1.23 3002
mesh-seed-address-port 10.100.1.24 3002
interval 250
timeout 10

1671161105218.jpg


1.3.2 命名空间(namespace


Aerospike的数据分为4个层次:namespace(类比关系数据库的schema)、set(类比关系数据库的table)、key(类比关系数据库的一行)、bin(类比关系数据库的一列,Aerospike对bin有一些限制:bin的名称不可以超过14个字节、bin的数目不可以超过65536)。

其中,namespace是不能动态创建的,需要在配置文件中配置后才能使用。另外,集群中每个节点关于命名空间的配置要完全相同(包括命名空间的个数,和每个命名空间的配置)

命名空间的常用配置项配置大致如下(部分参数需要根据具体环境调整):

namespace bsfit {         #bsift为命名空间的名称
replication-factor 2 #复制因子,代表每条数据在集群中保留的个数。如2表示每条数据存两份,集群中某个节点挂掉后不会丢数据
memory-size 4G #最大可以使用的内存数量
default-ttl 30d #ttl(time to live:数据存活时间)30 天, 0表示永不过期
high-water-memory-pct 70 #内存使用率达到70%,将启动LRU,清理设置过期时间的数据。默认60%
stop-writes-pct 90 #内存使用率达到90%,将不可以再写入(可以删除)。默认90%
storage-engine memory #数据存储模式,memory表示数据全部存放在内存中,这也是流立方最推荐的配置方式
# https://discuss.aerospike.com/t/why-aerospike-evicted-data/165
}


1.3.3 绑定网卡


当部署的服务器有多张网卡时,需要指定aerospike服务端监听的网卡。这个需要通过如下参数配置:

例如:

access-address 10.100.1.23

1671161120248.jpg


1.3.4 关闭Aerospike telemetry功能


社区版本的 AS,在通过 rpm/deb 包默认安装的时候,默认打开了 telemetry 的功能。默认配置是每 10 分钟,向服务器地址telemetry.aerospike.com发送 as 的使用情况。请各项目在实施部署后,关闭此功能。

关闭的方式:找到/etc/aerospike/telemetry.conf,把disable = false那行换成disable = true。完成以后重启 as 服务,并检查/var/log/aerospike/aerospike.log, 确认 telemetry 功能关闭。

[asd]
config-file = /etc/aerospike/aerospike.conf
[logging]
logfile = /var/log/aerospike/telemetry.log
loglevel = info
[main]
disable = false
interval = 600
home-url = https://telemetry.aerospike.com
user = aerospike
group = aerospike

把disable = false那行换成disable = true。完成以后重启 as 服务,并检查/var/log/aerospike/aerospike.log, 确认 telemetry 功能关闭。

日志显示:Aerospike Telemetry Agent: Aerospike anonymous data collection is INACTIVE. For further information, see www.aerospike.com/aerospike-t…

(CentOS7.x上可执行 journalctl -u aerospike -a -o cat --since "2019-06-26" --until "2019-06-27" | grep Telemetry)


管理日志文件


日志时间


从3.7.0.1版本开始支持,在service域中提供了参数log-local-time,默认为false。

默认情况下,Aerospike服务器日志在GMT中带有时间戳。将此配置设置true为将日志设置为具有本地时间戳(还显示GMT的偏移量)。

例: Dec 12 2015 18:52:39 GMT-0800: INFO (as): (as.c::494) service ready: soon there will be cake!

log-local-time从3.7.0.1版本开始支持,默认为false。

相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
目录
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
乐观锁在分布式数据库中如何与事务隔离级别结合使用
乐观锁在分布式数据库中如何与事务隔离级别结合使用
|
29天前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
68 11
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
PolarDB 分布式版 V2.0,安全可靠的集中分布式一体化数据库管理软件
阿里云PolarDB数据库管理软件(分布式版)V2.0 ,安全可靠的集中分布式一体化数据库管理软件。
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
1月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
2月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
2月前
|
关系型数据库 分布式数据库 数据库
PostgreSQL+Citus分布式数据库
PostgreSQL+Citus分布式数据库
86 15
|
2月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
41 2
|
2月前
|
SQL Java 数据库连接
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
canal-starter 监听解析 storeValue 不一样,同样的sql 一个在mybatis执行 一个在数据库操作,导致解析不出正确对象
|
3月前
|
SQL 数据库
SQL数据库基础语法入门
[link](http://www.vvo.net.cn/post/082935.html)