Cassandra 集群安装配置

简介:

NND,搞了我6个小时,失败10来次,终于把Cassandra集群弄好了,开心J

 

我们使用的是DataStax Community Edition, ,官网对于集群控制中心(opscenter)的配置太简略了,我尝试了10多次才搞定:网上应该没有比我这份更详细的配置说明了。

 

以下是详细步骤(我全装在 bleum 192.168.129.34 Linux VM 上了)

 

Part 1: 安装Python

先安装python (这里吃了好多苦头,其实这个集群只支持python2.5,2,6,2,7,  然而事实只有2.5可以。结果我先下了个3.1,后来Linux自带有个2.4,试了下都不行,最后从2.7开始版本依次递减的尝试,终于2.5可以了)

 

编译安装python,将其安装到/usr/local/python2.5目录

 

wget http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz

tar -zxvf Python-2.5.4.tgz

cd Python-2.5.4

./configure --prefix=/usr/local/python2.5

make

make install

 

安装Python 网络开发框架Twisted

 

wget http://twistedmatrix.com/Releases/Twisted/10.0/Twisted-10.0.0.tar.bz2

tar -jxvf Twisted-10.0.0.tar.bz2

cd Twisted-10.0.0

python setup.py install

 

配置Python 环境变

vi ~/bashrc

export PYTHON=/usr/local/python2.5/bin/python

 

Part 2:搭建Cassandra 集群

假定所有的软件都安装在 ~/datastax 目录

 

下载Cassandra发布包: (我们这里有3个包,依次是cassandra服务器包,基于web的可视的集群监控器包,集群上的例子demo)

wget http://downloads.datastax.com/community/dsc.tar.gz

wget http://downloads.datastax.com/community/opscenter.tar.gz

wget http://downloads.datastax.com/community/dsc-1.0.2-demo-bin.tar.gz

 

 

解压这些包:

tar -zxvf dsc-cassandra-1.0.9-bin.tar.gz

tar -zxvf opscenter-2.0-free.tar.gz

tar -zxvf dsc-1.0.2-demo-bin.tar.gz

 

配置环境变量:

vi ~/.bashrc

add the following environment variable setting and reconfigure the PATH:

export CASSANDRA_HOME=/home/tbenjamin/datastax/dsc-cassandra-1.0.9

export DSCDEMO_HOME=/home/tbenjamin/datastax/dsc-1.0.2/demos/portfolio_manager

export OPSC_HOME=/home/tbenjamin/datastax/opscenter-2.0

export PATH=$PATH:$JAVA_HOME/bin:$CASSANDRA_HOME/bin:$DSCDEMO_HOME/bin:$OPSC_HOME/bin

 

最终如下图所示:

 

让环境变量生效:

source ~/.bashrc

 

创建Cassandra 数据目录

cd ~/datastax

mkdir cassandra-data

 

现在配置并且运行节点

cd /home/tbenjamin/datastax/dsc-cassandra-1.0.9/conf

vi cassandra.yaml

 

并且作如下的改动:

initial_token:改为

initial_token:0

 

/var/lib/cassandra/data改为

/home/tbenjamin/datastax/cassandra-data

 

commitlog_directory: /var/lib/cassandra/commitlog改为

commitlog_directory: /home/tbenjamin/datastax/cassandra-data/commitlog

 

saved_caches_directory: /var/lib/cassandra/saved_caches改为

saved_caches_directory: /home/tbenjamin/datastax/cassandra-data/saved_caches

 

配置cassandra服务器日志位置

cd /home/tbenjamin/datastax/dsc-cassandra-1.0.9/conf

vi log4j-server.properties

 

并且作如下的改动:

log4j.appender.R.File=/var/log/cassandra/system.log改为

log4j.appender.R.File=/home/tbenjamin/datastax/cassandra-data/system.log

 

配置demo应用程序的指向正确的cassandra安装目录

vi $DSCDEMO_HOME/bin/pricer

 

并且作如下的改动:

CASSANDRA_HOME=/usr/share/cassandra改为

CASSANDRA_HOME=/home/tbenjamin/datastax/dsc-cassandra-1.0.9

 

