共计 2869 个字符,预计需要花费 8 分钟才能阅读完成。
之前听说了百度用 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 单价和能耗上。
在 64 位 arm 没有出来以前,就拿 arm v7 说事吧。
用台式机里的 intel 做虚拟机单核 1G 内存做了个对比,Hadoop pi 任务对比数据如下。
首先 intel 和 arm 的 hadoop 配置相同,都是 hadoop 官网的单机,单复制块默认配置,HEAPSIZE 均设置为 128M。
午休时间有限,只做了 pi 的测试。而且没有服务器上的虚拟机,没法测试至强 CPU 的性能,台式机做个大概的参考好了。
测试命令:sudo -u hadoop hadoop jar hadoop-example-1.0.4.jar pi 10 100
第一次 | 第二次 | 第三次 | |
intel i3 2100 1core CentOS | 82.064s | 75.992s | 81.971s |
arm v7 1core Ubuntu | 173.46s | 157.165s | 168.397s |
读写存储的效率对比,分别顺序读写 200M 文件。
intel+ 机械硬盘 200M 写,500M 读
arm+sd 卡 60M 写,60M 读,可见读写硬盘 intel 占大便宜了,不过因为没有外挂硬盘,所以也不知道 arm 读写效率如何。sd 卡就别想了,太慢了,尽管这个 SD 卡已经算快的了。
且不论读写磁盘操作的差距,仅以这个作为计算能力的差距参考,可以看到,大概 2 - 3 颗 arm v7 可以抵的上 intel i3 2100 里面的一个核,那么大概 12 颗可以超越一颗 i3 2100。i3 2100 的功耗每小时大概在 50-60 瓦左右,而 12 颗 arm v7 的功耗每小时不到 4 瓦。
在我写这篇作文的时候,i3 2100 大约 600 多一颗,12 颗 arm v7 大约 40 美元,折合起来不到 300。所以无论从能耗还是价格上看,arm cpu 还是具备一定优势的。只是现在 64 位 cpu 没出来,做 hadoop 服务器没有什么计算优势,但是拿来当 webserver 或者存储服务器还是绰绰有余的。
不过我个人觉得,未来用 arm 服务器做 hadoop 服务器还是极具诱惑的。无论从能耗还是采购成本上,arm 都很低廉,至少在我来看,还是很性感的。
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
之前听说了百度用 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 单价和能耗上。