CentOS導入Cassandra 3.11.6クラスタ
Cassandraはオープンソース分布式NoSQLデータベースで、中心のない対等分布式モデルを採用し、高可用性と高伸張性の特徴を備えている.最初はFacebookが開発し、オープンソースプロジェクトに移行した.Amazon独自の完全分散型のDynamoをベースに、Google BigTableベースのColumn Familyのデータモデルを組み合わせ、多くの点でDynamo 2.0と呼ぶことができます.本論文はCentOS 7に基づく.6、Cassandra 3.11.6を配備して、詳しい過程は以下の通りです.
一、準備
1、機械の準備
2台の機器を用意し、CentOS 7を取り付ける.6.ip計画は以下の通りである.
192.168.2.13 ca-node1
192.168.2.14 ca-node2
2、ファイアウォールを閉じる
3、JDKのインストール
ここにjdk-8 u 231-linux-x 64をインストールし、環境変数を構成します.
4、ホスト名の変更
ホスト名をhostnameコマンドで表示し、変更後に再起動します.
5、IPマッピングの構成
最後に、以下を追加します.
192.168.2.13 ca-node1
192.168.2.14 ca-node2
6、ユーザーの作成
rootユーザーの下でcassandraユーザーを追加します.
cassandraユーザーに権限を付与:
#編集/etc/sudoers vi/etc/sudoers#root ALL=(ALL)ALLでcassandra構成を追加し、最終的にはroot ALL=(ALL)ALL cassandra ALL=(ALL)ALL
二、Cassandraの配置
1、Cassandraの配置
からhttps://mirrors.tuna.tsinghua.edu.cn/apache/cassandra/3.11.6/apache-cassandra-3.11.6-binをダウンロードします.tar.gz、サーバにアップロードし、解凍します./Dataディレクトリは大容量ディスクであり、データファイルとログファイルディレクトリを作成します.
ca-node 1を構成し、apache-cassandra-3.11.6/conf/cassandraを編集します.yml、修正内容は以下の通りです.
ca-node 2を構成し、apache-cassandra-3.11.6/conf/cassandraを編集します.yml、修正内容は以下の通りです.
2、コマンドライン起動
クラスタのステータスを表示するには、次の手順に従います.
3、起動
起動サービスの作成
内容は次のとおりです.
三、簡単に使う
一、準備
1、機械の準備
2台の機器を用意し、CentOS 7を取り付ける.6.ip計画は以下の通りである.
192.168.2.13 ca-node1
192.168.2.14 ca-node2
2、ファイアウォールを閉じる
systemctl stop firewalld
systemctl disable firewalld
3、JDKのインストール
ここにjdk-8 u 231-linux-x 64をインストールし、環境変数を構成します.
4、ホスト名の変更
#
hostnamectl set-hostname ca-node1
ホスト名をhostnameコマンドで表示し、変更後に再起動します.
5、IPマッピングの構成
vim /etc/hosts
最後に、以下を追加します.
192.168.2.13 ca-node1
192.168.2.14 ca-node2
6、ユーザーの作成
rootユーザーの下でcassandraユーザーを追加します.
#
groupadd cassandra
#
adduser cassandra -g cassandra
#
passwd cassandra
cassandraユーザーに権限を付与:
#編集/etc/sudoers vi/etc/sudoers#root ALL=(ALL)ALLでcassandra構成を追加し、最終的にはroot ALL=(ALL)ALL cassandra ALL=(ALL)ALL
二、Cassandraの配置
1、Cassandraの配置
からhttps://mirrors.tuna.tsinghua.edu.cn/apache/cassandra/3.11.6/apache-cassandra-3.11.6-binをダウンロードします.tar.gz、サーバにアップロードし、解凍します./Dataディレクトリは大容量ディスクであり、データファイルとログファイルディレクトリを作成します.
#
mkdir -p /data/cassandra/data
#
mkdir -p /data/cassandra/commitlog
#
mkdir -p /data/cassandra/saved_caches
ca-node 1を構成し、apache-cassandra-3.11.6/conf/cassandraを編集します.yml、修正内容は以下の通りです.
# ,
cluster_name: 'SDC-CA-Cluster'
#
data_file_directories:
- /data/cassandra/data
#
commitlog_directory: /data/cassandra/commitlog
#
saved_caches_directory: /data/cassandra/saved_caches
# ip, , ,
- seeds: "192.168.2.13"
# ( ip )
listen_address: ca-node1
#rpc ( ip 0.0.0.0)
rpc_address: 0.0.0.0
# rpc_address 0.0.0.0,
broadcast_rpc_address: 1.2.3.4
ca-node 2を構成し、apache-cassandra-3.11.6/conf/cassandraを編集します.yml、修正内容は以下の通りです.
# ,
cluster_name: 'SDC-CA-Cluster'
#
data_file_directories:
- /data/cassandra/data
#
commitlog_directory: /data/cassandra/commitlog
#
saved_caches_directory: /data/cassandra/saved_caches
# ip, , ,
- seeds: "192.168.2.13"
# ( ip )
listen_address: ca-node2
#rpc ( ip 0.0.0.0)
rpc_address: 0.0.0.0
# rpc_address 0.0.0.0,
broadcast_rpc_address: 1.2.3.4
2、コマンドライン起動
# cassandra
cd /data/soft/apache-cassandra-3.11.6
# cassandra
./bin/cassandra
クラスタのステータスを表示するには、次の手順に従います.
[cassandra@ca-node1 apache-cassandra-3.11.6]$ ./bin/nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 192.168.2.13 360.3 KiB 256 100.0% 434437e1-92c1-4508-9a70-5f45edea1db7 rack1
UN 192.168.2.14 300.27 KiB 256 100.0% bf5b6b34-aaa8-4db6-800b-1525a4d54f3f rack1
3、起動
起動サービスの作成
sudo vim /usr/lib/systemd/system/cassandra.service
内容は次のとおりです.
[Unit]
Description=Cassandra Server Service
After=network.service
[Service]
Type=simple
#jdk
Environment=JAVA_HOME=/usr/java/jdk1.8.0_231-amd64
PIDFile=/var/run/cassandra.pid
#cassandra
User=cassandra
Group=cassandra
# Cassandra
ExecStart=/data/soft/apache-cassandra-3.11.6/bin/cassandra -f -p /var/run/cassandra.pid
StandardOutput=journal
StandardError=journal
LimitNOFILE=100000
LimitMEMLOCK=infinity
LimitNPROC=32768
LimitAS=infinity
[Install]
WantedBy=multi-user.target
#
sudo systemctl status cassandra
#
sudo systemctl start cassandra
#
sudo systemctl enable cassandra
三、簡単に使う
# cassandra
cd /data/soft/apache-cassandra-3.11.6
# cassandra
./bin/cqlsh
Connected to SDC-CA-Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.6 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
#
cqlsh> describe keyspaces;
system_traces system_schema system_auth system system_distributed
#
cqlsh> create keyspace demo with replication = {'class':'SimpleStrategy', 'replication_factor' : 1};
# Keyspace
cqlsh> use demo;
#
cqlsh:demo> create table student(
id int primary key,
name text,
age smallint
);
#
cqlsh:demo> insert into student(id,name,age) VALUES (1,'wangm',30);
cqlsh:demo> insert into student(id,name,age) VALUES (2,'wangj',29);
#
cqlsh:demo> select * from student;
id | age | name
----+-----+-------
1 | 30 | wangm
2 | 29 | wangj
(2 rows)
#
cqlsh:demo> create index student_name_index on student(name);
#
cqlsh:demo> select * from student where name = 'wangm';
id | age | name
----+-----+-------
1 | 30 | wangm
(1 rows)
#
cqlsh:demo> describe student;
CREATE TABLE demo.student (
id int PRIMARY KEY,
age smallint,
name text
) WITH bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND comment = ''
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND crc_check_chance = 1.0
AND dclocal_read_repair_chance = 0.1
AND default_time_to_live = 0
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99PERCENTILE';
CREATE INDEX student_name_index ON demo.student (name);