介紹Cassandra基本安裝方式 |
依照此Cassandra安裝方式, 就可以建立起叢集, 但像Cassandra這種分散式系統還是建議用container(例如docker)的方式才可以快速建立或移除, 用docker建立時有幾個要注意的地方
- docker若使用軟體定義路由的方式會降低50%吞吐量, 建議使用本機網路, 但會限制每個container只能部屬一台節點
- 從資料管理角度來說會希望資料目錄設定在docker外部, 這讓升級或是關閉容器仍可保留資料
在此是使用一般安裝方式的, 版本是apache cassandra(環境為Ubuntu Linux)
Cassandra
|
|
Cassandra Spark Connector
|
pip install cqlsh
|
使用
|
Spark-submit …
--driver-class-path
/usr/local/spark2/jars/sqljdbc42.jar --packages
datastax:spark-cassandra-connector:2.0.0-M2-s_2.11
|
安裝
|
需要安裝jdk1.8以上(對應cassandra版本)
tar -xvf apache-cassandra-3.9-bin.tar.gz Cassandra
sudo mkdir /usr/local/cassandra
sudo mv cassandra3.X /usr/local/cassandra
|
測試
|
bin目錄下 cassandra -f,
bin/nodetool status
bin/nodetool gossipinfo
bin/nodetool repair 修改REPLICATION 要做repair讓兩邊資料同步
cqlsh 192.168.0.41
|
指令
|
SimpleStrategy:單一數據中心
NetworkTopologyStrategy:多數據中心
replication factor 2表示一行數據有2份副本,每份副本保存在不同的節點上
CREATE KEYSPACE mykeyspace WITH
REPLICATION = {
'class' : 'SimpleStrategy',
'replication_factor' : 2
};
create keyspace if not exists cycling
with replication = {
'class' : 'NetworkTopologyStrategy',
'datacenter1' : 2
};
alter keyspace system_auth with
replication = {
'class' : 'NetworkTopologyStrategy',
'dc1' : 3, 'dc2' : 2
} ;
USE mykeyspace;
CREATE TABLE users ( user_id int PRIMARY KEY, fname text,
lname text);
INSERT INTO users (user_id, fname, lname) VALUES (1745, 'john', 'smith');
INSERT INTO users (user_id, fname, lname) VALUES (1744, 'john', 'doe');
INSERT INTO users (user_id, fname, lname) VALUES (1746, 'john', 'smith');
SELECT * FROM users;
describe tables;
|
修改cassandra.yaml
|
修改cassandra.yaml(/usr/local/cassandra/conf)
listen address定義了叢集中其他節點的連線方式。所以多節點的叢集必須將這個改成他實際的網絡卡地址。rpc address定義了這個節點在哪裡監聽客戶端。所以可以跟node的IP地址一樣
seed: node啟動時能找到其他node的服務。適合設置較為穩定的node,叢集環境下可多個seeds
cluster_name :'TestCluster'
-seeds :192.168.0.41(要當成seed的那台,也可以多節點)
listen_address :192.168.0.41(42)
rpc_address :192.168.0.41(42)
endpoint_snitch :GossipingPropertyFileSnitch
auto_bootstrap :false(要當成seed的那台設定就好,空的叢集起來時)
*/etc/cassandra/cassandra-rackdc.properties
dc1 to datacenter1
兩台設定不同rack1,2
===========常用配置===========
(1)cluster_name
同一集群需要配置成相同的名字才可以
(2)data_file_directories
數據文件存放的文件。預設是$CASSANDRA_HOME/data/data。
(3)commitlog_directory
commitlog_directory與data_file_directories可配置於不同的目的地,充分利用多硬碟的IO能力。
(4)seed_provider.seeds
外面系統呼叫的server就改成seeds
(5)listen_address : listen to other C* node 的位址
(6)rpc_address : listen to client call的位址, cqlsh的入口, 預設為listen_address
安裝的IP。
(7)各種timeout
如果你需要Cassandra集群用於數據分析,那么你就需要各种timeout的值。比如:
# How long the coordinator should wait
for read operations to complete
read_request_timeout_in_ms: 100000
|
建立cassandra 叢集
|
移動到data1叢集
ssh data1
sudo mkdir /usr/local/cassandra
sudo chown charles:charles
/usr/local/cassandra
exit
or
sudo scp -r /usr/local/cassandra
charles@data1:/usr/local
|
再針對參數個別修改
|
|
cassandra UI tool
|
企業版才支援nosql free
but no open source
http://dbeaver.jkiss.org/download/enterprise/
|
cassandra .net
|
Datastax cassandra driver
工具 -> nuget管理套件 -> nuget主控台
|
cassandra程序已開啟錯誤處理
|
Port already in use: 7199
sudo pkill -f CassandraDaemon
|
沒有留言:
張貼留言