基于arm架构单片机的Hadoop服务器尝试
之前听说了百度用arm服务器搭建了webserver和网盘之类的东西,然后又看到有人用Android电视棒里面装Ubuntu,于是就有了用arm尝试做Hadoop服务器的想法。但是目前arm 64位的cpu还没有出货,所以这只是个前奏性质的尝试。
从淘宝上面买了一个arm的单片机,上面有一颗基于ARMv7架构的单核cpu,1G内存,4G存储。但是最主要的,是上面有网卡接口,虽然是100M的,但这让构建集群成为了一个可能。另外这个比树莓派更好的是,上面有sata硬盘的接口,这样,存储的问题也可以解决。虽然我现在手里没有sata 2.5寸的硬盘,但是起码给了个想象的空间。
很小的一块板子,表就是casio的ef339,去年博客大赛的奖品,也是我唯一的一块表,而且我不担任任何公职,也不是党员,不要平我祖坟。
关于操作系统方面,cubieboard本身内置android 4.0.4,连上HDMI在电视上刷微博很爽,40寸的大pad,谁有?但是android不是我们所需要的,可以用linaro系统,for arm的ubuntu。从网上找了一个国外网友自制的linaro server版,用工具烧进TF(microSD)卡。不比自己本身的android启动速度快,这个启动速度比较慢。不过要做好心理准备,TF卡一旦烧了操作系统img上去,就再也不能当存储用了。
昨天晚上在家通过网线用apt-get install 了openjdk6,也下载好了hadoop-1.0.4。今天在公司利用午休时间配置了单机的hadoop环境。并跑了一下pi任务,结果比我想象的要好,先看几张图吧,最后写上测试数据和对比测试数据。
开机启动图
因为公司绑定mac,所以没有联网,懒得去找ops做mac绑定了。
测试命令,启动10个map,每map投掷100次飞镖,计算pi值。因为主要是看cpu计算能力,sd卡当存储,肯定拼不过sata硬盘的速度。下图有cpu信息和操作系统的信息。
cpu信息大图
连线图,本身采用HDMI作为显示输出,还得去找HDMI转VGA的转换头。
arm hadoop服务器大小,比中南海略大。
最后让我们回到数据上来,琢磨这种方式其实我最关心的是性价比,主要看多少颗arm v7可以顶一颗intel cpu。因为除去这一点,硬盘,内存等等都是必不可少的开销,用哪种架构都是一样的。而性价比主要就集中在cpu单价和能耗上。