CentOS 7编译安装Cassandra教程

Apache Cassandra是一个免费开源的分布式NoSQL数据库管理系统,可用于存储海量数据。最初由Facebook公司研发,之后被捐献给Apache软件基金会(Apache Software Foundation, ASF),成为ASF旗下的一个开源项目。Cassandra的编译安装需要Java环境的支持和编译软件Ant。

一、Java的安装与配置

Linux上一般都会自带安装了Open JDK,可以理解为JDK的精简版。有些软件的运行Open JDK的支持不友好,所以需要安装更为完善的JDK。在安装JDK之前,都需要检查或卸载系统上原生的Open JDK。

1. 卸载系统自带的Open JDK以及相关的java文件
1.1查看目前系统自带的java信息

打开CentOS 7系统终端,在桌面上单击鼠标右键,点击打开终端。在命令窗口键入:

java -version

可以看到系统自带的Open JDK的信息。
在这里插入图片描述

1.2 删除Open JDK系统自带文件
  • 在命令窗口键入:
rpm -qa | grep java

命令说明:
rpm 管理套件
-qa 使用询问模式,查询所有套件
grep 查找文件里符合条件的字符串
java 查找包含java字符串的文件
在这里插入图片描述

  • 删除.noarch外的其它文件:
su      #进入root权限
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64

命令说明:
rpm 管理套件
-e 删除指定的套件
–nodeps 不验证套件的相互关联性
在这里插入图片描述

1.3 验证是否删除成功

在命令窗口键入:

java -version

显示未找到命令…,代表已删除成功
在这里插入图片描述

2. 下载并安装稳定的JDK
2.1 下载JDK压缩包并解压

JDK的下载地址为:JDK历史版本。我准备下载的是JDK 8,点击截图中的Java SE 8(8u202 and earlier)。
在这里插入图片描述
进入下一个界面,我选择下载的版本为JDK 8_102。点击Accept License Agreement,选择下载jdk-8u102-linux-x64.tar.gz版本。
在这里插入图片描述

在这里插入图片描述
点击Save File,然后选择OK。下载好的文件被保存在系统的下载文件夹里。
在这里插入图片描述

2.2 解压JDK安装包

打开系统终端,首先进入下载目录,然后将压缩包解压到系统的opt目录下。

cd /home/wqy/下载
sudo tar -zxvf jdk-8u102-linux-x64.tar.gz -C /opt

命令介绍:
sudo 进入一次root模式,应付有权限文件(夹)的操作
tar 压缩/查询/解压缩命令
-z 通过gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz
-x 解包或解压缩,搭配-C在特定目录解压
-v 在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename -f后面要立刻接要被处理的文件名
在这里插入图片描述在这里插入图片描述
进入opt目录,可以查看解压后的JDK文件。

cd /opt
ls -l

在这里插入图片描述
文件解压完成。

3. 配置JDK环境变量
3.1 编辑全局变量

在终端命令行键入:

sudo vim /etc/profile

命令说明:
vim 文本编辑
/etc/profile 全局变量文件
在这里插入图片描述
进入文本编辑状态下,光标走到文件最后一行,键盘按下:i,进入插入状态:

在文本的最后一行粘贴如下:

#java environment
export JAVA_HOME=/opt/jdk1.8.0_102      #此处目录为JDK文件放置位置 
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

在这里插入图片描述
此时,在键盘上按下Esc键,将输入法切换为英文。键入:

:wq     #保存并退出

在这里插入图片描述
让刚刚设置的环境变量生效,键入:

source /etc/profile
3.2 检查是否配置成功

在终端键入:

java -version

显示如下图所示,说明成功完成安装。
在这里插入图片描述

二、Ant的安装与配置
1. 下载Ant安装包

前往Ant官网,选择Ant 1.10.7安装包进行下载。

在这里插入图片描述
在这里插入图片描述
下载得到的压缩包保存在主文件夹下的下载里。

2. 将压缩包解压到opt目录下

在终端界面键入:

cd /home/wqy/下载
sudo tar -zxvf jdk-8u102-linux-x64.tar.gz -C /opt

在这里插入图片描述

3. 配置环境变量

在终端键入如下命令:

sudo vim /etc/profile    #打开配置文件

进入文本编辑状态下,光标走到文件最后一行,键盘按下:i,进入插入状态:

在文本的最后一行粘贴如下:

export ANT_HOME=/opt/apache-ant-1.10.7
export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH

此时,在键盘上按下Esc键,将输入法切换为英文。键入:

:wq     #保存并退出

让刚刚设置的环境变量生效,键入:

