从Windows主机

时间:2016-12-14 14:20:44

标签: linux cassandra virtualbox

我正在使用虚拟盒作为Cassandra DB的Linux访客,我正试图通过我的Windows主机访问它,但是,我不知道这样做的正确配置是什么。

在虚拟机上我正在使用“仅主机网络”从Windows进行通信。

任何人都知道如何进行这些配置?

3 个答案:

答案 0 :(得分:2)

也许,这是来宾的网络配置。 在VirtualBox环境中,如果要从主机与guest虚拟机进行通信,则VM的网络类型必须为“桥接网络”或“仅主机网络”。

您可以在此处找到更多信息:https://www.virtualbox.org/manual/ch06.html

答案 1 :(得分:0)

所以你试图从虚拟机中的Linux客户端连接到Cassandra?或者是相反的方式?

无论如何,无论方向如何,都要确保您的IP可以访问并且Cassandra端口是打开的(从9042开始)。

答案 2 :(得分:0)

从主机操作系统访问来宾VM上的Cassandra

为了将来参考我自己和其他人,这对我来说对Cassandra v3.10来说很有用:

http://grokbase.com/t/cassandra/user/14cpyy7bt8/connect-to-c-instance-inside-virtualbox

一旦您的Guest虚拟机配置了Cassandra,我就拥有了一台仅限主机的网络适配器,其IP为192.168.5.10。

然后必须修改/etc/cassandra/cassandra.yaml来设置:

发件人

rpc_address: localhost

rpc_address: 192.168.5.10

然后运行sudo service cassandra restart并给它15秒......

然后在来宾VM或主机上,以下工作:

cqlsh 192.168.5.10

希望能有所帮助。

Vagrantfile供参考

请注意,它不适用于集群中的多个节点

# Adjustable settings
## Cassandra cluster settings
mem_mb = "3000"
cpu_count = "2"
server_count = 1
network = '192.168.5.'
first_ip = 10

servers = []
seeds = []
cassandra_tokens = []
(0..server_count-1).each do |i|
  name = 'cassandra-node' + (i + 1).to_s
  ip = network + (first_ip + i).to_s
  seeds << ip
  servers << {'name' => name,
              'ip' => ip,
              'provision_script' => "sleep 15; sudo sed -i -e 's/^rpc_address: localhost/rpc_address: #{ip}/g' /etc/cassandra/cassandra.yaml; sudo service cassandra restart;",
              'initial_token' => 2**127 / server_count * i}
end

# Configure VM server
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/xenial64"
  servers.each do |server|

    config.vm.define server['name'] do |x|
      x.vm.provider :virtualbox do |v|
        v.name = server['name']
        v.customize ["modifyvm", :id, "--memory", mem_mb]
        v.customize ["modifyvm", :id, "--cpus"  , cpu_count  ]
      end
      x.vm.network :private_network, ip: server['ip']
      x.vm.hostname = server['name']
      x.vm.provision "shell", path: "provision.sh"
      x.vm.provision "shell", inline: server['provision_script']

    end
  end
end

provision.sh

# install Java and a few base packages
add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install vim curl zip unzip git python-pip -y -q

# Java install - adjust if needed
# apt-get install openjdk-7-jdk -y -q
apt-get install openjdk-8-jdk -y -q

# Install Cassandra 
echo "deb http://www.apache.org/dist/cassandra/debian 310x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra -y
sudo service cassandra start