博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安装apache-cassandra-2.1.18
阅读量:5960 次
发布时间:2019-06-19

本文共 9809 字,大约阅读时间需要 32 分钟。

Introduction

What is Cassandra? 

The Apache Cassandra database is the right choice when you need scalability(伸缩) and high availability without compromising performance. Linear scalability and proven fault-tolerance(容错系统)on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data.Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive(生存) regional outages.

Prerequisites

CentOS release 6.5 (Final)

系统参数配置

[root@sht-sgmhadoopdn-02 ~]# vim /etc/security/limits.conf

tnuser soft memlock unlimited

tnuser hard memlock unlimited

[root@sht-sgmhadoopdn-02 ~]# sysctl -w vm.max_map_count=131072

[root@sht-sgmhadoopdn-02 ~]# echo "vm.max_map_count=131072" >> /etc/sysctl.conf

[root@sht-sgmhadoopdn-02 ~]#vim /etc/security/limits.d/90-nproc.conf

*          soft    nproc     1024

改为:

*          soft    nproc     10240

[root@sht-sgmhadoopdn-02 ~]# swapoff -a

软件准备:cassandra,jdk,python

[root@sht-sgmhadoopdn-02 softwore]# ll

total 218276

-rw-r--r-- 1 dhchen Corp_User  25288340 Aug 14 14:44 apache-cassandra-2.1.18-bin.tar.gz

-rw-r--r-- 1 dhchen Corp_User 181442359 Aug 14 14:43 jdk-8u111-linux-x64.tar.gz

-rw-r--r-- 1 dhchen Corp_User  16768806 Aug 14 14:44 Python-2.7.10.tgz

创建用户组和用户

[root@sht-sgmhadoopdn-02 softwore]# groupadd appuser

[root@sht-sgmhadoopdn-02 softwore]#useradd  -g appuser -G root -d /usr/local/cassandra tnuser

安装JAVA

[root@sht-sgmhadoopdn-02 softwore]# tar xf jdk-8u111-linux-x64.tar.gz -C /usr/local/

[root@sht-sgmhadoopdn-02 local]# ln -s /usr/local/jdk1.8.0_111 /usr/local/java

[root@sht-sgmhadoopdn-02 local]# chown -R tnuser:appuser /usr/local/java

[root@sht-sgmhadoopdn-02 local]# /usr/local/java/bin/java -version

java version "1.8.0_111"

Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

安装python

[root@sht-sgmhadoopdn-02 local]# tar xf Python-2.7.10.tgz -C /usr/local

[root@sht-sgmhadoopdn-02 local]# cd Python-2.7.10

[root@sht-sgmhadoopdn-02 Python-2.7.10]# ./configure --prefix=/usr/local/python

[root@sht-sgmhadoopdn-02 Python-2.7.10]#make && make install

[root@sht-sgmhadoopdn-02 local]# chown -R tnuser:appuser /usr/local/python

[root@sht-sgmhadoopdn-02 local]# /usr/local/python/bin/python --version

Python 2.7.10

安装cassandra

[root@sht-sgmhadoopdn-02 local]# tar xf /opt/softwore/apache-cassandra-2.1.18-bin.tar.gz -C /usr/local/

[root@sht-sgmhadoopdn-02 local]# ln -s /usr/local/apache-cassandra-2.1.18 /usr/local/cassandra

[root@sht-sgmhadoopdn-02 local]# chown -R tnuser:appuser /usr/local/apache-cassandra-2.1.18

[root@sht-sgmhadoopdn-02 local]# chown -R tnuser:appuser /usr/local/cassandra

#加入自启动(可以不做这一步)

[root@sht-sgmhadoopdn-02 local]# vim /etc/rc.local

su - tnuser -c "cd /usr/local/cassandra/bin/ && nohup ./cassandra "

设置环境变量

[root@sht-sgmhadoopdn-02 local]# su - tnuser

[tnuser@sht-sgmhadoopdn-02 ~]$ cat ~/.bash_profile

export CASSANDRA_HOME=/usr/local/cassandra

export JAVA_HOME=/usr/local/java

export PYTHON_HOME=/usr/local/python

PATH=$PYTHON_HOME/bin:$JAVA_HOME/bin:$CASSANDRA_HOME/bin:$CASSANDRA_HOME/tools/bin:$PATH:$HOME/bin:/usr/local/bin

export PATH

set umask to 022

umask 022

PS1=`uname -n`":"'$USER'":"'$PWD'":>"; export PS1

[tnuser@sht-sgmhadoopdn-02 ~]$ source .bash_profile

[tnuser@sht-sgmhadoopdn-02 ~]$ python -V

Python 2.7.10

[tnuser@sht-sgmhadoopdn-02 ~]$ java -version

java version "1.8.0_111"

