不多说,直接上干货!

   最近我开始在windows环境中使用Cassandra,虽然在Cassandra站点的安装命令非常清楚和精简,我仍然在环境配置上遇到一些问题。所以我想为后来者分享下我的经验。

  官网下载地址

http://cassandra.apache.org/

http://cassandra.apache.org/download/

http://www.apache.org/dyn/closer.lua/cassandra/3.11.1/apache-cassandra-3.11.1-bin.tar.gz

windows环境里下载且安装配置Cassandra(最新的3.11.1版本)

  第一步:安装JDK8.0以上的JDK版本,配置好相关的环境变量。8.0以下的JDK将无法正常启动Cassandra服务,造成不必要的麻烦。

  第二步:安装python2.7版本或以上的版本用于启动cqlsh的shell命令

  第三步 : 在Cassandra官网上下载最新的Cassandra版本,本文使用的是apache-cassandra-3.11.1,解压到你想要的目录。在环境变量中设置CASSANDRA_HOME为你的Cassandra安装目录。

  第四步:修改cassandra.yaml文件中的配置参数。

    我这里是放在D:\SoftWare下

    接下来,对windows里的环境变量设置

   接下来是,修改cassandra里的conf目录下配置文件

    (1)使用Notepad++打开cassandra.yaml文件,修改如下参数:
 

data_file_directories:
- D:\SoftWare\apache-cassandra-3.11.\data
    注意:-后面需要有空格
 
 
 
 
 
 
 

  修改为

commitlog_directory: D:\SoftWare\apache-cassandra-3.11.\commitlog
 
 
 
 
 
 

 

   修改为

saved_caches_directory: D:\SoftWare\apache-cassandra-3.11.\saved_caches
 
 
 
  (2)使用Notepad++打开log4j-server.properties文件,修改如下参数:
    为:log4j.appender.R.File=D:\SoftWare\apache-cassandra-3.11.1\logs
 
 
 
 

   双击bin目录下的cassandra.bat启动cassandra服务

   
    出现下面的图后表示服务启动成功了,记住,这个cmd的窗口不要关闭,关闭了好像服务就被一起关闭了,接下来客端的连接好像就不行了。

    启动之后, 现在你需要cqlsh来与Cassandra数据库交互。这里会稍微有点曲折,因为它在cassandra下载的包中。因此在我们插入数据到cassandra中还需要做点变通

  (1)从http://www.python.org/download/releases/ 下载Python包。这里需注意一点。虽然python最新的版本是3x, 但是在这个版本上我们无法安装thrift库。 所以下载并 安装python2.7版本。

  (2)从http://pypi.python.org/pypi/thrift下载Thrift库。 通过执行以下命令安装thrift模块。python setup.py install

Step 4: 现在你可以安装cql模块,这个模块可以下你的cassandra下载包中找到。setup.py存在与 cassandra_home\pylib 中。 再次执行以下命令:python setup.py install

Step 5: 执行命令 python cqlsh localhost 9160,(9160是端口,你需要改成你自己的sassandra端口), 然后可以启动cql命令工具。

以下是执行的example:

CREATE KEYSPACE mykeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };

CREATE TABLE users (user_id int PRIMARY KEY,  fname text,  lname text);

INSERT INTO users (user_id,  fname, lname) VALUES (1745, 'john', 'smith');
INSERT INTO users (user_id,  fname, lname)  VALUES (1744, 'john', 'doe');
INSERT INTO users (user_id,  fname, lname)  VALUES (1746, 'john', 'smith');

    首先我将根据官方文档,向你介绍conf目录下cassandra.yaml这个配置文件中几个重要的参数,无论是搭建集群环境,还是未来使用cqlsh的shell命令,这些参数都显得十分重要:

cluster_name:集群名称,通常用于防止一个逻辑集群中的机器加入其他的集群,具有唯一标识性。 默认值:Test Cluster。 
我的建议:在生产环境不要使用默认的集群名,以免未来在扩展多数据中心,多集群时引起命名冲突,造成不必要的麻烦。此外,在启动服务前提前修改好此参数,否则服务一旦启动,将围绕此集群名建立一系列的系统表,到时想更换集群名字只能删除所有系统表,很麻烦。

seed_provider:-parameters:-seeds:集群中的种子节点,被视为联系不同节点的主机地址。节点通过该列表的主机来找到对方,并学习集群环中的拓扑结构,通过Gossip相互沟通。 
我的建议:种子实际上是一个逗号分隔的地址列表。如果你想要设置多个种子节点,你应该遵循这样的格式:Ex: “ip1,ip2,ip3”,在此处我填写 seeds:192.168.30.101。我仅设置一台主机。

listen_address: 通常用于通知其他节点通过此ip地址连接到你这台机器节点。 
我的建议:不要将监听地址设置为0.0.0.0,这样做通常是错误,而是设置成具体的本机ip,如此处我设置为 listen_address: 192.168.30.101。

rpc_address: 此ip地址将绑定 Thrift RPC 服务,本地的传输服务也将使用此ip。 
我的建议: 不要将监听地址设置为0.0.0.0或者localhost,这样做通常是错误,而是设置成具体的本机ip,如此处我设置为 rpc_address: 192.168.30.101。

data_file_directories: Cassandra通常在该磁盘目录下存储数据,进行均匀地分布数据, 这取决于你配置的压缩策略。 
我的建议: 你可以设置成你想要的任何目录地址,但是我建议你采用默认的方式,Cassandra将自动加载到如下目录$CASSANDRA_HOME/data/data,方便管理。

