/*
Hadoop是Apache旗下主流的大数据计算和存储框架之一,在近年来应用的越来越广泛。常规意义上的Hadoop集群都是搭建在商业服务器上的,利用大规模柜式服务器的强劲硬件资源进行大数据分布式计算。同时Hadoop是由Java编写的,运行在JVM之上。而Java是跨平台的,可以“run everywhere”,这就给在ARM平台上搭建Hadoop集群带来了希望。事实上,已经有多家大厂和个人爱好者做出了此类尝试,Cubieboard制作出了一个相当漂亮的8节点Hadoop集群(http://cubieboard.org/2013/08/01/hadoophigh-availability-distributed-object-oriented-platform-on-cubieboard/)。由于实际项目需求,我在64位ARM平台上搭建出了一个三节点的Hadoop集群。比算力当然比不过商业服务器,只作为一次有趣的尝试。
*/
0. 硬件资源和软件版本介绍
此案例中选用的嵌入式开发板型号是Firefly-RK3399,官网的产品介绍可点击http://www.t-firefly.com/product/rk3399.html。
硬件资源:
– Firefly-RK3399×3,6 核,2GHz主频,4GB DDR3 RAM,120G eMMC
– 散热风扇×3,用来超频后的散热
– HDMI 线×1,显示屏x1
– 4口路由器,修改设置当成交换机用,用来给3块开发板联网
– 网线×3
软件版本:
– 操作系统:Ubuntu16.04
– Java 环境:jdk for ARM 8u172
– Hadoop 2.7.6
1. 准备工作
1.1 配置本地hosts
规定集群一共有三台设备,一台主机和两台从机。主节点的主机名改成Master,两个从节点分别改成Slave1和Slave2。IP地址从192.168.1.50依次往后排到192.168.1.52(IP地址可以自定义)。若再增加一个从机,则继续添加slave节点。注意在每个设备上都要进行以下操作。
#进入hosts文件
sudo gedit /etc/hosts
#将以下内容添加到文本中:
192.168.1.50 Master
192.168.1.51 Slave1
192.168.1.52 Slave2
1.2 更改本机IP地址
在主机上执行以下操作,这里的网关和dns都是192.168.1.1,因为我最终连入互联网的那个路由器是192.168.1.1。若实际情况不同可作出相应修改。
#修改配置文件
sudo gedit /etc/network/interfaces
#在文本末尾添加以下内容:
auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1
#重启网络,使配置生效
sudo /etc/init.d/networkin restart
然后在各个从机上也按规定更改为对应的ip地址
使用ping指令在Master主机中进行测试,使用类似指令在Slave上测试,确保两两之间一定可以ping通。
ping -c4 Slave1
ping -c4 Slave2