您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
以 Aerospike 的内存速度满足大数据分析需求
 
作者:Skylab Vanga, 来源:developerWorks 中国  发布于: 2016-10-13
  2065  次浏览      19
 

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 数据库,它允许进行实时数据分析。

   
2065 次浏览       19
相关文章

基于EA的数据库建模
数据流建模(EA指南)
“数据湖”:概念、特征、架构与案例
在线商城数据库系统设计 思路+效果
 
相关文档

Greenplum数据库基础培训
MySQL5.1性能优化方案
某电商数据中台架构实践
MySQL高扩展架构设计
相关课程

数据治理、数据架构及数据标准
MongoDB实战课程
并发、大容量、高性能数据库设计与优化
PostgreSQL数据库实战培训
最新活动计划
LLM大模型应用与项目构建 12-26[特惠]
QT应用开发 11-21[线上]
C++高级编程 11-27[北京]
业务建模&领域驱动设计 11-15[北京]
用户研究与用户建模 11-21[北京]
SysML和EA进行系统设计建模 11-28[北京]

APP推广之巧用工具进行数据分析
Hadoop Hive基础sql语法
应用多级缓存模式支撑海量读服务
HBase 超详细介绍
HBase技术详细介绍
Spark动态资源分配
更多...   

Hadoop与Spark大数据架构
Hadoop原理与高级实践
Hadoop原理、应用与优化
大数据体系框架与应用
大数据的技术与实践
Spark大数据处理技术

GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...