Aerospike简单使用

Aerospike简单使用

  • Aerospike概述
    • Aerospike特性
    • 基本概念(名词解释)
    • 学习网址
  • Aerospike软件安装
    • Aerospike下载
    • 修改配置文件:
    • 配置文件示例:
    • 配置文件解析:
    • NetWork Configuration:
    • NetWork配置示例:
    • Hearbeat:
            • Multicast(UDP):建议使用
            • Mesh(TCP):Mesh对心跳信号使用TCP点对点连接。群集中的每个节点都保持与所有其他节点的心跳连接,从而产生网格所需的许多连接。因此,我们建议在可用时使用多播心跳协议。
    • 安装过程中遇到的问题
  • Aerospike 运行
  • Aerospike AMC安装
    • 准备

Aerospike概述

Aerospike是一个分布式,高可用的K-V类型的nosql数据库,提供类似传统数据库的ACID操作。
Aerospike是一个高性能、可扩展、可靠性强的NoSQL解决方案,支持RAM和SSD作为存储介质,并专门针对SSD特殊优化,广泛应用于实时竞价等实时计算领域。官方保证99%的操作在1ms内完成,并提供集群数据自动Rebalance、集群感知客户端等功能,且支持超大规模数据集(100T级别)的存储。
作为KV存储,Aerospike提供多种数据类型,其操作方式和Redis比较类似。除基础功能之外,Aerospike还支持AMC控制台、API等多种监控方式,有集群QPS、健康度、负载等多项监控指标,对运维比较友好。支持集群内数据的自动Rebalance,和Redis集群方案相比,维护成本下降不少。

Aerospike特性

  1. 可预见的高性能,99% 的响应可在 1 毫秒内实现,99.9% 的响应可在 5 毫秒内实现
  2. 混合架构 索引存储在RAM中,而数据存储在闪存或者SSD中
  3. 群集感知客户端软件,客户端知晓数据的存放位置,因此通常能够通过一次单跳检索到数据
  4. 无热点,使用复杂的哈希函数来确保数据均等地分布到所有可用节点,从而将需求平均分布到各资源上
  5. 数据完整性,保持了高度的一致性,或者允许对跨越多个群集和数据中心的一致性进行调节
  6. 线性扩展,能够根据需要安装到多个数据中心内分组为多个群集的多个节点上。添加节点,无需分片,无需人工干预
  7. 跨数据中心支持,不同数据中心内的群集能够自动协调,从而实现绝对的可靠性
  8. 提供API的语言,AS支持多种语言,诸如C/C++、 Java、 C#、 Python、 PHP、 Go、 Node.js、 Ruby、 Erlang、 libevent2 ©、 Perl等等

基本概念(名词解释)

概念 解释
Namespace AS数据存储的最高层级,类比于传统的数据库的库层级,一个namespace包含记录(records),索引(indexes )及策略(policies)。其中策略决定namespace的行为,包括:1.数据的存储位置是内存还是SSD。2.一条记录存储的副本个数。 3.过期时间(TTL):不同redis的针对key设置TTL,AS可以在库的层级进行全局设置,并且支持对于已存在的数据进行TTL的设置,方便了使用。
Set 存储于namespace,是一个逻辑分区,类比于传统数据库的表。set的存储策略继承自namespace,也可以为set设置单独的存储策略
Records 类比于传统数据库的行,包含key,Bins(value),和Metadata(元数据)。key全局唯一,作为K-V数据库一般也是通过key去查询。Bins相当于列,存储具体的数据。元数据存储一些基本信息,例如TTL等。
Metadata 每一条记录包含以下几条元数据1.generation(代):表示记录被修改的次数。该数字在程序度数据时返回,用来确认正在写入的数据从最后一次读开始未被修改过。2.time-to-live(TTL):AS会自动根据记录的TTL使其过期。每次在对象上执行写操作TTL就会增加。3.10.1版本以上,可以通过设置策略,使更新记录时不刷新TTL。3.last-update-time (LUT):上次更新时间,这是一个数据库内部的元数据,不会返回给客户端。
Bins 在一条记录里,数据被存储在一个或多个bins里,bins由名称和值组成。bins不需要指定数据类型,数据类型有bins中的值决定。动态的数据类型提供了很好的灵活性。AS中每条记录可以由完全不同的bins组成。记录无模式,你可以记录的任何生命周期增加或删除bins。在一个库中bins的名称最多包含32k,这是由内部字符串优化所致。(相比于HBase支持几百万列还是有一定差距,如果想直接将HBase表迁移到AS可能需要重新设计存储结构)

Aerospike简单使用_第1张图片
Aerospike简单使用_第2张图片

学习网址

官网
https://www.aerospike.com/docs/architecture/index.html

Aerospike软件安装

Aerospike下载

Aerospike下载网址
Aerospike简单使用_第3张图片

Aerospike简单使用_第4张图片

修改配置文件:

cd /etc/aerospike
vi aerospike.config

配置文件示例:

Aerospike简单使用_第5张图片

配置文件解析:

Aerospike简单使用_第6张图片

NetWork Configuration:

Aerospike简单使用_第7张图片

NetWork配置示例:

Aerospike简单使用_第8张图片

Hearbeat:

Multicast(UDP):建议使用
Mesh(TCP):Mesh对心跳信号使用TCP点对点连接。群集中的每个节点都保持与所有其他节点的心跳连接,从而产生网格所需的许多连接。因此,我们建议在可用时使用多播心跳协议。

安装过程中遇到的问题

  1. 在执行./asinstall命令 或者 service aerospike start命令不成功,提示缺少GLIBC2.14和GLIBC2.17版本
#查看glibc版本
strings /lib64/libc.so.6 | grep GLIBC  
#下载相应的glibc版本
tar -zxvf glibc-2.17.tar.gz
cd glibc-2.17
mkdir build
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install  #比较慢  等一会
  1. 提示Python版本不对
    下载并安装如下的rpm依赖包并安装:Aerospike简单使用_第9张图片

Aerospike 运行

sudo service aerospike start  		
#运行服务
sudo service aerospike status			
#查看服务运行状态(# asd (pid 16816) is running...)
grep cake /var/log/aerospike/aerospike.log
#查看运行日志(Jun 22 2014 03:35:33 GMT: INFO (as): (as.c::376) service ready: soon there will be cake!)

Aerospike AMC安装

准备

Aerospike简单使用_第10张图片

#python2.7安装
	tar -zxvf Python-2.7.9.tgz
	cd Python-2.7.9
	
	./configure --prefix=/usr/local/python-2.7.9
	make
	make install
	
	ln -s /usr/local/python-2.7.9/bin/python /usr/bin/python
	python --version
#setuptools安装
	unzip setuptools-41.6.0.zip
	cd setuptools-41.6.0
	python setup.py install
#pip安装
	tar -zxvf pip-19.3.1.tar.gz
	cd pip-19.3.1
	python setup.py installtar
#pex安装
	tar -zxvf pex-1.6.12.tar.gz
	cd pex-1.6.12
	python setup.py install
	vi /etc/profie (:/usr/local/python-2.7.9/bin)
	  . /etc/profile
#wheel
	tar -zxvf wheel-0.33.6.tar.gz
	cd wheel-0.33.6cd
	python setup.py install
#aerospike-asadm依赖服务安装
	make
	make install
	asadm
#aerospike-amc安装
rpm -ivh aerospike-amc-community-4.0.22-1.x86_64.rpm

你可能感兴趣的:(Aerospike,nosql)