無法向 cassandra 進行身份驗證:無法達到一致性級別 LOCAL_ONE
語境:
我們有一個 Cassandra 集群,其中 3 個節點部署為 Openshift 中的有狀態集。這三個節點配置在同一個數據中心、同一個機架中。
我還編寫了一個腳本來測試 Cassandra 一致性級別錯誤。它在 Openshift 中作為 pod 執行,連接到集群並在循環中執行選擇查詢。它知道所有 Cassandra 節點的 IP 地址。
問題:
如果我將有狀態集(也在該節點上執行)中的副本數從 3 減少到 2
nodetool drain
,則腳本無法再連接到集群。我收到以下錯誤:cassandra.cluster.NoHostAvailable: (‘無法連接到任何伺服器’, {‘172.17.0.10’: OSError(None, “嘗試連接到
$$ (‘172.17.0.10’, 9042) $$. 最後一個錯誤:超時”), ‘172.17.0.9’: AuthenticationFailed(‘無法對 172.17.0.9 進行身份驗證:錯誤或來自伺服器:code=0100$$ Bad credentials $$message=“使用者管理員身份驗證期間出錯:org.apache.cassandra.exceptions.UnavailableException: 無法達到一致性級別 LOCAL_ONE”’,), ‘172.17.0.8’: ConnectionRefusedError(111, “嘗試連接到$$ (‘172.17.0.8’, 9042) $$. 最後一個錯誤:連接被拒絕”), ‘172.17.0.11’: AuthenticationFailed(‘無法對 172.17.0.11 進行身份驗證:來自伺服器的錯誤:程式碼 = 0100$$ Bad credentials $$message=“使用者管理員身份驗證期間出錯:org.apache.cassandra.exceptions.UnavailableException: 無法達到一致性級別 LOCAL_ONE”’,)})
問題:
由於兩個節點仍然可用,為什麼認證無法獲得 LOCAL_ONE 一致性級別,我該如何解決我的問題?
創建集群時 - 您是否更改了鍵空間的複制因子
system_auth
?如果沒有,那麼您需要恢復該節點,並將其複制因子更改為 3。請參閱此處的詳細說明。