> ssh-keygen -t rsa
In the terminal prompt, just press the ENTER key multiple times for each prompt. Once this is done, a public key rsa_id.pub is stored in the .ssh folder under the user root folder. Now ssh login to the 192.168.2.4 (password required at this point) to create the .ssh folder under the user root folder on that computer:
> ssh username@192.168.2.4 mkdir .ssh
The last step is to append the .ssh/rsa_id.pub file (which is the public key) from 192.168.2.2 to the .ssh/authorized_keys in 192.168.2.4 (password required at this point):
> cat .ssh/id_rsa.pub | ssh username@192.168.2.4 'cat >> .ssh/authorized_keys'
Now we can ssh login to 192.168.2.4 from the client 192.168.2.2 without password. For example, run the following command in the client 192.168.2.2 terminal:
> ssh username@192.168.2.4
Now we are ready to write a bash script to launch the zookeeper cluster which consists of the following networked computers:
192.168.2.1
192.168.2.3
192.168.2.4
First make sure that the zookeeper is setup in the cluster properly (follow instructions from this link: http://czcodezone.blogspot.sg/2014/11/setup-zookeeper-in-cluster.html and for storm at this link http://czcodezone.blogspot.sg/2014/11/setup-storm-in-cluster.html) and make sure the above steps of passwordless SSH login is repeated for 192.168.2.1 and 192.168.2.3 so that user can log into these two computers without password from the client 192.168.2.2. Now on the terminal of 192.168.2.2, create a start_zookeeper_cluster.sh script:
> touch start_zookeeper_cluster.sh
> gedit start_zookeeper_cluster.sh
In the start_zookeeper_cluster.sh that opens, enter the following lines:
ssh username@192.168.2.1 $ZK_HOME/bin/zkServer.sh start ssh username@192.168.2.3 $ZK_HOME/bin/zkServer.sh start ssh username@192.168.2.4 $ZK_HOME/bin/zkServer.sh start
Save and close the start_zookeeper_cluster.sh, and run the following command on 192.168.2.2 client terminal to make it executable:
> chmod +x ./start_zookeeper_cluster.sh
Now run the script to start the zookeeper cluster:
> ./start_zookeeper_cluster.sh
We can also write a stop_zookeeper_cluster.sh, start_storm_cluster.sh, stop_storm_cluster.sh in a similar way to automate the process.