专栏名称: CSDN
CSDN精彩内容每日推荐。我们关注IT产品研发背后的那些人、技术和故事。
目录
相关文章推荐
51好读  ›  专栏  ›  CSDN

使用SMACK堆栈进行快速数据分析

CSDN  · 公众号  · 科技媒体  · 2017-03-17 09:47

正文

请到「今天看啥」查看全文


Apache Mesos是一个开源的集群管理器,由加州大学伯克利分校开发。它允许跨分布式应用程序的高效资源隔离和共享。在Mesos中,这样的分布式应用程序被称为框架。

Akka

Akka是构建在JVM上运行的并发程序框架。强调一个基于actor的并发方法:actors被当作原语,它们只通过消息而不涉及共享内存进行通信。响应消息,actors可以创建新的actors或发送其他消息。actor模型由Erlang编程语言编写,更易普及。

Apache Cassandra

Cassandra最初是在Facebook开发的,后来成为一个Apache开源项目。它是一个分布式、面向列的NoSQL数据存储,类似于Amazon的Dynamo和Google的BigTable。与其他NoSQL数据存储相反,它不依赖于HDFS作为底层文件系统,具有无主控架构,允许它具有几乎线性的可扩展性,并且易于设置和维护。Cassandra的另一个优势是支持跨数据中心复制(XDCR)。跨数据中心复制实际上有助于使用单独的工作负载和分析集群。Cassandra的企业版可从DataStax (http://www.datastax.com)获得。

根据固定分区键,数据在Cassandra集群的节点上分割。其架构意味着它没有单点故障。根据CAP定理,我们可以在每个表的基础上对一致性和可用性进行微调。

Apache Kafka

在SMACK堆栈内,Kafka负责事件传输。Kafka集群在SMACK堆栈中充当消息主干,可以跨集群复制消息,并将其永久保存到磁盘以防止数据丢失。

在详细了解SMACK堆栈的各部分如何协同工作之前,我们将快速讨论Cassandra的数据模型及其在Cassandra上进行分析所面临的挑战。

Cassandra数据模型

与其他NoSQL数据存储类似,基于Cassandra应用程序的成功数据模型应该遵循“存储你查询的内容”模式。也就是说,与关系数据库相反,在关系数据库中,我们可以以标准化形式存储数据。当我们谈论Cassandra数据模型时,仍然使用术语table,但是Cassandra表的行为更像排序,分布式映射,然后是关系数据库中的表。

Cassandra支持用于定义表与插入和查询数据的SQL语言,称为Cassandra Query Language(CQL)。

当定义一个Cassandra表时,我们需要提供一个分区键,它确定数据在集群节点之间的分布方式,以及确定数据如何排序的聚簇列。当使用CQL查询时,我们只能查询(使用WHERE子句)并根据聚簇列排序。







请到「今天看啥」查看全文