Create a private cloud using Raspberry PIs (ARM architecture) and use Kubernetes for container orchastration to run MapReduce jobs using Apache Hadoop.
- A how-to guide for construction of cluster.
- Provide the resources required for the construction of the cluster.
- We have 8 Raspberry PIs (1 Master, 7 Slaves).
- Docker image using base as amr7 ubuntu with hadoop and java on top [Link to image: amr7-ubuntu-hd]
- Shell scripts to automate the process of kubernetes cluster setup [Link to repo: Kube-Construct]
- Power On the PIs.
- Install an OS on all PIs [we will be using Hypriot] [Link].
- Configure network on all PIs [Use the steps mentioned here: Link]
- Install Kubernetes on PIs [Use this blog: Hypriot blog] .
- Setup Master [As mentioned in the Hypriot Blog].
- Connect the slaves [As mentioned in the Hypriot Blog].
- Setup Flannel [As mentioned in the Hypriot Blog].
- Start the service by executing
kubectl run hw2 --image=raghavendrasomannavar/amr7/ubuntu-hd:1.0.0 --replicas=7 --port=80
on master. - Expose pods by executing
kubectl expose deployment hw2 --port 80
on master node. - Check if all containers are up and running by executing
kubectl get endpoints hw2
on master. - Deploy load balancer [As mentioned in the Hypriot Blog].
- Deploy kubernetes dashboard [As mentioned in the Hypriot Blog].
- Follow till Step-2 above.
- Execute
setupWifi.sh
on all nodes to setup wifi. - Use
setupMaster.sh
to setup the master and slave nodes. - Follow from Step-6 to Step-11.
- Link to the setup process video: Link
- The nodes kept dropping from the cluster, although we were not able to pin point the cause but unstable power supply and bad configs seemed to be the most plausible cause.
- The number of failures were directly proportional to the size of image used.
- The cluster needed to be reset if master node was dropped.
Note: Some of these are known issues and concerns related to the tools and technologies utilized.
- Sankul Rawat [LinkedIn profile]
- Harsh P Bajaj [LinkedIn profile]
- Muttavarapu Sreeharsha [LinkedIn profile]
- Raghavendra Somannavar [LinkedIn profile]
- Harshit Pant [LinkedIn profile]
- Rushit Thakker [LinkedIn profile]
- Jose George [LinkedIn profile]
- Sai Sharan Nagulapalli [LinkedIn profile]
http://blog.kubernetes.io/2015/12/creating-raspberry-pi-cluster-running.html
http://www.circuitbasics.com/raspberry-pi-basics-setup-without-monitor-keyboard-headless-mode/
https://diyhacking.com/connect-raspberry-pi-to-laptop-display/
https://www.raspberrypi.org/documentation/remote-access/ssh/
https://howchoo.com/g/nmrlzmq1ymn/how-to-install-docker-on-your-raspberry-pi
https://blog.hypriot.com/post/setup-kubernetes-raspberry-pi-cluster/
https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/
https://dqydj.com/raspberry-pi-hadoop-cluster-apache-spark-yarn/
https://www.howtogeek.com/167195/how-to-change-your-raspberry-pi-or-other-linux-devices-hostname/
https://blog.hypriot.com/post/setup-kubernetes-raspberry-pi-cluster/
https://developer.ibm.com/recipes/tutorials/building-a-hadoop-cluster-with-raspberry-pi/
https://github.com/turbobytes/kubemr
http://www.sajalkayan.com/post/kubemr.html
https://www.raspberrypi.org/documentation/remote-access/access-over-Internet/
https://github.com/hortonworks/kubernetes-yarn/issues/8
https://blog.gopheracademy.com/advent-2015/glow-map-reduce-for-golang/
https://medium.com/@cedriclam/how-to-use-glow-with-kubernetes-22820d8f6270
https://medium.com/@jasonicarter/how-to-hadoop-at-home-with-raspberry-pi-part-1-3b71f1b8ac4e
https://github.com/raspberrypi/noobs/blob/master/README.md
https://cdn-learn.adafruit.com/downloads/pdf/setting-up-a-raspberry-pi-with-noobs.pdf
https://github.com/danisla/noobs-docker-pi
http://www.jinkit.com/k8s-on-rpi/
https://github.com/sequenceiq/hadoop-docker
https://blog.hypriot.com/post/new-docker-ui-portainer/
https://gist.github.com/chatchavan/3c58511e3d48f478b0c2
https://kubernetes.io/docs/user-guide/docker-cli-to-kubectl/
https://github.com/kubernetes/dashboard
https://github.com/dark-shade/kube-construct
https://kubernetes.io/docs/user-guide/docker-cli-to-kubectl/
https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/
https://docs.google.com/document/d/1zK7_PDgNRi2u0gU17EpEv6iQgoy7ZKU2vMxcKwrK_2I/edit?usp=drivesdk
https://docs.google.com/document/d/1zK7_PDgNRi2u0gU17EpEv6iQgoy7ZKU2vMxcKwrK_2I/edit?usp=drivesdk
https://docs.google.com/document/d/18uA9y834FcIWOx1vrujAMKakzrdRYFWKOI1n0VVarNU/edit?usp=drivesdk
https://stackoverflow.com/questions/6264596/simulating-enter-keypress-in-bash-script
https://blog.hypriot.com/post/setup-kubernetes-raspberry-pi-cluster/