IBM
SoftLayer 上的实时分析
如今,人们想要利用云环境来托管高性能的、企业级的、实时的工作负载,以满足个人用户和企业的各种期望。Aerospike
是一个开源的、实时的 NoSQL 数据库和键/值存储,它为必须 “立刻” 感受和响应并将此作为前期成本一部分的大数据和上下文驱动的应用程序提供了内存性能。Aerospike
在全球范围内发挥作用并提供了企业级可靠性。云计算既要成为商业可行的,还要能够提供流程和数据密集型应用程序。本文将展示
IBM SoftLayer? 云上的 Aerospike 平台如何成为大数据分析和其他要求苛刻的应用程序的游戏规则改变者。
越来越多的流程和数据密集型应用程序将被用于云环境中。云的概念正在发生改变,被定位成所有类型的
IT 需求的一站式解决方案。随着目前的数据收集呈指数级增长,高质量的数据分析算法也在不断增长。云计算引发的基础架构优化正通过许多机制得到不断增加,例如:
Consolidation
Centralization
Federation
Virtualization
Containerization
Commoditization
Industrialization
我们有许多基于策略和软件定义的抽象、自动化、标准化和简化;这些提供了自适应的、随开即用的和优化的基础架构(服务器、存储器和网络元素)。为了在具有弹性的云中优雅地托管和运行应用程序,为了满足大数据世界的各种需求,我们提供了一些良好的
IT 解决方案:多种用途的内存计算、NoSQL 和 NewSQL 数据库,以及并行文件系统。
Aerospike 是一个从头开始构建的开源数据库,能够让有限的闪存、处理器和网络得到最大的应用。它旨在不牺牲可靠性和高吞吐量的情况下提供可预测的低延迟
— 提供了高可用性和 ACID 保证。Aerospike 是:
一个内存中的 NoSQL 数据库和键/值存储,能够以线速运行。
能够极大地减少您的工作负载,因为无需整合用于分片(sharding)和集群更改的逻辑。
一个改变游戏规则的数据库解决方案,消除了关于数据丢失或停机时间的担心。
以内存中的速度、全球规模和企业级可靠性来运作。
必须立刻提供感受和响应的实时大数据或上下文驱动的应用程序的理想选择。
在本文中,将了解如何将 Aerospike 迁移到 IBM SoftLayer
云环境,并将其配置为满足您的需求。一个示例应用程序展示了 Aerospike 在利用数据密集型工作负载方面的能力。
实时分析的内存计算需求
Systems, Applications and Products
in Data Processing (SAP) SE 公司一直倡导用其 HANA 平台来管理整个公司,包括
任务关键型事务处理应用程序,比如 ERP 和 CRM。
分析以前由单独的数据库管理系统 (DBMS) 处理的需求,这些系统以数据仓库和数据集市为基础。
IBM 提供了 BLU Acceleration? for DB2?,后者将柱状压缩和内存处理相结合,以便加快分析。Teradata
引入了一项 Intelligent Memory 功能,能够将最常被查询的数据自动移入到 RAM 中,确保尽可能快地查询响应。
Aerospike 无疑导致出现了促进内存 NoSQL 数据库的产品包。还带来了
SAP 的所有内存 HANA 平台与 Aerospike 之间的显著技术差异,并宣称其内存选项的部署是无中断的(没有翻录和替换现有的应用程序)。我们的重点是探索商业背景下对速度的需求。一些商家声称,内存速度需求是真实存在的,而且后续商业利益可能是巨大的。
关于 Aerospike
Aerospike 服务器向外扩展,形成一个无共享的集群,透明地对数据进行分区,并跨节点并行处理数据。集群中的节点都是相同的;您可以从使用两个硬件开始,随后添加更多的硬件。集群可以进行线性扩展。
用例
Aerospike 是一个键/值存储,通常被用作缓存,或被用作具有持久性的存储,比如上下文存储。上下文存储可用于:
1.服务器端会话存储
2.cookie 存储
3.设备 ID 存储
4.ID 映射
5.用户首选项或用户配置文件,以便获得实时推荐和个性化 Web 门户上的用户体验
6.电子商务
7.旅游网站
Aerospike 还是可供实时竞价平台选择的数据库,这些平台可以显示广告、移动设备内容、视频、社交媒体、游戏、本地广告和
Internet TV。
对于大数据应用程序
在人们访问网站并使用移动应用程序来单击、滑动或执行类似操作时,他们留下了一些数据线索,其中包括:页面视图和来自他们的可穿戴设备(比如活动追踪器)的传感器数据;以及他们自己的事物,比如他们自己家中的光线、烟雾和温度传感器。新一代的应用程序正在使用此类数据或上下文来预测需求和作出预测。
对于上下文驱动应用程序
上下文驱动的应用程序包括数字广告、多渠道营销、电子邮件营销、动态内容服务、身份管理、跨渠道支持和忠诚度管理平台。家喻户晓的应用包括:旅游门户网站、电子商务门户网站(具有动态的产品定价和库存管理)、电子商务搜索和个性化产品推荐、网络安全性、欺诈检测和类似的应用。
用 Aerospike 实现大数据分析
如今的 Web 规模的企业级应用程序架构通常包含 Aerospike,Aerospike
落后于 Web 应用程序层,但超越了遗留的 DBMS 或 HDFS 集群 。大量(PB 字节)的档案和历史数据被存储在低成本的旋转驱动器上。来自
“HDFS 分析” 的洞察或数据段被定期移动到 Aerospike 中。然后,这些洞察与存储在 RAM
或 Aerospike 上的闪存中的数 TB 的实时数据相结合。应用程序使用这些丰富的用户上下文以及 Aerospike
中的 “热分析”(即大规模分布式聚合)来制定最好的决策和提供建议。
您还可以配置 Aerospike 来存储最新的数据,自动删除时间久远或过期的数据。图
1 显示了基于 Aerospike 的大数据分析的架构。
图 1. 基于 Aerospike 的大数据分析的架构
Aerospike 是一个行存储器,数据被存储在记录(键/值)中,组成了集合和命名空间(表)。每个
128K-2MB 的记录都可以包含可立即更改的值(地图、列表、整数、字符串和 blob 类型)。
示例应用程序
我们的示例应用程序表明,键/值存储顶部的 Aerospike 数据结构是使用
Aerospike 将应用程序编写为唯一数据库的有效方式。该示例应用程序描述了一个类似 Twitter
的应用程序的设计与实现。代码很容易理解,但非常可靠,可用作使用 Aerospike 技术的基础。您还可以使用该示例应用程序作为实现扩展的种子应用程序。
示例应用程序的前提条件:
Aerospike 服务器
Aerospike Java 包客户端
在 IBM SoftLayer 云中使用 Aerospike 的最低要求
内存 (RAM)
您需要 4 GB 的 RAM。因为索引被存储在内存中,所以内存量会限制硬件可以存储的行数。Aerospike
对内存的使用非常高效,对于索引而言,每一行(对象或记录)只需 64 字节的内存。每 GB 的内存可以索引
1600 万行,4 GB 内存配置可以索引 6400 万对象。要进行开发,您至少要提供 2 GB 的 RAM。
CPU
您需要一个四核的 CPU。虽然在 CPU 上没有直接的依赖关系,但您可能会发现,CPU
会随着系统中断而迅速饱和。我们的示例使用了 8 GB 的 RAM,因为我们将在单个节点上安装 Aerospike
实例和 Aerospike 管理控制台。(在不同的节点中,都会有安装 Aerospike 和管理控制台的选项,所以,如果需要的话,我们可以选择两个节点的选项)。
您需要通过 SoftLayer 门户从 IBM SoftLayer
云中获得一个 VM。VM 的最低配置是 8 GB 的 RAM、25 GB 磁盘存储和两个内核。该 VM
能够在所有主要 Linux 发行版本中正常工作。我们概念验证 (PoC) 示例应用程序是使用 CentOS
64 位来实现的。
主机名
aerospikepoc.softlayer.com
地址:10.76.60.39 / 184.173.49.2
用户
root / xxxxxx
安装 Aerospike
要安装 Aerospike,请打开您的 VM 会话,然后按照下面的步骤进行操作。
在命令行中,输入清单 1 中的命令。
清单 1. 获得 aerospike.tgz 文件
cd /usr wget -O aerospike.tgz 'http://aerospike.com/download/server/latest/artifact/el6' |
您的屏幕将会显示 HTTP 请求和连接信息,如下例所示。
http 请求和连接消息 您会在主机中的 /usr 目录下看到 aerospike.tgz
文件,如图 2 所示。
图 2. /usr 目录中的 aerospike.tgz 文件
包含 aerospike.tgz 文件的 /usr 目录 在安装
Aerospike 之前,您必须:
1.关闭 SELinux。在命令行中,输入 SELINUX=disabled,如下所示。
2.关闭 IPTables。在命令行中,输入 chkconfig iptables
off,如下所示,然后输入 iptable stop。
3. 打开 NTP。在命令行中,输入清单 2 中所示的命令。
清单 2. 打开 NTP
sudo /sbin/chkconfig ntpd on sudo ntpdate pool.ntp.org /etc/init.d/ntpd start |
4.转到 Aerospike 目录。在命令行中,输入 cd /usr
命令。
5.解压缩 aerospike.tgz。在命令行中,输入 tar
-xvf aerospike.tgz 命令。您会看到一个由包中的工具、文件和许可组成的简要列表。
安装并启动 Aerospike 服务器和工具
要安装 Aerospike 服务器和工具包:
1. 在命令行中,输入清单 3 中的命令。
清单 3. 开始 Aerospike 安装
cd /usr/aerospike-server-community-3.4.1-el6 ./asinstall |
在安装了 Python、许可、文件和群组之后,您会在屏幕上看到消息。
在完成安装之后,服务器应该已经做好准备,可以开始使用默认配置文件。(参见目录结构,了解有关的更多详细信息。)
2.Aerospike 使用了几个目录来存储工具、系统文件和数据文件。要获得所使用的目录的描述,或者想要手动管理文件(通常通过
Aerospike 工具来管理它们),请在命令行中输入 /opt/aerospike。
aerospike 目录是在通过 Linux 包管理来安装 Aerospike
包时由 Aerospike 包创建和管理的。它包含几个子目录,其中一些是由工具包创建的,另外一些则是由服务器包创建的,并在运行服务器期间进行维护。如下所示,子目录还包括
bin、data、doc、examples、lib、cmd、sys 和 usr。
要启动 Aerospike 服务器,请在命令行中输入清单 4 中的命令。
清单 4. 启动 Aerospike 服务器
cd /etc/init.d ./aerospike start |
在屏幕上,您会看到一个与下列清单类似的清单:abrt-ccpp、abrtd、abrt-oops、acpid、aerospike、atd、auditd、blk-availability、cpuspeed、crond、functions、haldaemon、halt、htcacheclean、HTTPd、ip6tables、iptables
和 irqbalanc。
要检查服务器状态,请在命令行中输入 /aerospike status。
安装 Aerospike 客户端 Java 包
要安装 Aerospike 客户端 Java 包,可以使用 WinSCP
工具将 aerospike-client-java-3.0.33.tgz 包复制到 /usr 目录。要解压缩该包,请在命令行中输入
tar -xvf aerospike-client-java-3.0.33.tgz。
安装 Aerospike Management Console
手册
从 Aerospike 文档 网站下载包含 Aerospike Management
Console (AMC) 手册的文件,然后通过输入清单 5 中的命令,使用 WinSCP 工具将它移动到
/usr 目录。
清单 5. 将文档放入 /usr 目录
cd /usr yum install aerospike-amc-community-3.5.0-el5.x86_64.rpm |
您会看到已安装的插件和已解析的依赖关系。
启动 AMC 服务器
要启动 AMC 服务器,请转到 amc 目录,并在命令行中输入清单
6 中的命令。
清单 6. 启动 AMC 服务器
cd /etc/init.d ./amc start |
要检查 AMC 服务器的状态,请在命令行中输入 ./amc status。输出显示
AMC 正在运行。
现在,您可以通过输入清单 7 中的命令来启动 Aerospike 服务器。
清单 7. 启动 Aerospike 服务器
cd /etc/init.d ./aerospike start ./aerospike status |
然后,在您的浏览器中使用 URL http://184.173.49.2:8081;这会打开如图
3 中所示的窗口。
图 3. 连接到一个节点
输入您的 Host Name 或 IP,然后单击 Connect
来查看 Aerospike 仪表板,该仪表板已显示在图 4 和图 5 中
图 4. Aerospike 仪表板
图 5. Aerospike 仪表板(续)
使用 Aerospike
在 Aerospike 主仪表板屏幕的顶部,可以从下面选项中进行选择(企业版会拥有其他页面):
Dashboard
Statistics
Definitions
Jobs
单击窗口右上角的 Change Cluster 链接来监视另一个集群。
您可以通过更改 Snapshot for last 值来更改抓取快照的时间间隔。图
6 中的 Statistics 面板显示了结果。
图 6. Statistics 视图
选择 Aerospike Dashboard 顶部的 Definitions
来查看名称空间的定义,如图 7 所示。
图 7. Definitions 仪表板
您可以使用 System Monitor 来检查集群的健康情况。在
VM 命令行中,输入 asmonitor 命令。示例输出显示了一个初始配置文件和集群中的一个主机的创建:10.76.60.39:3000。
输出显示了监视器的三种类型
1. info 提供了关于 Aerospike 集群的高级信息。
2.latency 提供了集群吞吐量和延迟时间的详细信息
3.printconfig 显示了节点的配置(其实际输出)。
4.要退出监视器选择,请在 VM 命令行中输入 exit 命令。
5.将测试数据添加到 Aerospike
6.要将测试数据添加到 Aerospike,请输入清单 8 中的命令。
清单 8. 将测试数据添加到 Aerospike
ascli put <ns> <set> <key> <record> ascli put test testset testkey1 '{"name": "John"}' |
基于您输入到磁盘中的数据和 RAM 的使用,使用情况可能会发生改变,如图
8 所示。Cluster Throughput (Hide) 也将显示一些变化。
图 8. 集群磁盘使用情况
管理任务
要启动 Aerospike 服务器,请在命令行中输入 sudo service
aerospike start
要验证 Aerospike 正在运行,请在命令行中中输入 sudo
service aerospike status。
AMC 服务器任务
要启动 AMC,请在命令行中中输入 sudo /etc/init.d/amc
start。
要停止 AMC 服务器,请在命令行中输入 sudo /etc/init.d/amc
stop。
要重新启动 AMC 服务器,请在命令行中输入 sudo /etc/init.d/amc
restart。
要查看 AMC 服务器是否正常并正在运行,请在命令行中输入 sudo
/etc/init.d/amc status。
要更改密码,请在命令行中输入清单 9 中的命令。
清单 9. 更改密码
sudo /opt/amc/bin/reset_password [-u <username>] [-p <password>] |
此命令中的选项是:
-u:可选用户名(目前只允许使用 admin)。
-p:可选新密码。如果没有指定,那么默认密码将是 admin。
要查看服务器日志,请在命令行中输入清单 10 中的命令。
清单 10. 查看服务器日志
var/log/aerospike/aerospike.log grep cake /var/log/aerospike/aerospike.log |
结束语
对大量的、流动的和多结构的数据执行实时分析并不容易;我们需要多层面的解决方案和平台。获取关于大数据和快速数据的可行洞察是产品供应商面临的一个关键挑战。
Aerospike 是一个创新性的解决方案,用于简化和精简实时分析,且不损害任何技术要求。借助
Aerospike,在您踏上大数据实时分析之旅之前,性能、可用性、可扩展性和安全性方面都可以得到充分保证。Aerospike
最重要的优势是系统内存中的 NoSQL 数据库,它允许进行实时数据分析。
|