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

目录
相关文章
|
2天前
|
缓存 算法 关系型数据库
SQL DB - 关系型数据库是如何工作的
? 绿:O(1)或者叫常数阶复杂度,保持为常数(要不人家就不会叫常数阶复杂度了)。 ? 红:O(log(n))对数阶复杂度,即使在十亿级数据量时也很低。 ? 粉:最糟糕的复杂度是 O(n^2),平方阶复杂度,运算数快速膨胀。 ? 黑和蓝:另外两种复杂度(的运算数也是)快速增长。 如果要处理2000条元素: ? O(1) 算法会消耗 1 次运算 ? O(log(n)) 算法会消耗 7 次运算 ? O(n) 算法会消耗 2000 次运算
|
3天前
|
NoSQL MongoDB 数据库
使用MongoDB进行NoSQL数据库管理
【5月更文挑战第29天】MongoDB是流行的NoSQL数据库,以其文档存储、动态模式、高性能和丰富查询功能著称。它采用BSON格式,支持灵活的数据结构。基本操作包括安装、连接、创建数据库和集合、插入/查询/更新/删除文档。最佳实践涉及合理设计数据模型、使用索引、监控调优、备份恢复及确保安全性。MongoDB为复杂应用提供了高效的数据管理解决方案。
|
3天前
|
SQL 存储 大数据
济南sql数据库工程师
济南SQL数据库工程师是负责管理和维护SQL数据库的专业人员。以下是关于济南SQL数据库工程师的一些详细介绍: 一、岗位职责 1. 负责数据库日常巡检,及时反馈运行状况,并跟踪解决问题,确
42 21
|
3天前
|
SQL 供应链 关系型数据库
数据库sql超市
当涉及到使用SQL来管理超市数据库时,通常需要考虑多个方面,包括商品管理、订单处理、销售分析、库存管理等。以下是一个简单的超市数据库SQL示例,以及一些常见的查询操作。 **1. 数据库表设计*
43 17
|
3天前
|
SQL 监控 数据库
sql anywhere 数据库优化
\ Anywhere\对于任何数据库系统,优化都是持续的过程,旨在提高查询性能、减少资源消耗并确保数据的完整性和安全性。以下是一些建议,帮助您优化 SQL Anywhere 数据库: 1. **
38 5
|
3天前
|
SQL 监控 安全
sql数据库清除工具
在SQL数据库管理中,清理和优化数据库是一个重要的环节,特别是当数据库日志文件过大时。虽然没有特定的“SQL数据库清除工具”可以一键解决所有问题,但你可以使用多种方法和工具来清理SQL Server数
25 6
|
3天前
|
SQL 关系型数据库 MySQL
sql数据库命令
SQL(Structured Query Language,结构化查询语言)是用于管理关系数据库的标准编程语言。以下是一些常用的 SQL 数据库命令: 1. **创建数据库**: ``
24 7
|
3天前
|
SQL 存储 关系型数据库
sql建数据库
在SQL中,创建数据库的基本语法是使用`CREATE DATABASE`语句。以下是一个简单的示例,演示如何创建一个名为`mydatabase`的数据库: ```sql CREATE DA
19 0
|
3天前
|
SQL 存储 关系型数据库
sql 数据库教程
SQL数据库教程可以从以下几个方面进行介绍: 一、SQL概述与基本概念 SQL,全称Structured Query Language,即结构化查询语言,是用于管理关系型数据库的编程语言。
18 0
|
3天前
|
SQL 存储 关系型数据库
数据库更新sql
SQL Server是由微软公司开发的一种关系型数据库管理系统(RDBMS),用于存储和检索数据。以下是对SQL Server的详细介绍: 一、基本特性 1. 可扩展性:SQL Serve
http://www.vxiaotou.com