简介
Cassandra 是个高级话题, 就算她变得越来越好使,用户还是可能会对初体验感到畏惧。这篇文档目的是提供一些简单的指引,教会新用户如何安装 Canssandra,最终架设起一个可用的集群(Cluster)。
第零步: 找到组织
获取项目、发布、稳定性、臭虫和特性的最佳方式,是订阅用户邮件列表(subscription required) 和参与到 #cassandra IRC 频道。
第一步: 选个版本
任何时候都可以选择一堆不同的版本:
稳定的发布
Cassandra 的稳定发布版已被充分测试,不会有严重问题(或者问题已经被获悉并且写到文档中了)。如果你在建设一个产品环境,稳定版是你的选择。
你总能从这里找到最新稳定版的下载链接:website。
测试版和发布候选
测试版和发布候选比稳定发布版更激动人心。由于 API 和磁盘存储格式会和主要版本可能会改变,尝试这些版本会让你更新先人一步。期待小白鼠们的测试和反馈!
Nightly 版本
Nightly 版本显示了当前的开发状态,她们包含了前一天添加的所有新特性,臭虫修正和新臭虫。唯一的保障是她们构建成功并通过单元测试了。Nightly 版本是尝试新特性和改动的入手捷径。但是使用有风险,请谨慎。
最新的 Nightly 版本可以在 这里 下载。
Subversion
Cassandra 的 subversion 库是开发活动活跃的地方。任何对贡献代码有兴趣的人都可以从 trunk 中检出代码。如果你在 subversion 的代码中运行,一定要常常更新,并且订阅 邮件列表 以获得最新的消息。
关于检出代码的指引可以在这里找到 website。
第二步:跑一个节点
Cassandra 往往以机器集群的方式部署,但是在单台机器上也能跑得很好。为避免一下就要对付巨大的复杂系统,玩单机是入门良径。
现在还没有安装程序,最简单的方法就是从解压的目录1 或者 SVN 检出(参见: 选择一个版本)目录直接运行 Canssandra。如果你下载的不是二进制版本,你需要先使用 ant 编译它。
发布版的样例设置 conf/storage-conf.xml 包含了一些比较推荐的默认值和注释,但是你要保证 CommitLogDirectory 和 DataFileDirectories 都存在。 另外,最好也花点时间检查一下 conf/log4j.properties,确保配置中指定的目录都存在。
Mac OS X 的一些用户可能会在运行 Java 6 的时候遇到困难。如果你持续获取 Apple 的最新更新,Java 6 就已经安装好了 (包含于 Mac OS X 10.5 Update 1 中)。 不幸的是,Apple 在默认情况下是不使用它的。 你需要做的是修改环境变量 JAVA_HOME 为 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home,并且把 /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home/bin 添加到环境变量 PATH 中。
万事俱备,只欠东风,现在你可以在命令行中运行 bin/cassandra -f2 来启动 Cassandra 了! 服务应该在前台启动(非后台方式),并且把日志打印到标准输出上。如果你没看到吓人的词汇(如 "error" 或者 "fatal"), 或者像 java stack trace 之类的东西, 那么你就成功了。请随意尝试 CassandraCli 和 ThriftInterface 的例子。遇到问题莫恐慌,冷静的看看 出岔子了!。
第三步:跑一个集群
建设一个 Cassandra 集群 几乎 就是对每个节点重复 第二步。 不过还是有一些例外。
Cassandra 的节点之间通过一种叫做 "八卦"(Gossip) 的机制交流信息,为了让她们能“八”起来,需要先把至少已有集群中的一个节点介绍给新节点,这个过程称作“播种”(Seed)。 你可以自己选一些少数稳定的节点作为种子,但是没有很爽很快的方式去完成这件工作 …… 你需要保证每个种子节点至少认识一个别的节点,别的节点也需要认识别的节点,如果落入鸡生蛋、蛋生鸡的循环就没完没了了。
除了“播种”外,你还需要设置 IP 接口,保证其他节点可以访问 ListenAddress,客户端机器可以访问 ThriftAddress。
当所有东西都配置完,节点也开始跑了,使用 bin/nodetool 工具去检验集群的状态。例如:
eevans@achilles:~$ bin/nodetool -host 98.139.220.175 ring
Address Status Load Range Ring
169048975998562660269742699624378098572
98.139.220.175 Up 0.02 GB 14183696824377310051808173385764689249 |<--|
98.139.169.152 Up 0.4 GB 28356863910078205288614550619314017621 | ^
98.139.220.176 Up 0.13 GB 42530828068625072228863933889289238187 |-->|
更多的集群机器的控制操作参见 Operations。
如果你没有足够多的机器去试验 Cassandra 集群,你可以访问 EC2 并尝试 Cassandra EC2。
第四步: 跑一堆集群——啊不,写你程序!
Cassandra 使用 Thrift 作为它的客户端接口 API。 Thrift 支持很多种编程语言的访问,所以你可以只使用 Thrift 来访问, 或者使用 高级点的客户端 来访问 Cassandra。 请参考 Thrift wiki, 开卷有益。在动手之前还可以看看 ThriftExamples 中的 Cassandra 样例。
Cassandra 的主 API/RPC/Thrift 使用的端口是 9160。 不要和 JMX 端口弄混了哦!
找个演示程序看看也会很有帮助,例如 Twissandra (Python + Django) 。
出岔子了!
如果你按照指引的步骤做了,但是没跑成功,我们很乐意帮助。为了解决问题,请告诉我们充分的信息:
- 如果你跑的不是稳定发布版,请先更新,看看问题是否重现。
-
把日志 level 设为 debug (修改 conf/log4j.properties) 并保存输出的结果。
-
在 邮件列表存档 上搜索,看看是不是别人也遇到过这个问题,是否解决了这个问题。
-
登录到 bug 追踪系统 上。
- 提交一份可以重现问题的代码。
最后,在邮件列表上提交一份包含详细内容的信息 (需要先订阅), 或者跑到 IRC (network irc.freenode.net, channel #cassandra) 上吱一声。
Footnotes:
分享到:
相关推荐
Cassandra(apache-cassandra-3.11.11-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...
Cassandra是一款分布式、高度可扩展的NoSQL数据库系统,由Facebook于2008年开源,并在随后被Apache软件基金会接纳为顶级项目。Cassandra的设计灵感来源于Google的Bigtable,旨在处理大规模的数据存储需求,特别适合...
Apache Cassandra 是一个分布式数据库系统,特别设计用于处理大规模数据,具备高可用性、线性可扩展性和优秀的性能。在这个"apache-cassandra-3.11.13"版本中,我们探讨的是Cassandra项目的其中一个稳定版本,它包含...
在本文档中,标题“Learning_Apache_Cassandra”透露了内容的主题,即学习Apache Cassandra。Cassandra是一个开源的NoSQL分布式数据库管理系统,它以高可用性和分布式架构著称。该书详细介绍了Cassandra的基本概念、...
在本文中,我们将深入探讨如何将Spring Boot框架与Cassandra数据库集成,并利用Java Persistence API (JPA) 进行数据操作。Spring Boot以其简洁的配置和开箱即用的特性,已经成为Java开发中的首选框架之一。而...
amily 是 Cassandra 数据模型的核心组成部分,用来组织和管理 Column 和 SuperColumn。在 Cassandra 中,一个 ColumnFamily 相当于传统数据库中的表,但它不遵循严格的行与列的关系,而是以键值对的形式存储数据,...
Apache Cassandra是一种高性能的分布式NoSQL数据库管理系统,适用于大规模数据存储。Cassandra 3.9版本是对之前版本的一系列改进,包括对配置文件参数的增强。配置文件是Cassandra的核心部分,其中包含了控制集群...
DevCenter 是一个强大的工具,专为数据科学家、开发人员和管理员设计,用于与Apache Cassandra数据库进行交互。这个工具提供了一个直观的用户界面,使得管理、查询和开发Cassandra数据库变得简单易行。Cassandra是一...
### Cassandra概要指南 #### 一、Cassandra的诞生与背景 Cassandra作为一个高可靠性的大规模分布式存储系统,它的诞生背景源于互联网Web2.0应用的飞速发展以及云计算技术的普及。随着用户数据量的爆炸性增长和对...
The rising popularity of Apache Cassandra rests on its ability to handle very large data sets that include hundreds of terabytes -- and that's why this distributed database has been chosen by ...
标题中提到的"Cassandra在饿了么的应用"意味着文章将讨论Apache Cassandra这个大规模分布式NoSQL数据库系统在著名的中国本地生活服务平台饿了么中的实际应用案例。描述中重复多次提及"Cassandra",这表明主题将专注...
### Cassandra架构与应用详解 #### 一、Cassandra概述与背景 Cassandra,作为一款分布式数据库,其设计初衷旨在应对互联网大规模Web2.0应用所带来的挑战,尤其是针对那些需要高并发处理、海量数据存储和快速查询...
"基于Cassandra的实时气象数据分布式存储系统" 本文主要介绍了基于Cassandra的实时气象数据分布式存储系统的设计和实现。该系统采用Cassandra作为分布式存储解决方案,旨在满足气象数据存储的高可用性和性能要求。 ...
Title: Mastering Apache Cassandra, 2nd Edition Author: Nishant Neeraj Length: 322 pages Edition: 2 Language: English Publisher: Packt Publishing Publication Date: 2015-02-27 ISBN-10: 1784392618 ISBN-...
Cassandra(apache-cassandra-4.0.1-bin.tar.gz)是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身...
**ycsb cassandra 压力测试工具** YCSB(Yahoo! Cloud Serving Benchmark)是 Yahoo 开源的一个云服务性能基准测试工具,它主要用于评估分布式数据库、键值存储和其他云服务的性能。Cassandra 是一个分布式NoSQL...
Java NoSQL Cassandra Hector详解 在当今大数据时代,非关系型数据库(NoSQL)因其灵活性、高可扩展性和高性能,越来越受到开发者的青睐。Cassandra,作为NoSQL数据库家族中的重要一员,尤其在大规模分布式存储系统...
Cassandra CLI是Apache Cassandra数据库系统的一个命令行工具,它提供了与Cassandra集群交互的能力,包括连接到远程节点、创建或更新模式(schema)、设置和检索记录及列,以及查询节点和集群元数据。这个工具主要...
在深入探讨《Cassandra实战.pdf》这一资源时,我们聚焦于Apache Cassandra数据库系统的全面解析与实践应用,这是一份详尽的技术文档,旨在为数据库管理员、开发者以及对分布式数据库技术感兴趣的专业人士提供深入...