无法在我的 vagrant 虚拟 cassandra 集群上 运行 nodetool
Can't run nodetool on my vagrant virtual cassandra cluster
基本上我正在尝试 运行 一个简单的两节点虚拟 cassandra 集群来进行试验。我正在尝试设置它,所以我需要做的就是 运行 vagrant up
并安装 cassandra 和 运行ning。
我已经设法使实际的集群正常工作(我知道这一点是因为在一个节点中我创建了一个键空间并 table 并向其中插入了一个值,我可以从另一个节点访问该值)但我似乎无法让 nodetool 工作。
当我运行
nodetool -h 192.168.10.11 -p 7000 status
我收到错误
nodetool: Failed to connect to '192.168.10.11:7000' - SocketException: 'Connection reset'.
我更改端口的原因是为了避免端口冲突。 (所以我将一个节点的 jmx_port 更改为 7000,另一个节点更改为 7001,我还更改了 rpc_port 和 native_transport_port 以便每个节点都使用唯一的端口)
好的,我想出了我需要修复什么才能让 nodetool 正常工作。
首先你根本不需要修改jmx端口设置。您也不需要将其公开为 forwarded_port。
现在介绍如何让它真正起作用:
在 cassandra-env.sh 中有一行被注释掉说:
#JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<hostname>
取消注释此行并输入您希望 nodetool 从中连接的节点或您要连接的节点的主机名或 IP。就这么简单。
对于使用 Ubuntu 在 vagrant 上安装 Cassandra 运行 仍然有问题的人,我想分享我的 shell 脚本,安装 Java8 和 Cassandra。也许它有帮助:
# Update Packages
sudo apt-get update
# sudo apt-get upgrade -y
# Install necassary software
sudo apt-get install software-properties-common python-software-properties debconf-utils curl --assume-yes
# Installing the Oracle Java Virtual Machine
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
sudo apt-get install oracle-java8-set-default -y
# Installing Cassandra
curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add -
echo "deb http://debian.datastax.com/community stable main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
sudo apt-get update
sudo apt-get install dsc22=2.2.7-1 cassandra=2.2.7 -y
sudo apt-get install cassandra-tools=2.2.7 -y
sudo chmod 750 /var/run/cassandra
# Configure hostname or ip for nodetool
sudo sed -i 's@# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"@JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"@' /etc/cassandra/cassandra-env.sh
sleep 10
# Status Cassandra And Oracle Java Version
java -version
sudo service cassandra status
sudo nodetool status
基本上我正在尝试 运行 一个简单的两节点虚拟 cassandra 集群来进行试验。我正在尝试设置它,所以我需要做的就是 运行 vagrant up
并安装 cassandra 和 运行ning。
我已经设法使实际的集群正常工作(我知道这一点是因为在一个节点中我创建了一个键空间并 table 并向其中插入了一个值,我可以从另一个节点访问该值)但我似乎无法让 nodetool 工作。
当我运行
nodetool -h 192.168.10.11 -p 7000 status
我收到错误
nodetool: Failed to connect to '192.168.10.11:7000' - SocketException: 'Connection reset'.
我更改端口的原因是为了避免端口冲突。 (所以我将一个节点的 jmx_port 更改为 7000,另一个节点更改为 7001,我还更改了 rpc_port 和 native_transport_port 以便每个节点都使用唯一的端口)
好的,我想出了我需要修复什么才能让 nodetool 正常工作。
首先你根本不需要修改jmx端口设置。您也不需要将其公开为 forwarded_port。
现在介绍如何让它真正起作用:
在 cassandra-env.sh 中有一行被注释掉说:
#JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<hostname>
取消注释此行并输入您希望 nodetool 从中连接的节点或您要连接的节点的主机名或 IP。就这么简单。
对于使用 Ubuntu 在 vagrant 上安装 Cassandra 运行 仍然有问题的人,我想分享我的 shell 脚本,安装 Java8 和 Cassandra。也许它有帮助:
# Update Packages
sudo apt-get update
# sudo apt-get upgrade -y
# Install necassary software
sudo apt-get install software-properties-common python-software-properties debconf-utils curl --assume-yes
# Installing the Oracle Java Virtual Machine
sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections
sudo apt-get install oracle-java8-set-default -y
# Installing Cassandra
curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add -
echo "deb http://debian.datastax.com/community stable main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
sudo apt-get update
sudo apt-get install dsc22=2.2.7-1 cassandra=2.2.7 -y
sudo apt-get install cassandra-tools=2.2.7 -y
sudo chmod 750 /var/run/cassandra
# Configure hostname or ip for nodetool
sudo sed -i 's@# JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=<public name>"@JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=127.0.0.1"@' /etc/cassandra/cassandra-env.sh
sleep 10
# Status Cassandra And Oracle Java Version
java -version
sudo service cassandra status
sudo nodetool status