Cassandra安装方法:
首先确保安装了JDK。
然后,修改配置文件,cassandra-0.7.6-2的conf下有以下几个配置文件:
(1) access.properties:设置每个数据库或者表的访问权限
(2) cassandra.yaml:主配置文件,包括日志路径,数据存放路径,各种参数配置等
(3) cassandra-topology.properties:配置网络的拓扑结构
(4) log4j-server.properties:log4j的配置选项
(5) passwd.properties:配置用户密码,与access.properties配合使用
对于简单的使用,只需配置cassandra.yaml文件:
(1) 集群名称cluster_name:同一个集群中的集群名称应该一样。
(2) 数据存放路径data_file_directories:可以根据情况配置一个有写权限的路径
(3) commit log路径commitlog_directory:同上
(4) saved cache路径saved_caches_directory:同上
(5) 日志文件路径log4j.appender.R.File:同上(这个选项在log4j-server.properties文件中)
此外,还需要修改服务监听的地址和thrift访问地址,即ListenAddress和ThriftAddress,配置文件默认监听的都是localhost:
<!– Cassandra节点之间通信的监听地址,这里设置所在节点的ip–>
<ListenAddress>100.200.3.1</ListenAddress>
<!– 这个是Thrift监听的地址,建议设置为0.0.0.0 –>
<ThriftAddress>0.0.0.0</ThriftAddress>
经过上面的配置就可以启动节点了:
进入bin目录,直接执行:./cassandra。
Cassandra实战 笔记-《Cassandra内部数据存储结构》
Cassandra
KK: [kə’sændrə]
DJ: [kə’sændrə]
n.
1. 【希神】卡珊德拉(特洛伊女预言家)
2. 凶事预言家不为人所信的预言家
有关希腊神话人物Cassandra的传说
Cassandra的配置文件可以对Cassandra中的数据进行配置。cassandra.yaml 中关于存放数据信息的配置如下:
数据信息一共分为以下3类:
在data目录下,Cassandra 会将每一个 Keyspace 中的数据存储在不同的文件目录下,并且 Keyspace 文件
目录的名称与 Keyspace 名称相同。
假设有两个 Keyspace,分别为 ks1 和 ks2,但在 data目录下,将看到3个不同的目录:ks1,ks2和 system。其中 ks1 和 ks2 用于存储系统定义的两个 Keyspace 的数据,另外一个 system 目录是 Cassandra 系统默认的一个 Keyspace,叫做 system,它用来存储 Cassandra 系统的相关元数据信息以及 HINT 数据信息。
当 Cassandra 有数据需要更新时,第一个记录这个更新的地方就是 Commitlog。
Commitlog由如下两个部分构成:
CommitLog – xxx.log 、 CommitLog – xxx.log.header 。
在 CommitLog – xxx.log 文件中,保存了每一次更新操作的值。
在 CommitLog – xxx.log.header 文件中,记录了哪些数据已经从 memtable 中写入 SSTable 中。
通过log. header文件中记录的元数据信息, Cassandra 可以及时删除不必要的Commitlog文件,减少磁盘的占用量,并在Cassandra重启时,加快从Commitlog中恢复数据的速度。
Commitlog文件的大小可以在配置文件中指定,默认是128MB。
当一个Commitlog文件大小超过设置的阈值后,将会新建一个Commitlog,并将更新数据写人这个新的文件中。
Cassandra提供了两种记录Commitlog的方式:周期记录( periodic)和批量记录( batch)。如果使用周期记录的方式,需要在配置文件进行如下配置:
Cassandra会每次更新信息将写人 Commitlog 中,并且每隔一定的时间间隔( commitlog-sync_ period in ms )调用 org apache. cassandra. io. util. BufferedRandomAccessFile. syne() 同步 Commitlog 文件。
如果使用批量记录的方式,需要在配置文件进行如下配置:
Cassandra会缓存每次更新信息,每隔一定的时间间隔( commitlog sync_ batch _window_in_ ms )调用 org. apache. cassandra. io. util. BuferedRandomAccessFile. syne () 同步Commitlog 文件,最后将之前缓存的更新信息写人Commitlog中。
如果不允许数据丢失,可以使用周期的方式记录 Commitlog。如果写入数据量非常大,同时可以承担由于机器可能宕机导致的数据丢失的风险,则使用批量记录的方式记录 Commitlog。
在实际的使用中,可以根据情况来选用合适的 Commitlog记录方式。
数据写入 Commitlog 后,将缓存在 Memtable 中。
Cassandra 中每一个 Memetable 只为一个 ColumnFamily 提供服务。
当下面3个条件中任意个满足后,会将Memtable中缓存的数据写入磁盘,形成一个SSTable文件。
上面提到的3个参数都可以在配置文件中进行设置,Cassandra 为每一个ColumnFamily提供单独的配置。
每当有数据进人 Memtable 中时,会将数据保存到成员变量 ColumnFarmilies 中,并解析这个数据,排除重复或者是已经过期的数据。具体实现如下:
当Cassandra需要将Memtable中缓存的数据写人磁盘时,会按照内存中Key的顺序写人SSTable中。
使用 Memtable 的优势在于:将随机 IO 写变为顺序 IO 写,降低大量的写操作对存储系统的压力。
Cassandra 中的 Memtable 会缓存客户端写入的数据,当Memtable中缓存的某一个ColumnFamily中的数据量( 对应配置文件中的 memtable_ throughput_ in mb 和 memtable_ operations_in_ millions 或者超过上一次生成SSTable的时间(对应配置文件中的 memtable flush_ after_mins )后,Cassandra 会将Memtable中对应的ColumnFamily的数据持久化到磁盘中,生成一个SSTable文件。
如ColumnFamily名称为Cfl的一个SSTable文件由如下文件组成:
其中,“Cf1”为ColumnFamily的名称“e” 为版本的标识(这个标识在0.7之前的版本中是没有的)“1”代表这是名称为Cfl的ColumnFamily的第一个SSTable,这个数字会随着新的SSTable文件的生成不断增加“Data”、“Filter”、 “Index”和“Statistics” 分别代表 SSTable 4个不同组成部分,它们的作用各不相同。
在Cassandra中,除了用户自己定义的 Keyspace 之外,还有一个特殊的 Keyspace :名称为system的系统表空间。
用户不能在 Cassandra 中创建名为 system 的 Keyspace,只能由 Cassandra 系统自动创建。系统表空间的主要有以下两个作用:
如果系统首次启动,Cassandra 将会自动在data目录下创建系统表空间,并将系统元数据信息存放在系统表空间中。以后启动的过程中,Cassandra 将会直接从系统表空间中读取系统元数据信息。
如果 Cassandra 发现某一个节点宕机,就会将发送给宕机节点的数据以 HINT 的形式发送给另外台 Cassandra 服务器。接收到 HINT 数据的 Cassandra 服务器将数据缓存到系统表空间中,当其发现宕机的 Cassandra 恢复后,将缓存 HINT 数据发送给恢复的服务器,完成数据传输后,将缓存的 HINT 数据从系统表空间中删除。
本章从原理上分析和讲解了 Cassandra 的内部数据存储结构Commitlog、Memtable、SSTable和构成SSTable的4个子文件。了解Cassandra的内部数据存储构造有利于为基于Cassandra的应用程序设计合理的数据模型,以及找出造成读写瓶颈的原因。另外还介绍了Cassandra的系统表空间,了解了整个系统元数据管理的机制。
如何设置cassandra用户名和密码
Cassandra,卡珊德拉或翻译为凯珊卓,希腊文:Κασσάνδρα。特洛伊国王普里阿摩斯(King Priam)的女儿。古希腊神话中又一个可怜的悲剧人物。
(古希腊神话之所以那么震撼,就在于他的悲剧基调,这样的基调是用于古希腊人对命运的认识。他们认为命运产生悲剧,命运的主宰是连众神之神的宙斯都无能为力的)
Cassandra作为祭祀住在阿波罗神殿里,她的美貌打动了阿波罗,于是阿波罗赋予她预言的能力。(还有一种传说是:Cassandra住在阿波罗神庙里,有一天晚上,一条神庙里的蛇在Cassandra熟睡中舔了她的耳朵,从此,Cassandra便可以听到未来了。)作为回报,阿波罗向Cassandra提出发生肉体关系的要求,结果被Cassandra拒绝了。阿波罗一怒下向她施以诅咒:凡她说出口的预言将百发百中,然而谁也不信以为真,她的预言能力将成为她日后无尽痛苦的根源。在戏剧
《阿加门农》中,此故事似乎被描述为Cassandra曾许诺阿波罗,她愿意做阿波罗的妻子,但是Cassandra并没有遵守诺言,所以她遭受了惩罚。
Cassandra在特洛伊被破城之前,预言过特洛伊木马计,以及阿迦门农之死和自己的终结。正因为她拥有预知能力却没有人相信她,她对此无能为力,才感到痛苦万分。
在特洛伊战争之后,Cassandra避难于雅典娜神庙,但却遭到小埃阿斯Ajax the Lesser 强暴(可怜的女人啊)。前面的朋友说阿迦门农杀死了小埃阿斯,但是还有一个版本是说小埃阿斯是被海神波塞冬杀死的,或者又说是被雅典娜杀死的。
而Cassandra的去世,也有两种说法:一说她在希腊舰队归航途中船沉丧命,另一说认为她被克吕泰涅斯特拉杀害。
In Greek mythology, Cassandra was the daughter of King Priam and Queen Hecuba of Troy. Her beauty caused Apollo to grant her the gift of prophecy. However, when she did not return his love, Apollo placed a curse on her so that no one would ever believe her predictions.
In an alternative version, she spent a night at Apollo’s temple with her twin brother Helenus, at which time the temple snakes licked her ears clean so that she was able to hear the future. This is a recurring theme in Greek mythology, though sometimes it brings an ability to understand the language of animals rather than an ability to know the future.[2]
Apollo loved Cassandra and when she did not return his love, he cursed her so that her gift would become a source of endless pain and frustration. In some versions of the myth, this is symbolized by the god spitting into her mouthin other Greek versions, this act was sufficient to remove the gift so recently given by Apollo, but Cassandra’s case varies. From the play Agamemnon, it appears that she made a promise to Apollo to become his consort, but broke it, thus incurring his wrath.
Telephus, the son of Heracles, loved Cassandra but she scorned him and instead helped him seduce her sister Laodice.
While Cassandra foresaw the destruction of Troy (she warned the Trojans about the Trojan Horse, the death of Agamemnon, and her own demise), she was unable to do anything to forestall these tragedies.
Coroebus and Othronus came to the aid of Troy out of love for Cassandra. Cassandra was also the first to see the body of her brother Hector being brought back to the city.
After the Trojan War, she sought shelter in the temple of Athena, where she was raped by Ajax the Lesser. Cassandra was then taken as a concubine by King Agamemnon of Mycenae. Unbeknownst to Agamemnon, while he was away at war, his wife, Clytemnestra, had begun an affair with Aegisthus. Clytemnestra and Aegisthus then murdered both Agamemnon and Cassandra. Some sources mention that Cassandra and Agamemnon had twin boys, Teledamus and Pelops, both of whom were killed by Aegisthus.
关于Cassandra的用法,前面有一位朋友说的很清楚了,只是在这里补充一点,就是在心理学上所指的Cassandra complex卡珊德拉情结。
Cassandra complex可以是看成一种精神疾病,指那些对某些暂时无法确定或者尚且毫无根据的即将发生的“灾难”异常恐惧并且深陷其中的人,一般有这样情结的人,都有一些臆想症的征兆。
关于电影资料,最好的一部是我看过的《十二只猴子》,影片描写了关于主角在一群科学家的帮助下进行时空旅行,去收集有关一场使人类几乎灭亡的病毒信息,里面的女主角是一位心理学医生,她就在一次学术讨论会上详细的解释了什么叫Cassandra complex,即讽刺又经典的是,在她的发表会上所引用的一段Cassandra式的预言,正是日后真正发生了的灾难,而她也因为命运的安排,卷入了整个事件,最后也如Cassandra一样,对将要发生的灾难无能为力而痛苦不堪。
适应于cassandra2.0以上的版本
1、首先修改配置文件 cassandra.yaml
把默认的authenticator: AllowAllAuthenticator运行所有人登录设置为用密码登录:
authenticator: PasswordAuthenticator
2、登录cassandra创建用户
使用默认账户登录cassandra
在bin目录下执行
./cqlsh -ucassandra -pcassandra
创建用户
1
CREATE USER myusername WITH PASSWORD ’mypassword’ SUPERUSER
3、使用新用户登录
删除默认帐号:
DROP USER cassandra
4、java使用用户名密码访问cassandra
Cluster cluster = Cluster.builder()
.addContactPoint(”192.168.22.161”)
.withCredentials(”myusername”, ”mypassword”)
.build()
以上就是关于如何安装和配置Cassandra全部的内容,如果了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!