Configuring the ODROID XU4 Operating System

UPDATE – This post was originally written for HardKernel’s distribution of Ubuntu 15.10, but now has been changed to use the ODROID server image for Ubuntu 14.04 LTS, which is available from HardKernel here. The motivation for this change was to use an official HardKernel support distribution that was specifically built for headless server application. Ubuntu 14.04 LTS may be an older distribution, but it works for our purposes. Temporary Networking Setup When setting up the nodes initially, you will need to SSH into them to configure their settings. However, if we go straight to our network design, we will not be able to connect to any node between the master node is not yet set up as a router. So we will need to connect each node directly to the external network (e.g., you home network). Since the bill of materials called for a 5-port ethernet switch and there are only 4 nodes, we will start by having the external network Read More …

Network Design for the Low Cost Cluster

Our first task in building any cluster is to first design how it will be set up, most notably how the nodes will interact with each other. The cluster we will be building will have 4 nodes, one master node and three slaves. Each node will be connected to each other by the ethernet switch. However, we want the node-to-node communication to be it’s own network. This maximizes the throughput in the node-to-node communication, which is important for distributed computation, and also makes the cluster behave more like a single device to the external network. The benefit of doing this is that we can add or remove nodes to the cluster without a client ever knowing. However, this approach does present some challenges with how an external client (e.g., your laptop) will interact with the data analysis software, such as Hadoop, but we will deal with that later. My goal is really to create a “data analysis appliance”, so requiring any client Read More …

Building the ODROID XU4 Low Cost Cluster

My shipment of ODROID XU4s that I ordered for my low cost cluster came into today. So I set out to assemble the cluster. My daughter “helped” me with this, making it a fun family activity. First thing I did was layout the nodes. Though I knew these board would be small, it did impress me just how small they were. The first task is to attach the eMMC drive to each node. Note that I eventually had to undo this as I later discovered I needed to flash the drives with the latest Ubuntu build. But given the amount of space the PCB standoffs five, removing and reattaching the eMMC drive is not hard. Then I attached the XU4s together with the PCB standoffs I bought. The short standoffs are for the “feet” to the stack, and the long ones to separate each node. Once I stacked all of the nodes, I attached the ethernet switch and the cabling. I Read More …

Hardware Selection for a Low Cost Cluster

For this first phase of my project, I will be building a cluster on the cheap. My cost goal was $600 for a 4 node system, or $150 per node. The Raspberry Pi immediately comes to mind as an option. Indeed, there have been several projects where people turned a set of Raspberry Pis into a cluster. However, since my goal is to create a cluster for Spark, the size of the aggregate RAM pool of the cluster is important. The Raspberry Pi Model 3 only has 1 GB of RAM. So I explored whether there are other options with more RAM. I found the ODROID-XU4 single board computer, which has 2 GB of RAM, and an 8-core ARM CPU. Furthermore, each board is only $76 without storage. It also has some other nice features, such as: USB 3 ports HDMI output eMMC 5.0 hard drive connector MicroSD slot supporting the faster UHS-1 standard Onboard gigabit ethernet Serial console port One consideration is data storage. Read More …