Java(TM) SE Runtime Environment (build 1.8.0_111-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

创建相关目录

[tnuser@sht-sgmhadoopdn-02 cassandra]$ mkdir -p /usr/local/cassandra/{data,commitlog,log,saved_caches}

设置配置文件:cassadnra.yaml

[tnuser@sht-sgmhadoopdn-02 conf]$ vim /usr/local/cassandra/conf/cassandra.yaml

cluster_name: 'mycluster'

data_file_directories:

      - /usr/local/cassandra/data

  commitlog_directory: /usr/local/cassandra/commitlog

 saved_caches_directory: /usr/local/cassandra/saved_caches

           - seeds: "172.16.101.59"

               # Ex: "<ip1>,<ip2>,<ip3>"

listen_address: 172.16.101.59

native_transport_port: 9042

start_rpc: true

rpc_address: 0.0.0.0

rpc_port: 9160

broadcast_rpc_address: 172.16.101.59

设置配置文件: logback.xml

[tnuser@sht-sgmhadoopdn-02 conf]$ vim /usr/local/cassandra/conf/logback.xml

    <level>INFO</level>

    </filter>

    <file>/usr/local/cassandra/log/system.log</file>

        

启动cassandra

[tnuser@sht-sgmhadoopdn-02 cassandra]$cassandra    

[tnuser@sht-sgmhadoopdn-02 cassandra]$ netstat -nltup |grep -e 9042 -e 9160

tcp        0      0 0.0.0.0:9042                0.0.0.0:*                   LISTEN      24286/java          

tcp        0      0 0.0.0.0:9160                0.0.0.0:*                   LISTEN      24286/java

[tnuser@sht-sgmhadoopdn-02 cassandra]$ lsof -Pnl|grep -e 9042 -e 9160

java      24286      503   72u     IPv4           35165833      0t0        TCP *:9042 (LISTEN)

java      24286      503   73u     IPv4           35165834      0t0        TCP *:9160 (LISTEN)

[tnuser@sht-sgmhadoopdn-02 ~]$ ps -ef |grep cassandra

tnuser   24286     1  2 18:00 pts/4    00:00:29 /usr/local/java/bin/java -ea -javaagent:/usr/local/cassandra/lib/jamm-0.3.0.jar -XX:+CMSClassUnloadingEnabled -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1463M -Xmx1463M -Xmn200M -XX:+HeapDumpOnOutOfMemoryError -Xss256k -XX:StringTableSize=1000003 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+UseTLAB -XX:CompileCommandFile=/usr/local/cassandra/conf/hotspot_compiler -XX:CMSWaitDuration=10000 -XX:+CMSParallelInitialMarkEnabled -XX:+CMSEdenChunksRecordAlways -XX:CMSWaitDuration=10000 -XX:+UseCondCardMark .preferIPv4Stack=true -Dcassandra.jmx.local.port=7199 -XX:+DisableExplicitGC -Dlogback.configurationFile=logback.xml -Dcassandra.logdir=/usr/local/cassandra/logs -Dcassandra.storagedir=/usr/local/cassandra/data -cp /usr/local/cassandra/conf:/usr/local/cassandra/build/classes/main:/usr/local/cassandra/build/classes/thrift:/usr/local/cassandra/lib/airline-0.6.jar:/usr/local/cassandra/lib/antlr-runtime-3.5.2.jar:/usr/local/cassandra/lib/apache-cassandra-2.1.18.jar:/usr/local/cassandra/lib/apache-cassandra-clientutil-2.1.18.jar:/usr/local/cassandra/lib/apache-cassandra-thrift-2.1.18.jar:/usr/local/cassandra/lib/commons-cli-1.1.jar:/usr/local/cassandra/lib/commons-codec-1.2.jar:/usr/local/cassandra/lib/commons-lang3-3.1.jar:/usr/local/cassandra/lib/commons-math3-3.2.jar:/usr/local/cassandra/lib/compress-lzf-0.8.4.jar:/usr/local/cassandra/lib/concurrentlinkedhashmap-lru-1.4.jar:/usr/local/cassandra/lib/disruptor-3.0.1.jar:/usr/local/cassandra/lib/guava-16.0.jar:/usr/local/cassandra/lib/high-scale-lib-1.0.6.jar:/usr/local/cassandra/lib/jackson-core-asl-1.9.2.jar:/usr/local/cassandra/lib/jackson-mapper-asl-1.9.2.jar:/usr/local/cassandra/lib/jamm-0.3.0.jar:/usr/local/cassandra/lib/javax.inject.jar:/usr/local/cassandra/lib/jbcrypt-0.3m.jar:/usr/local/cassandra/lib/jline-1.0.jar:/usr/local/cassandra/lib/jna-4.0.0.jar:/usr/local/cassandra/lib/json-simple-1.1.jar:/usr/local/cassandra/lib/libthrift-0.9.2.jar:/usr/local/cassandra/lib/logback-classic-1.1.2.jar:/usr/local/cassandra/lib/logback-core-1.1.2.jar:/usr/local/cassandra/lib/lz4-1.2.0.jar:/usr/local/cassandra/lib/metrics-core-2.2.0.jar:/usr/local/cassandra/lib/netty-all-4.0.44.Final.jar:/usr/local/cassandra/lib/reporter-config-2.1.0.jar:/usr/local/cassandra/lib/slf4j-api-1.7.2.jar:/usr/local/cassandra/lib/snakeyaml-1.11.jar:/usr/local/cassandra/lib/snappy-java-1.0.5.2.jar:/usr/local/cassandra/lib/ST4-4.0.8.jar:/usr/local/cassandra/lib/stream-2.5.2.jar:/usr/local/cassandra/lib/super-csv-2.1.0.jar:/usr/local/cassandra/lib/thrift-server-0.3.7.jar org.apache.cassandra.service.CassandraDaemon

登录方式

[tnuser@sht-sgmhadoopdn-02 cassandra]$ cqlsh

cqlsh>

停止cassandra服务

#先找到cassandra对应的进程号,然后kill

pgrep命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。

       -u    Only match processes whose real user ID is listed.  Either the numerical or symbolical value may be used.

       -f     The pattern is normally only matched against the process name.  When -f is set, the full command line is used.

[tnuser@sht-sgmhadoopdn-02 ~]$ pgrep -l -u tnuser

24286 java

25586 bash

[tnuser@sht-sgmhadoopdn-02 ~]$ pgrep -u tnuser -f cassandra

24286

[tnuser@sht-sgmhadoopdn-02 ~]$ pgrep -u tnuser -f cassandra|xargs kill -9

Error

(1)在启动cassand时候报错:

[tnuser@sht-sgmhadoopdn-02 cassandra]$ cassandra

.......

ERROR:java.lang.RuntimeException: Unable to gossip with any seeds

.......

Solution:

修改配置文件

[tnuser@sht-sgmhadoopdn-02 cassandra]$ vim /usr/local/cassandra/conf/cassandra.yaml

- seeds: "127.0.0.1" 改为

- seeds: "172.16.101.59"

(2)在使用cqlsh登录的时候报错

Darren2:tnuser:/usr/local/cassandra:>cqlsh

Traceback (most recent call last):

  File "/usr/local/cassandra/bin/cqlsh.py", line 168, in <module>

    from cqlshlib import cql3handling, cqlhandling, pylexotron, sslhandling, cqlshhandling

  File "/usr/local/cassandra/bin/../pylib/cqlshlib/sslhandling.py", line 20, in <module>

    import ssl

  File "/usr/local/python/lib/python2.7/ssl.py", line 97, in <module>

    import _ssl             # if we can't import it, let the error propagate

ImportError: No module named _ssl

原因:python中ssl模块无法正常调用

Darren2:tnuser:/usr/local:>python

Python 2.7.10 (default, Oct 18 2017, 21:17:45)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import ssl

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "/usr/local/python/lib/python2.7/ssl.py", line 97, in <module>

    import _ssl             # if we can't import it, let the error propagate

[root@Darren2 local]# yum list installed | grep ssl

openssl.x86_64          1.0.1e-15.el6   @anaconda-CentOS-201311272149.x86_64/6.5

openssl098e.x86_64      0.9.8e-17.el6.centos.2

解决方法:

[root@Darren2 local]#yum install openssl-devel -y

重新安装python;

Darren2:tnuser:/usr/local/cassandra:>python

>>> import ssl;

>>> import _ssl

>>> quit();

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

你可能感兴趣的文章
二维数组
查看>>
Ambari集群里操作时典型权限问题put: `/home/bigdata/1.txt': No such file or directory的解决方案(图文详解)...
查看>>
Objective-C:运行时runtime
查看>>
android 项目中出现红色感叹号的解决方法
查看>>
Android硬件加速
查看>>
SQL server 2005高可用性之----数据库镜像
查看>>
轻、快、好、免费的开发工具
查看>>
[LeetCode] Delete Duplicate Emails 删除重复邮箱
查看>>
fullCalendar动态获取数据
查看>>
Android 服务端开发之开发环境配置
查看>>
如何建立自己的私有云存储
查看>>
CPA,CPS,CPC,CPM的特点
查看>>
Phonegap Online和Offline
查看>>
软件设计
查看>>
代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能
查看>>
Android 动态注册 亮屏、息屏广播
查看>>
NYOJ 题目77 开灯问题(简单模拟)
查看>>
15.6. HTML嵌入图片
查看>>
Could not find class &#39;XXX.activity‘&#39;, referenced from method &#39;YYYY&#39;
查看>>
I.MX6Q MfgTool2 ucl2.xml eMMC
查看>>