[英]How do I properly configure Cassandra in EC2 to connect to it?
我有一個帶有Centos 8的AWS EC2實例。
在這個實例中,我已經成功安裝了Cassandra ( 3.11.10 ) 數據庫。
在這個數據庫中,我已經通過這個CQL查詢成功地創建了鍵空間:
create keyspace if not exists dev_keyspace with replication={'class': 'SimpleStrategy', 'replication_factor' : 2};
然后我編輯了配置文件( /etc/cassandra/default.conf/cassandra.yaml
):
cluster_name: "DevCluster"
seeds: <ec2_private_ip_address>
listen_address: <ec2_private_ip_address>
start_rpc: true
rpc_address: 0.0.0.0
broadcast_rpc_address: <ec2_private_ip_address>
endpoint_snitch: Ec2Snitch
之后,重新啟動數據庫:
Datacenter: eu-central
======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN <ec2_private_ip_address> 75.71 KiB 256 100.0% XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 1a
當我嘗試使用此類憑據連接到 Cassandra 數據庫時,會引發錯誤:
host: <ec2_public_ip_address>
port: 9042
keyspace: dev_keyspace
username: cassandra (default)
password: cassandra (default)
錯誤:
嘗試查詢的所有主機均失敗(已嘗試:/<ec2_private_ip_address>:9042 (com.datastax.driver.core.exceptions.TransportException: [/<ec2_private_ip_address>:9042] 無法連接))
我忘了配置什么? 如果您需要更多信息,請與我們聯系。
您將無法遠程訪問集群,因為您已將 Cassandra 配置為僅使用以下設置偵聽私有 IP 上的客戶端:
broadcast_rpc_address: <ec2_private_ip_address>
為了讓節點接受來自外部客戶端的請求,您需要在cassandra.yaml
中設置以下內容:
listen_address: private_ip
rpc_address: public_ip
請注意,您不需要設置廣播 RPC 地址。 您需要重新啟動 Cassandra 才能使更改生效。
您還需要在 AWS 管理控制台上定義一個具有入站規則的安全組,以允許在端口9042
上進入您的 EC2 實例。 干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.