Converting Hortonworks Sandbox to run on Hyper-V
It looks like Hortonworks recently decided to stop hosting a version of their Sandbox VM for Windows Hyper-V. I only see VirtualBox and VMware versions listed. What if, like me, your primary learning lab machine runs Hyper-V? Well, you can convert it fairly easily. My method is to use VirtualBox to do this. I run VirtualBox on my Mac because it’s free, it has free conversion tools and I usually only run 1-2 VMs on it, but my Mac isn't my learning lab. This tip WILL work on a Windows machine that has VirtualBox installed. Note that VirtualBox and Hyper-V may not get along well if installed on the same device, hence my using two machines to do this. In order to convert it, here’s what you need to do.
- Download the VirtualBox Sandbox VM here.
- Follow Hortonworks' instructions to import the appliance into VirtualBox.
- Find the disk that it created by looking at the properties of the VM you just created.
- Open a terminal and navigate to that directory.
- From that directory, run this:
VBoxManage clonehd Hortonworks_sanbox_with_hdp_2_4_virtualbox-disk1.vmdk HDP2.4.vhd --format vhdThis process runs for a bit and creates a copy in VHD format, which you can copy onto, and run from; any Hyper-V machine. Simply create a new Hyper-V machine, as you normally would, but instead of creating a new disk, choose this one and fire it up. On the subject of VM Config, you should give it access to your internal network so that you can access it via browser, a couple processors and on memory, a word of caution: when I did this with dynamic memory enabled, the VM took all of my available system memory, so you may want to limit consumption to a number that reserves some computing power for the host and any other VMs you may want to run in parallel. After mounting and starting my new Hyper-V, VM I found that I hadn't allocated enough RAM or processor and it was "dying" on boot so I upped the RAM to 6 GB and 4 processors from 2 GB and 1 respectively. Next up, eth0 wasn't found on boot so I checked what Google had to say and found this article. I edited the first file, and upon checking the second (/etc/sysconfig/network-scripts/ifcfg-eth0) I found that the MAC address was not recorded so didn't have anything to do. I saved, rebooted, and watched and eth0 was found at this time - of course the VirtualBox add-in failed at boot, but that isn't a big deal. When the VM came up, it instructed me to connect to 127.0.0.1:8888 which didn't work. I looked up the IP assigned by my router put that IP (without a port) into my browser and was able to connect without issue. Happy learning!