基於arm架構微控制器的hadoop伺服器嘗試

2021-09-09 01:59:58 字數 2269 閱讀 8193

從**上面買了乙個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上去,就再也不能當儲存用了。

開機啟**

因為公司繫結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都很低廉,至少在我來看,還是很**的。

ARM微控制器與ARM核心

人們常常把arm架構和arm微控制器混淆,其實使用arm核心的微控制器有很多,比如st公司的stm32f103,它就是使用arm cortext m3核心,那麼究竟什麼是arm核心呢?mcu microcontrol unit 俗稱微控制器,它有cpu,rom,ram,i o,中斷系統,定時器,時鐘...

微控制器和ARM的區別

1 軟體方面 這應該是最大的區別了。引入了作業系統。為什麼引入作業系統?有什麼好處嘛?1 方便。主要體現在後期的開發,即在作業系統上直接開發應用程式。不像微控制器一樣一切都要重新寫。前期的作業系統移植工作,還是要專業人士來做。2 安全。這是linux的乙個特點。linux的核心與使用者空間的記憶體管...

實驗一 ARM微控制器程式設計

一 實驗目的與要求 1 掌握 c語言程式設計的方法 2 通過程式設計除錯,熟悉微控制器開發環境,學習程式除錯技巧 3 學習軟體 的方法。二 實驗裝置 計算機 編譯軟體 keilc51uvision 三 實驗原理 程式除錯方法 1 按照實驗一的步驟建立工程並輸入源程式 2 完成源程式的編輯之後,進入除...