新建cassandra用戶並修改密碼
[k8s-g2@k8s2 ~]$ sudo useradd cassandra
[k8s-g2@k8s2 ~]$ sudo passwd cassandra
配置用戶
用戶給cassandra用戶增加權限
[k8s-g2@k8s2 home]$ sudo vim /etc/sudoers
切換用戶
[k8s-g2@k8s2 ~]$ su - cassandra
安裝java環境
[cassandra@k8s2 ~]$ sudo yum -y install java-1.8.0-openjdk*
yum安裝的java的默認安裝路徑在 /usr/lib/jvm,配置環境變量
[cassandra@k8s2 ~]$ vim .bashrc
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.el8_2.x86_64
:wq
讓配置生效
[cassandra@k8s2 ~]$ source ~/.bashrc
如果想全體用戶都可以使用java的話,需要修改/etc/profile文件,添加JAVA_HOME
vi /etc/profile
#set java environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
export PATH=$PATH:$JAVA_HOME/bin
:wq
. /etc/profile //使配置生效
驗證java是否安裝成功
- 驗證JAVA_HOME
[cassandra@k8s2 ~]$ echo $JAVA_HOME
- 驗證java安裝是否成功
[cassandra@k8s2 ~]$ java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM (build 25.272-b10, mixed mode)
- 驗證jdk是否安裝成功
[cassandra@k8s2 ~]$ javac
用法: javac <options> <source files>
下載安裝cassandra
下載cassandra忽略證書檢查
wget https://mirrors.cnnic.cn/apache/cassandra/3.11.9/apache-cassandra-3.11.9-bin.tar.gz --no-check-certificate
解壓縮cassandra
[cassandra@k8s2 ~]$ tar -zxvf apache-cassandra-3.11.9-bin.tar.gz
到指定的位置創建文件夾,這里使用的是/
[cassandra@k8s2 /]$ sudo mkdir cassandra
[cassandra@k8s2 /]$ sudo mv apache-cassandra-3.11.9/* /cassandra.
配置cassandra.yaml及環境變量
[cassandra@k8s2 cassandra]$ cd conf/
修改cassandra.yaml文件。驗證以下配置。 默認情況下,這些值將設置為指定的目錄。
- data_file_directories “/var/ lib/cassandra/data”
- commitlog_directory “/var/lib/cassandra/commitlog”
- saved_caches_directory “/var/lib/cassandra/saved_caches”
確保這些目錄存在並且可以寫入,如下所示。
[root@linux cassandra]# mkdir /var/lib/cassandra
[root@linux cassandra]# mkdir /var/log/cassandra
[root@linux /]# chmod 777 /var/lib/cassandra
[root@linux /]# chmod 777 /var/log/cassandra
本次測試建立另一個目錄保存
[cassandra@k8s2 /]$ sudo mkdir data
[cassandra@k8s2 /]$ sudo mkdir data/{data,commitlog,saved_caches} -p
[cassandra@k8s2 /]$ sudo chmod 777 -R data/
因此目錄對應關系如下:
- data_file_directories “/data/data”
- commitlog_directory “/data/commitlog”
- saved_caches_directory “/data/saved_caches”
按照此對應修改cassandra.yaml文件
配置環境變量
[cassandra@k8s2 ~]$ vim .bashrc
export CASSANDRA_HOME=/cassandra
export PATH=$PATH:$CASSANDRA_HOME/bin
[cassandra@k8s2 ~]$ source ~/.bashrc
[cassandra@k8s2 ~]$ echo $CASSANDRA_HOME
/cassandra
啟動cassandra
[cassandra@k8s2 bin]$ ./cassandra -f
本次啟動報錯
OpenJDK 64-Bit Server VM warning: Cannot open file /cassandra/logs/gc.log due to No such file or directory
於是手工建立一個logs這個目錄
[cassandra@k8s2 cassandra]$ sudo mkdir logs
[cassandra@k8s2 cassandra]$ sudo chown cassandra:cassandra logs
再次啟動,報錯
ERROR [main] 2020-11-25 14:47:55,403 CassandraDaemon.java:803 - Local host name unknown: java.net.UnknownHostException: bogon: bogon: 未知的名稱或服務
修改hostname,host,網卡中指定hostname
再次啟動,報錯
ERROR [main] 2020-11-25 15:21:46,387 CassandraDaemon.java:803 - Has no permission to create directory /cassandra/data/hints
手工建立相關目錄,再次啟動,成功
正常啟動
[cassandra@k8s2 bin]$ ./cassandra -f
[cassandra@k8s2 network-scripts]$ netstat -tpln
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:46253 0.0.0.0:* LISTEN 12781/java
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 192.168.56.102:9042 0.0.0.0:* LISTEN 12781/java
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 192.168.56.102:7000 0.0.0.0:* LISTEN 12781/java
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:7199 0.0.0.0:* LISTEN 12781/java
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN -
tcp6 0 0 :::111 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 ::1:631 :::* LISTEN -
tcp6 0 0 ::1:6010 :::* LISTEN -
tcp6 0 0 ::1:6011 :::* LISTEN -
tcp6 0 0 :::5355 :::* LISTEN -
在命令行窗口執行命令bin/cassandra -f,按“Control-C” 停止Cassandra.
如果是通過命令行bin/cassandra后台啟動Cassandra,那么必須調用kill pid or pkill -f CassandraDaemon 來停止Cassandra, 其中pid是Cassandra的進程id, 此pid能夠通過執行pgrep -f CassandraDaemon得到。