Back in 2015, I created my first SoC cluster. It was based on the Raspberry PI 2 Model B with added 1TB spinning disks and a custom designed stacking case. Hadoop YARN, HDFS, and Spark all successfully ran on it. However, the limits of 1GB RAM and the 100mbps Ethernet NICs meant that Spark was pretty much gimmick. A highly modified and very limited Spark config was required for tiny jobs. Everything else ran surprisingly well!
Why did I do this? For the previous six years, I had the luxury of working with applications on massively scaled distributed systems. What I had missed was building and operating those systems from the ground up. It had been many years since I had built and administrated the underlying systems. My Raspberry PI cluster was an opportunity to experience that on a miniaturized scale.
Fast forward to 2019. A new crop of SoCs — from the Odroid to the Udoo — have arrived on the scene. This website, in fact, runs on an Odroid XU4. These new systems are orders of magnitude more powerful systems than the Raspberry PI (which I still use and can’t recommend highly enough for experimentation and IoT applications). The power of these new systems would enable more sophisticated clusters, such as Kubernetes, Docker Swarm, etc. Even better, they more closely mimic the systems I’ve been deploying at scale, including PXE boot support and unattended deployment.
Meet my new Udoo X86 cluster. It’s not quite complete, but you can see it’s well along in both design and construction. (The final pieces of the newly designed custom case arrived today: July 9, 2019). Each of the Udoos have 4GBs or 8GBs of RAM, a Gigabit NIC, and one or more forms of flash storage. I designed it to be somewhat similar to a datacenter rack, complete with a TOR.
Watch for updates as I complete the project.