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

简介: 高性能分布式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。

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
目录
相关文章
|
7月前
|
存储 NoSQL Redis
阿里云高性能数据库Tair(兼容 Redis)收费价格,稳定可靠成本低
阿里云高性能云数据库Tair兼容Redis,提供Redis开源版和Tair企业版,支持多种存储介质与灵活扩展,适用于高并发场景。Tair具备亚毫秒级稳定延迟,保障业务连续性。价格方面,Redis开源版年费从72元起,Tair企业版年费从1224元起,具体费用根据配置不同有所变化。
|
6月前
|
人工智能 运维 NoSQL
云栖大会|AI浪潮下的NoSQL演进:下一代数据库的破局之道
AI浪潮下的NoSQL演进:下一代数据库的破局之道
|
7月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
770 8
|
7月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
483 1
|
10月前
|
存储 NoSQL 搜索推荐
NoSQL数据库分类概览
以上就是我们的NoSQL数据库奇幻之旅。每一种NoSQL数据库都有自己独特的魅力和专长,择选合适的数据库,就像在魔法世界中挑选最适合自己的魔杖,使你的数据管理变得更加高效和神奇。在当今数据驱动的时代,懂得这些数据库的秘密,就掌握了处理各种数据挑战的关键。
477 61
|
7月前
|
安全 关系型数据库 数据管理
阿里云数据库:构建高性能与安全的数据管理系统
阿里云数据库提供RDS、PolarDB、Tair等核心产品,具备高可用、弹性扩展、安全合规及智能运维等技术优势,广泛应用于电商、游戏、金融等行业,助力企业高效管理数据,提升业务连续性与竞争力。
|
10月前
|
安全 关系型数据库 数据库
瀚高股份与 Anolis OS 完成适配,龙蜥获数据库场景高性能与稳定性认证
Anolis OS 能够为用户提供更加高效、安全的数据处理与管理体验。
|
10月前
|
存储 关系型数据库 数据库
高性能云盘:一文解析RDS数据库存储架构升级
性能、成本、弹性,是客户实际使用数据库过程中关注的三个重要方面。RDS业界率先推出的高性能云盘(原通用云盘),是PaaS层和IaaS层的深度融合的技术最佳实践,通过使用不同的存储介质,为客户提供同时满足低成本、低延迟、高持久性的体验。
|
存储 NoSQL 关系型数据库
【赵渝强老师】什么是NoSQL数据库?
随着大数据技术的兴起,NoSQL数据库(Not Only SQL)得到广泛应用。它不局限于二维表结构,允许数据冗余。常见的NoSQL数据库包括Redis、MongoDB和HBase。Redis是基于内存的高性能数据库,采用单线程模型和多路复用I/O,支持高效的数据结构。MongoDB使用BSON格式存储文档,查询语言强大,类似关系型数据库。HBase基于HDFS,适合数据分析,采用列式存储,支持灵活的列族设计。视频讲解及更多内容见下文。
786 79