Configuration

為什麼 nodetool 在我的 Cassandra 集群上不起作用?

  • January 9, 2018

我一直無法讓 nodetool 正確執行以向我提供有關集群的資訊。我們有一個在 CentOS 7.3 下執行的 Cassandra 3.11.1 節點的簡單 3 節點集群——使用 gossip snitch 和複製。我們在文件系統上有一個特殊的位置放置節點配置,但這些配置是使用環境變數適當設置的。“通用”配置位於客戶端應用程序的環境中。

這些是使用 nodetool 的嘗試(我已將確切的伺服器名稱替換為 /hostname/。)

% nodetool -h /主機名/狀態
nodetool:發現意外參數:[/hostname/, status]
請參閱“節點工具幫助”或“節點工具幫助”。

也許幫助是錯誤的,最後會出現標誌?執行這個:

% 節點工具狀態 -h /主機名/

給我使用資訊。

我最喜歡的是這個:

% nodetool 幫助狀態
nodetool:對於輸入字元串:“幫助”
請參閱“節點工具幫助”或“節點工具幫助”。

我可以連接 cqlsh。無論我是在遠端主機還是集群節點之一上,我都會從 nodetool 得到相同的響應。Python 客戶端連接良好,我們已經能夠創建鍵空間並從遠端主機批量載入數據。

我確信我忽略了一些配置,但我在文件中找不到任何關於它可能是什麼的資訊。

關於如何讓 nodetool 工作的任何建議?

經過一番修補後,我想通了;在此處發布以關閉主題並幫助他人。

conf/ 目錄中的所有腳本協同工作,如果您安裝在非標準位置(即 tarball 安裝),則需要重定向許多環境變數。

對於我們集群中的每個節點,我們(現在)使用: (1) cassandra-env.sh (2) cassandra-rackdc.properties (3) cassandra.yaml (4) jvm.options

所有其他配置文件都使用環境變數從 tarball 指向 conf/ 目錄。

(2)和(3)設置節點的屬性,比如它的名字,開啟八卦等:

(1) 和 (4) 由 cassandra bash 腳本在啟動時使用——該腳本會尋找其他配置文件。我們已將其設置為 cassandra.in.sh 可以在安裝區域中找到;但之前沒有找到 (1) 和 (4),這些是啟動 JMX 所必需的,埠 7199,nodetool 使用該埠連接到集群。

引用自:https://dba.stackexchange.com/questions/193668