I want to setup 3 nodes on windows machine for testing purpose. i already have community version installed. I followed some tutorials on youtube to setup 1 machine 3 nodes and docs as well. all 3 nodes are up but they are not connected. i can only see 1 node serving 100% load on "nodetool status"
Here is what i wanted, 3 instances connected as below
127.0.0.1 (seed)
127.0.0.2
127.0.0.3
Here is what i did,
Installed Datastax community edition 2.0.11
Copied apache-cassandra/conf -> conf2 & conf3
modified cassandra.yaml for
cluster_name
seed_address (127.0.0.1)
listen_address (seed ip)
rpc_address 0.0.0.0
endpoint_snitch: SimpleSnitch
Above things were documented but i had to change below ports as it was single machine
rpc_port: [if default is 9160 then node1 will be 9161]
native_transport_port:
storage_port:
Changed "JMX_PORT" in cassandra.bat file (created 2 copies of main file)
started all
I tried ccm but its not picking already installed cassandra it tries to build from source and fails.
Am i missing something, it been 2 days (4-5 hours) i am trying to set this up.
Thanks,
Ninad
From my own tests, on Windows 7, 127.0.0.1/127.0.0.2 point to the same interface so you can't bind to the same port. Yet using different ports for each node, I had the same issue as you (nodes not communicating with each other). At the end I would recommend using Linux for this kind of tests, even a simple virtual machine, because for Linux 127.0.0.1 and 127.0.0.2 are not the same.
Related
Last week I decided to upgrade the mac to the latest version Monterey. Well. Most things works, except for Vagrant. Well.. it works, except there is almost no connection to the server.
vagrant ssh works.
I have been able to launch virtualbox, but access to http or mysql is not happening.
I know the mysql-server is running. The same goes with the apache server.
Logs have been checked and I cannot see that any traffic going to the server.
Ping is not working.
I have updated virtualbox. I have destroyed the box and upgraded vagrant / homestead. still no luck.
MORE INFO:
When I run traceroute I see that the first hit is the correct IP I have set in hosts file. Then it goes to 192.168.0.1 which isn't going anywhere.
I guess the 192.168.0.1 comes from the mac virtualbox / vagrant is running on.
Any pointers on what to do next are welcome.
Probably the same problem as mine (I couldn't use any longer IP 192.168.10.10). VirtualBox did some changes lately (from VirtualBox 6.1.28 I think) and a new configuration is needed to use your preferred (192.168.0.1) IP address:
On Linux, macOS and Solaris Oracle VM VirtualBox will only allow IP
addresses in 192.168.56.0/21 range to be assigned to host-only
adapters. For IPv6 only link-local addresses are allowed. If other
ranges are desired, they can be enabled by creating
/etc/vbox/networks.conf and specifying allowed ranges there. For
example, to allow 10.0.0.0/8 and 192.168.0.0/16 IPv4 ranges as well as
2001::/64 range put the following lines into /etc/vbox/networks.conf:
* 10.0.0.0/8 192.168.0.0/16
* 2001::/64
You can check the whole information here.
Alternatively (skipping the networks.conf configuration) you can use any IP from the initially supported range like for instance: 192.168.56.10
I'm trying to follow MonetDB docs on Cluster Management
to setup a 3 nodes cluster using 3 Centos machines, I created the 3 dbfarm using monetdbd create /path/to/mydbfarm and from the first node, I run monetdb discover and it returns nothing where it should discover the other nodes, and when I try to run monetdb -h [second node IP] -P mypasshphrase status it returns the following error
status: cannot connect: Connection refused
PS: I have a passwordless connection between these 3 nodes, ssh [any node IP] works just fine,
Thank you
By default MonetDB listens only for local connections. This is for security reasons.
To listen also for remote connections, run
monetdbd set listenaddr=0.0.0.0 .../path/to/dbfarm
on each of the nodes and restart monetdbd.
Here is my setup:
Two instances of Ubuntu 16.04. Second one is clone made from the first one. ElasticSearch is installed only on Guest (Ubuntu) OSes. Configuration has been adjusted after cloning the VM.
I am running with bridged network in VirtualBox - each instance got its IP from the router. Windows (host) firewall is configured appropriately. All machines can ping each other. Ping, Netstat and nmap testing shows that ports 9200 and 9300 are OPEN (tested "remote" hosts also).
ElasticSearch service is running appropriately. I can "curl -XGET" both locally and remotely and get the correct results.
The problem is that the ES from the second machine is not joining the cluster.
Here are the configuration files:
First one:
cluster.name: p4g4n_cluster
node.name: master
node.master: true
network.host: 192.168.0.12
discovery.zen.ping.unicast.hosts: ["192.168.0.12", "192.168.0.17"]
Second one:
cluster.name: p4g4n_cluster
node.name: node1
node.master: false
network.host: 192.168.0.17
discovery.zen.ping.unicast.hosts: ["192.168.0.12", "192.168.0.17"]
if I try curl -XGET 192.168.0.17:9200/_cluster/health I will get master_not_discovered_exception. And if I try basic GET request, I will see that the node1 has _na_ for the cluster_uuid" property, while on first machine - *master*cluster_uuid` is present.
Version of ElasticSearch running is: 5.4.0 and
Version of Lucene is: 6.5.0
Can anyone help me with what needs to happen in order for node1 to see and join the cluster?
I was able to solve this issue.
Digging through the logs showed that this was not a network configuration issue.
Since I first configured the entire ELK stack on one machine and then cloned it, the ES and logstash were already running and pumping syslog logs into the elastic.
Because of this, the cloned machine had the same data folder as the existing one. As it turned out, the node UUID is embedded in the data folder and the solution was to delete the data folder on the cloned VM.
The error that I found in logs was: found existing node {xxx} with the same id but is a different node instance ... So there was an obvious conflict.
I found this github ES issue and this SO answer that dealt with the same issue.
You can try to add network.bind_host: 0.0.0.0 in both servers
I am in the process of setting up a Hadoop cluster of virtual machines on my LAN and a process on one of the vms (the ResourceManager) provides a Web UI which is exhibiting strange behavior. All vms run from my desktop and have been assigned ips.
The URL I am targeting is resourcemanager:8088 and here is the behavior.
From other vms running on my desktop:
curl -v resourcemanager:8088
returns an HTTP 302 Found response with Location: http://resourcemanager:8088/cluster. Looking this up I saw this is a redirect, and curl -L resourcemanager:8088 successfully retrieves the HTML.
From the desktop running the vms:
Trying to reach the URL from (Chrome) browser gives net::ERR_CONNECTION_REFUSED. Also
curl resourcemanager:8088
returns curl: (7) Failed to connect to resourcemanager port 8088: Connection refused.
Each vm has the same /etc/hosts:
::1 localhost
127.0.0.1 localhost
10.0.0.3 namenode
10.0.0.4 resourcemanager
10.0.0.5 datanode1
and the .../drivers/etc/hosts file on my (Windows) desktop looks the same minus the localhost lines.
To make matters more complicated, a second process (the NameNode) also provides a web ui, call it namenode:50070, and I am able to curl it from both the desktop and vms, and I can get to it via browser from my desktop.
Any ideas?
EDIT
Specs:
Desktop OS: Windows 10
VMs OS: Arch Linux latest (Linux kernel 4.5.4)
An initial Arch+hadoop VM was created with Hyper-V, then cloned to create the three "cluster" vms listed above. After cloning, each vm was given a unique hostname (listed above) and assigned a reserved IP address from my router (also listed above). All VMs use an "external vm switch".
I cannot comment, because I do not have 50 reputation yet, but that might have to do with the configuration of the service behind port 8088: The VM probably got a 'small' netmask from the virtual dhcp server, which presumably covered the IP range of all other VMs, not including the host machine. If that had happened and the service was configured like many others -to listen on all interfaces- it would not react on requests and your connection would reach a closed port, causing a 'connection refused' error. How is that?
Can anyone provide Cloudera Manager 4.1 Free Version help with instructions on resolving hosts in EC2?
I have installed Cloudera Manager 4.1 Free Version on an EC2 m1.large instance. When I search for hosts using the external host name (dn1.example.com), it comes up correctly and installs the packages correctly. But, upon inspection, it does not come up. The only server that comes up is the server where Cloudera Manager is installed (ip-#-#-#-136.ec2.internal). I even tried to use the other host names for dn1 (ec2-#-#-#-47.compute-1.amazonaws.com, ip-#-#-#-152.ec2.internal) in the host searches. Both install successfully but don't show up in inspection. I'm at a loss.
Our admin has toyed around with /etc/hosts, /etc/resolv.conf, /etc/sysconfig/network. No combinations seem to work.
If there is an expert out there who can help, please can you explain what to do?
Very grateful,
Ben
I could solve the issue of cloudera successfully adding a host and not showing it in the host list by following changes
in all the host machines(including the one having cloudera manager), add similar contents to /etc/hosts file(note, i have removed the default entry localhost.localdomain)
127.0.0.1 localhost
::1 localhost6.localdomain6 localhost6
X.X.X.X master.cloudera.mydomain master
Y.Y.Y.Y slave1.cloudera.mydomain slave1
Add this extra search entry to /etc/resolv.conf(keep the default search entry as it is)
search cloudera.mydomain
Restart system/network interface for the changes to take effect.
/etc/rc.d/init.d/network restart
Now, try adding both the machines. it worked for me.
Source: Cloudera Manager fails to add hosts