commitlog_directory: 日志存放目录,通常用于记录写入数据的日志,当发生意外无法写入到SSTable时,可以使用commitlog恢复数据,防止丢失。 
我的建议:你可以设置成你想要的任何目录地址,但是我建议你采用默认的方式,Cassandra将自动加载到如下目录$CASSANDRA_HOME/data/commitlog,方便管理。

saved_caches_directory: 缓存地址 
我的建议: 你可以设置成你想要的任何目录地址,但是我建议你采用默认的方式,Cassandra将自动加载到如下目录$CASSANDRA_HOME/data/saved_caches,方便管理。

logback.xml: 通常用于系统日志输出的地址配置。 
我的建议: 你可以设置成你想要的任何目录地址,但是我建议你采用默认的方式,Cassandra将自动加载到如下目录$CASSANDRA_HOME/logs目录下,方便管理。

Cassandra概念学习系列之Windows里下载且安装配置Cassandra(最新的3.11.1版本)(图文详解)的更多相关文章

  1. Windows下如何正确下载并安装可视化的Redis数据库管理工具(redis-desktop-manager)(图文详解)

    不多说,直接上干货! Redis Desktop Manager是一个可视化的Redis数据库管理工具,使用非常简单.       官网下载:https://redisdesktop.com/down ...

  2. 给ambari集群里的kafka安装基于web的kafka管理工具Kafka-manager(图文详解)

    不多说,直接上干货! 参考博客 基于Web的Kafka管理器工具之Kafka-manager的编译部署详细安装 (支持kafka0.8.0.9和0.10以后版本)(图文详解)(默认端口或任意自定义端口 ...

  3. 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的完全卸载(图文详解)

    不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 若你不想用了,则可安全卸载. 完全卸载Oracle ...

  4. Git学习系列之如何正确且高效地将本地项目上传到Github(图文详解)

    不多说,直接上干货! 首先你需要一个Github账号,所以还没有的话先去注册吧! https://github.com/ 见 如何走上更高平台分享传递干货知识:(开通个人Github面向开源及私有软件 ...

  5. 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)

    不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...

  6. Windows下的Jupyter Notebook 的介绍(写给新手)(图文详解)

    不多说,直接上干货! Windows下的Python 3.6.1的下载与安装(适合32bits和64bits)(图文详解) Windows下的Jupyter Notebook 安装与自定义启动(图文详 ...

  7. Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...

  8. 全网最详细的Windows里下载与安装Sublime Text *(图文详解)

    不多说,直接上干货! 前言 这是代码编程软件,可以性感编程自己代码,有着非常丰富的插件,界面整洁清爽.第一次使用可能不习惯,当你使用一段时间之后,你就会爱上它. 下载与安装 1.下载:目前官方的正式版 ...

  9. Windows里下载并安装phpstudy(图文详解)

    不多说,直接上干货! 帮助站长快速搭建网站服务器平台! phpstudy软件简介 此是基于phpStudy 2016.01.01. 该程序包集成最新的Apache+Nginx+LightTPD+PHP ...

随机推荐

  1. java并发编程实战:第八章----线程池的使用

    一.在任务和执行策略之间隐性耦合 Executor框架将任务的提交和它的执行策略解耦开来.虽然Executor框架为制定和修改执行策略提供了相当大的灵活性,但并非所有的任务都能适用所有的执行策略. 依 ...

  2. polymer入门例子-已过时

    这个教程挺不错!:http://blog.csdn.net/renfufei/article/details/37040883 过时了,现在的版本已经为1.0了 一:创建APP结构 本教程会使用预先构 ...

  3. How to Baskup and Restore a MySQL database

    If you're storing anything in MySQL databases that you do not want to lose, it is very important to ...

  4. Postgresql fillfactor

    一个表的填充因子(fillfactor)是一个介于 10 和 100 之间的百分数.100(完全填充)是默认值.如果指定了较小的填充因子,INSERT 操作仅按照填充因子指定的百分率填充表页.每个页上 ...

  5. 如何将本地数据库迁移至SQL Azure

    Windows Azure的SQL Azure和SQL Server 拥有不同的体系结构,可以说是两个不同的产品.SQL Azure不完全支持或者尚不支持SQL Server的某些功能,这使得我们不能 ...

  6. File Path Directory总结

    阅读目录 开始 Path 对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo  对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所 ...

  7. WPF自定义控件之列表滑动特效 PowerListBox

    列表控件是应用程序中常见的控件之一,对其做一些绚丽的视觉特效,可以让软件增色不少. 本人网上看过一个视频,是windows phone 7系统上的一个App的列表滚动效果,效果非常炫 现在在WPF上用 ...

  8. python中的列表和元组

    1. 什么是列表 定义: 能装对象的对象 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求,列表存在索引和切片. 和字符串是一样的. 2.相关的增删改查操作 切片 列表和 ...

  9. mongodb 日志清理

    #!/bin/bash #Rotate the MongoDB logs to prevent a single logfile from consuming too much disk space. ...

  10. CodeForces1142/1143题解

    题面 传送门(1143) 传送门(1142) \(1143A\) 咕咕 n=read(); fp(i,1,n)a[i]=read(),++cnt[a[i]]; fp(i,1,n)if(++c[a[i] ...