source /etc/profile

测试Ant是否安装成功,在终端键入:

ant -version

如果出现如下提示,则说明安装成功。
在这里插入图片描述

三、Cassandra的安装与配置
1. 下载Cassandra源码安装包

前往Cassandra下载网站,下载Cassandra 3.11.2源码安装包。下载apache-cassandra-3.11.2-src.tar.gz安装包。
在这里插入图片描述

2. 将压缩包解压到opt目录下

在终端界面键入:

cd /home/wqy/下载
sudo tar -zxvf apache-cassandra-3.11.2-src.tar.gz -C /opt

在这里插入图片描述

3. 利用Ant编译Cassandra

进入到/opt/cassandra目录下,在终端键入:

cd /opt/apache-cassandra-3.11.2-src
ls -l

在这里插入图片描述
从上图可以看出,Cassandra文件的权限均为root,为保证在当前用户模式下能够对Cassandra源码安装包进行顺利编译,需要对Cassandra的文件权限进行更改,在终端键入:

sudo chown -R wqy:wqy ./apache-cassandra-3.11.2-src   #更改为当前用户权限

在这里插入图片描述
进入到Cassandra目录下,输入ant进行编译。终端输入:

cd /opt/apache-cassandra-3.11.2-src
ant

在这里插入图片描述
经过几分钟的编译,最终在终端会显示 “BUILD SUCCESSFUL“,表明编译成功。
在这里插入图片描述

4. 配置Cassandra的环境变量
  • 创建Cassandra数据存放文件夹
sudo mkdir -p /var/lib/cassandra/data       #使用一次root权限,-p表示建立多级子文件夹
sudo mkdir /var/lib/cassandra/commitlog
sudo mkdir /var/lib/cassandra/saved_caches
sudo chown -R wqy:wqy /var/lib/cassandra    #修改cassandra目录权限为普通用户(wqy)
  • 编辑cassandra/conf目录下的cassandra.yaml配置文件
cd /opt/apache-cassandra-3.11.2-src/conf/   #进入cassandra.yaml文件的目录
vim cassandra.yaml                #打开cassandra.yaml文件

在这里插入图片描述

  • 修改配置cassandra.yaml
cluster_name: 'Big_data Cluster'     //集群名称。同一个集群要使用同一名称  
num_tokens: 256  
hinted_handoff_enabled: true  
hinted_handoff_throttle_in_kb: 1024  
max_hints_delivery_threads: 2  
hints_flush_period_in_ms: 10000  
max_hints_file_size_in_mb: 128  
batchlog_replay_throttle_in_kb: 1024  
authenticator: AllowAllAuthenticator  
authorizer: AllowAllAuthorizer  
role_manager: CassandraRoleManager  
roles_validity_in_ms: 2000  
permissions_validity_in_ms: 2000  
credentials_validity_in_ms: 2000  
partitioner: org.apache.cassandra.dht.Murmur3Partitioner  
data_file_directories:
    - /var/lib/cassandra/data    //数据文件存放路径
commitlog_directory: /var/lib/cassandra/commitlog  //操作日志文件存放路径  
cdc_enabled: false  
disk_failure_policy: stop  
commit_failure_policy: stop  
prepared_statements_cache_size_mb:  
thrift_prepared_statements_cache_size_mb:  
key_cache_size_in_mb:  
key_cache_save_period: 14400  
row_cache_size_in_mb: 0  
row_cache_save_period: 0  
counter_cache_size_in_mb:  
counter_cache_save_period: 7200  
saved_caches_directory: /var/lib/cassandra/saved_caches  //缓存文件存放路径  
commitlog_sync: periodic  
commitlog_sync_period_in_ms: 10000  
commitlog_segment_size_in_mb: 32  
seed_provider:  
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          - seeds: "127.0.0.1"     //集群种子节点ip,多个之间用逗号隔开(单机安装时不用改,用默认的)
concurrent_reads: 32  
concurrent_writes: 32  
concurrent_counter_writes: 32  
concurrent_materialized_view_writes: 32  
memtable_allocation_type: heap_buffers  
index_summary_capacity_in_mb:  
index_summary_resize_interval_in_minutes: 60  
trickle_fsync: false  
trickle_fsync_interval_in_kb: 10240  
storage_port: 7000  
ssl_storage_port: 7001  
listen_address: 127.0.0.1       //需要监听的IP或主机名。(单机安装时修改为seeds的IP "127.0.0.1")  
start_native_transport: true  
native_transport_port: 9042  
start_rpc: false  
rpc_address: 127.0.0.1         //用于监听客户端连接的地址(单机安装时修改为seeds的IP "127.0.0.1")  
rpc_port: 9160  
broadcast_rpc_address: 1.2.3.4     //修改 rpc_address后,取消该行注释  
rpc_keepalive: true  
rpc_server_type: sync  
thrift_framed_transport_size_in_mb: 15  
incremental_backups: false  
snapshot_before_compaction: false  
auto_snapshot: true  
column_index_size_in_kb: 64  
column_index_cache_size_in_kb: 2  
compaction_throughput_mb_per_sec: 16  
sstable_preemptive_open_interval_in_mb: 50  
read_request_timeout_in_ms: 5000  
range_request_timeout_in_ms: 10000  
write_request_timeout_in_ms: 2000  
counter_write_request_timeout_in_ms: 5000  
cas_contention_timeout_in_ms: 1000  
truncate_request_timeout_in_ms: 60000  
request_timeout_in_ms: 10000  
slow_query_log_timeout_in_ms: 500  
cross_node_timeout: false  
endpoint_snitch: SimpleSnitch  
dynamic_snitch_update_interval_in_ms: 100  
dynamic_snitch_reset_interval_in_ms: 600000  
dynamic_snitch_badness_threshold: 0.1  
request_scheduler: org.apache.cassandra.scheduler.NoScheduler  
server_encryption_options:  
    internode_encryption: none
    keystore: conf/.keystore
    keystore_password: cassandra
    truststore: conf/.truststore
    truststore_password: cassandra