seed_provider中的 127.0.0.1改为 192.168.129.34
    
    

    
    
      
    
    
listen_address改为192.168.129.34
    
    

 

 

Part 3: 启动集群和应用:

下面就是启动cassandra和集群了,因为我们已经添加bin到环境变量PATH,所以不用添加路径

 

Cassandra 服务器部分:

启动Cassandra

cassandra

 

 

启动Cassandra

nodetool ring –h localhost

可以查看刚才配置的节点在集群中的信


 

 

 

 

OpsCenter web集群管理程序部分:

OpsCenter是一个用于管理Cassandra集群的web应用程序:(目前只支持python2.5 ,2.6 ,2.7,我这里失败了好多次,郁闷,最后我在python2.5上尝试成功了)

 

 

配置opscenter web 应用程序

vi ~/datastax/opscenter-2.0/conf/opscenterd.conf

interface=127.0.0.1改成public地址(比如192.168.129.34)

 

 

启动opscenter

opscenter

 

启动opscenter

cd  ~/datastax/opscenter-2.0/agent/bin

./opscenter-agent

 

访问集群信息主页:http://192.168.129.34:8888


 

 

Sample应用部分:

 

安装集群应用(应用名为Portfolio)用到的Sample 

cd $DSCDEMO_HOME/bin

./pricer -o INSERT_PRICES


 

./pricer -o UPDATE_PORTFOLIOS


 

./pricer -o INSERT_HISTORICAL_PRICES -n 100


 

启动Sample应用

这是一个可以自运行的jar文件,我们让其在后台运行

cd $DSCDEMO_HOME/website

java -jar start.jar &


 

 

查看Sample应用http://192.168.129.34:8983/portfolio/






本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/864103,如需转载请自行联系原作者

目录
相关文章
|
关系型数据库 MySQL 数据挖掘
MySQL - binlog同步过程
MySQL - binlog同步过程
768 0
|
API 调度
【FreeRTOS】互斥锁的使用
【FreeRTOS】互斥锁的使用
325 0
|
JavaScript 关系型数据库 MySQL
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
1208 0
超级实用,centos7.3安装 Etherpad 搭建一个线上协同创作平台(多人一起在线编写)
|
数据库
Unknown column ‘字段名‘ in ‘field list‘解决方法
Unknown column ‘字段名’ in 'field list’英语翻译过来就是未知列的字段名在字段表中,也就是说数据库表中的字段名在实体类中找不到。 解决方案如下: 查看实体类的属性名和数据库表中的名字是否一致(注意数据库表字段中是否有空格或者下划线)
4913 0
|
小程序
TDesign电商小程序模板解析01-自定义底部导航栏(二)
TDesign电商小程序模板解析01-自定义底部导航栏(二)
|
消息中间件
RabbitMQ的高可用机制 ?
RabbitMQ基于Erlang语言,支持集群模式。普通集群通过分布式队列提高并发,但队列不在访问节点时需跨节点传递,且队列节点宕机会导致消息丢失。镜像集群在普通集群基础上增加主从备份,确保数据高可用,主节点故障时镜像节点可接替工作。
214 1
|
Docker 容器
求助: 运行模型时报错module 'megatron_util.mpu' has no attribute 'get_model_parallel_rank'
运行ZhipuAI/Multilingual-GLM-Summarization-zh的官方代码范例时,报错AttributeError: MGLMTextSummarizationPipeline: module 'megatron_util.mpu' has no attribute 'get_model_parallel_rank' 环境是基于ModelScope官方docker镜像,尝试了各个版本结果都是一样的。
608 5
|
安全 测试技术 API
API测试:了解API接口测试与API接口测试指南
本文为您提供API接口测试的全面指南。从基础概念到测试方法,再到最佳实践,本文将帮助您深入了解API测试,确保您的API稳健、高效。
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡
|
JavaScript 前端开发 Android开发
kotlin开发 webview如何在收到JS调用后,native返回数据给到JS
这段内容描述了在Hybrid App开发中,使用Kotlin的Compose构建的Web视图(WebView)如何通过JsBridge实现JavaScript与原生代码的交互