不多說,直接上干貨!
最近我開始在windows環境中使用Cassandra,雖然在Cassandra站點的安裝命令非常清楚和精簡,我仍然在環境配置上遇到一些問題。所以我想為后來者分享下我的經驗。
官網下載地址
http://cassandra.apache.org/

http://cassandra.apache.org/download/

http://www.apache.org/dyn/closer.lua/cassandra/3.11.1/apache-cassandra-3.11.1-bin.tar.gz

windows環境里下載且安裝配置Cassandra(最新的3.11.1版本)
第一步:安裝JDK8.0以上的JDK版本,配置好相關的環境變量。8.0以下的JDK將無法正常啟動Cassandra服務,造成不必要的麻煩。
第二步:安裝python2.7版本或以上的版本用於啟動cqlsh的shell命令
第三步 : 在Cassandra官網上下載最新的Cassandra版本,本文使用的是apache-cassandra-3.11.1,解壓到你想要的目錄。在環境變量中設置CASSANDRA_HOME為你的Cassandra安裝目錄。
第四步:修改cassandra.yaml文件中的配置參數。
我這里是放在D:\SoftWare下



接下來,對windows里的環境變量設置



接下來是,修改cassandra里的conf目錄下配置文件

data_file_directories: - D:\SoftWare\apache-cassandra-3.11.1\data

修改為
commitlog_directory: D:\SoftWare\apache-cassandra-3.11.1\commitlog
saved_caches_directory: D:\SoftWare\apache-cassandra-3.11.1\saved_caches
雙擊bin目錄下的cassandra.bat啟動cassandra服務

出現下面的圖后表示服務啟動成功了,記住,這個cmd的窗口不要關閉,關閉了好像服務就被一起關閉了,接下來客端的連接好像就不行了。
啟動之后, 現在你需要cqlsh來與Cassandra數據庫交互。這里會稍微有點曲折,因為它在cassandra下載的包中。因此在我們插入數據到cassandra中還需要做點變通
(1)從 http://www.python.org/download/releases/ 下載Python包。這里需注意一點。雖然python最新的版本是3x, 但是在這個版本上我們無法安裝thrift庫。 所以下載並 安裝python2.7版本。
(2)從http://pypi.python.org/pypi/thrift下載Thrift庫。 通過執行以下命令安裝thrift模塊。python setup.py install
Step 4: 現在你可以安裝cql模塊,這個模塊可以下你的cassandra下載包中找到。setup.py存在與 cassandra_home\pylib 中。 再次執行以下命令:python setup.py install
Step 5: 執行命令 python cqlsh localhost 9160,(9160是端口,你需要改成你自己的sassandra端口), 然后可以啟動cql命令工具。
以下是執行的example:
CREATE KEYSPACE mykeyspace WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
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');
首先我將根據官方文檔,向你介紹conf目錄下cassandra.yaml這個配置文件中幾個重要的參數,無論是搭建集群環境,還是未來使用cqlsh的shell命令,這些參數都顯得十分重要:
cluster_name:集群名稱,通常用於防止一個邏輯集群中的機器加入其他的集群,具有唯一標識性。 默認值:Test Cluster。
我的建議:在生產環境不要使用默認的集群名,以免未來在擴展多數據中心,多集群時引起命名沖突,造成不必要的麻煩。此外,在啟動服務前提前修改好此參數,否則服務一旦啟動,將圍繞此集群名建立一系列的系統表,到時想更換集群名字只能刪除所有系統表,很麻煩。seed_provider:-parameters:-seeds:集群中的種子節點,被視為聯系不同節點的主機地址。節點通過該列表的主機來找到對方,並學習集群環中的拓撲結構,通過Gossip相互溝通。
我的建議:種子實際上是一個逗號分隔的地址列表。如果你想要設置多個種子節點,你應該遵循這樣的格式:Ex: “ip1,ip2,ip3”,在此處我填寫 seeds:192.168.30.101。我僅設置一台主機。listen_address: 通常用於通知其他節點通過此ip地址連接到你這台機器節點。
我的建議:不要將監聽地址設置為0.0.0.0,這樣做通常是錯誤,而是設置成具體的本機ip,如此處我設置為 listen_address: 192.168.30.101。rpc_address: 此ip地址將綁定 Thrift RPC 服務,本地的傳輸服務也將使用此ip。
我的建議: 不要將監聽地址設置為0.0.0.0或者localhost,這樣做通常是錯誤,而是設置成具體的本機ip,如此處我設置為 rpc_address: 192.168.30.101。data_file_directories: Cassandra通常在該磁盤目錄下存儲數據,進行均勻地分布數據, 這取決於你配置的壓縮策略。
我的建議: 你可以設置成你想要的任何目錄地址,但是我建議你采用默認的方式,Cassandra將自動加載到如下目錄$CASSANDRA_HOME/data/data,方便管理。commitlog_directory: 日志存放目錄,通常用於記錄寫入數據的日志,當發生意外無法寫入到SSTable時,可以使用commitlog恢復數據,防止丟失。
我的建議:你可以設置成你想要的任何目錄地址,但是我建議你采用默認的方式,Cassandra將自動加載到如下目錄$CASSANDRA_HOME/data/commitlog,方便管理。saved_caches_directory: 緩存地址
我的建議: 你可以設置成你想要的任何目錄地址,但是我建議你采用默認的方式,Cassandra將自動加載到如下目錄$CASSANDRA_HOME/data/saved_caches,方便管理。logback.xml: 通常用於系統日志輸出的地址配置。
我的建議: 你可以設置成你想要的任何目錄地址,但是我建議你采用默認的方式,Cassandra將自動加載到如下目錄$CASSANDRA_HOME/logs目錄下,方便管理。
