2016-01-02 153 views
4

是否可以在rapberry pi上安裝大於3.2的mongo db版本,並在pi上安裝RASPBIAN JESSIE LITE?安裝mongodb版本> 3 raspberry pi 2

我只成功使用本教程的版本2.1。

http://www.widriksson.com/install-mongodb-raspberrypi/

我嘗試了很多教程,但不可能找到其中一個更大的版本。

+0

MongoDB移動到64位,所以我想沒有這是不可能的。 – Kickaha

+1

感謝您的快速回答我也看到,但在mongoldb網站上它寫道:從MongoDB 3.2開始,32位二進制文​​件已被棄用,並且在未來的版本中將不可用。這將有可能安裝至少3.2 < – Aaleks

+0

是的你是對的! ...我用這個,但不能花時間去嘗試編譯一個不同的版本。也許你可以... http://c-mobberley.com/wordpress/2013/10/14/raspberry-pi-mongodb-installation-the-working-guide/ – Kickaha

回答

5

由於它已經寫在註釋中,所以僅限於32位版本。

附帶嚴重的缺陷:

  • 可存儲的數據是小於2GB的(可能少了很多),由於WiredTiger不可用,並且MMAPv1限制爲2GB的,因爲最大文件大小它大量使用內存映射。它在32位機器上的可尋址空間非常有限
  • WiredTiger存儲引擎不可用。它允許壓縮,因此對於有限的資源會特別有趣。
  • MongoDB需要RAM。越多越好。索引需要它,連接絕望地需要它,而內存映射10則充分利用它。而且,我們只有32位。 MongoDB公司決定不爲臨終技術創建解決方法。所以不要指望這會改變
  • 但是,最大的缺點是日誌和複製基本上是No-Gos,因爲進一步限制了可以存儲的數據量。沒有日誌轉換爲數據的有限持久性(除非您願意通過使用相應的寫入問題強制數據與每個寫入同步到磁盤),而缺少複製和由此導致的故障切換功能缺少的可能性較小對Raspi的擔憂。

MongoDB公司強烈建議不要將32位版本用於測試目的。他們這樣做是有原因的。就我個人而言,我生成的測試數據遠遠超過了32位版本的限制。

所以是的,它應該是技術上可行的(甚至沒有包:編譯MongoDB不是火箭科學)。這是個好主意嗎?好吧,如果你問我,不是那麼重要。

+0

感謝您的解釋良好的答案。限制是很高的,但它是爲了測試的目的,我使用mongodb,因爲,我的fontend應用程序編寫的反應,我需要檢索JSON文件來呈現組件與數據,我認爲mongodb是最適合的,而不是像ORM使用MySQL像sequelize。這是一個使用套接字io客戶端頻繁在數據庫中寫入並在Web瀏覽器重新加載時檢索消息的聊天應用程序。 Redis不適合我不知道將存儲多少數據。你會用什麼數據庫在樹莓派上?在購買迷你PC之前,我使用樹莓派測試我的應用程序 – Aaleks

+1

不要使用數據庫進行集成,而是使用Linux套接字代替發送基於協議1緩衝區的消息。回到根源!如果你不需要DBMS服務器,SQLite工作得非常好,而且資源友好。 –

+0

感謝您的建議,我會更詳細地查看Linux套接字。對於SQLite我種子,它不處理併發。所以在聊天應用程序中,我決定排除它。 使用與最終產品不同的數據庫,您必須重寫應用程序並添加更多測試,因此我考慮了mongodb的限制,剩下的1Gb大小足以讓我進行測試。關於日誌記錄,我看到mongo要求操作系統刷新內存中的更改。所以我會做一些備份拋出sh數據損壞。再次感謝您的建議,下次我會在購買便宜的產品之前檢查os /架構。 – Aaleks

3

我通過@博客中提到的http://www.clarenceho.net/2015/12/building-mongodb-30x-for-arm-armv7l.html的user3343399

筆者只是爲了添加Arch Linux的ARM最新的MongoDB 3.2.0的建設似乎是工作的罰款。除了默認的存儲引擎被編譯爲WiredTiger,雖然沒有來自WiredTiger的32位支持。你將需要添加參數--storageEngine = mmapv1

+0

再次感謝您的博客真的很有幫助! – Aaleks

+1

AFAIK,MongoDB v3.2 v3開始使用SpiderMonkey引擎,所以我有一個問題:至於v3.2 +,沒有更多的需要補丁的任何來源? – deksden