client_encryption_options:  
    enabled: false
    optional: false
    keystore: conf/.keystore
    keystore_password: cassandra
internode_compression: dc  
inter_dc_tcp_nodelay: false  
tracetype_query_ttl: 86400  
tracetype_repair_ttl: 604800  
enable_user_defined_functions: false  
enable_scripted_user_defined_functions: false  
enable_materialized_views: true  
windows_timer_interval: 1  
transparent_data_encryption_options:  
    enabled: false
    chunk_length_kb: 64
    cipher: AES/CBC/PKCS5Padding
    key_alias: testing:1
    key_provider: 
      - class_name: org.apache.cassandra.security.JKSKeyProvider
        parameters: 
          - keystore: conf/.keystore
            keystore_password: cassandra
            store_type: JCEKS
            key_password: cassandra
tombstone_warn_threshold: 1000  
tombstone_failure_threshold: 100000  
batch_size_warn_threshold_in_kb: 5  
batch_size_fail_threshold_in_kb: 50  
unlogged_batch_across_partitions_warn_threshold: 10  
compaction_large_partition_warning_threshold_mb: 100  
gc_warn_threshold_in_ms: 1000  
back_pressure_enabled: false  
back_pressure_strategy:  
    - class_name: org.apache.cassandra.net.RateBasedBackPressure
      parameters:
        - high_ratio: 0.90
          factor: 5
          flow: FAST

此时,在键盘上按下Esc键,将输入法切换为英文。键入:

:wq     #保存并退出
5. 启动并运行Cassandra

进入Cassandra安装目录下,在终端输入:

cd /opt/apache-cassandra-3.11.2-src/bin
su
./cassandra -R    #root用户启动方式

没有什么报错ERROR,看到最后输出的为Node/x.x.x.x state jump to NORMAL,就表示Cassandra安装完成了。
在这里插入图片描述
可以通过查看集群信息进行确认。UN表示的是该服务器的状态,UN是运行中,DN是宕机。

./nodetool status   #查看集群信息

在这里插入图片描述
查看各端口是否启动。

netstat -tpln     #查看端口是否启动成功

在这里插入图片描述
Cassandra带有一个强大的命令行shell cqlsh来在Cluster上运行查询。查询语言使用CQL或Cassandra Query语言编写的。要访问CQL shell,运行以下命令:

./cqlsh
exit   #退出CQL shell

在这里插入图片描述
至此,Cassandra安装完成。

PS:退出Cassandra(结束后台运行)

首先进入到Cassandra的bin目录下,输入

ps -ef |grep cassandra

查询到该进程的pid,然后kill:

sudo kill pid

这里pid替换成实际的pid即可。

附录:
Java安装配置参考

[1] 【Linux】CentOS7下安装JDK详细过程

Ant安装配置参考

[1] CentOS7 安装与配置Ant

Cassandra安装配置参考

[1] Cassandra在centos7中手动安装配置
[2] CentOS 7 安装部署 cassandra作为kairosdb的数据存储
[3] cassandra.yaml配置
[4] cassandra安装配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值