2015年1月17日 星期六

[Apache Spark][教學] Spark x Docker x ipython Notebook !(一)-Docker + Spark安裝篇

圖片來源:http://www.docker.com/
       
        文章開頭先感謝前輩們的貢獻:http://philipzheng.gitbooks.io/docker_practice/.Docker是今年非常火紅的技術,可以透過輕量化虛擬container來實現系統或程式的部屬配置.我們在實物開發上常遇到的問題是,開發環境和正式環境彼此存在著差異,來來回回把程式搬到正式環境上執行是非常花時間的事情.Docker透過輕量化虛擬技術讓開發者可以很輕易地將程式放到模擬出來的正式環境執行,測試,減低了很多開發上的時間成本.同時Docker可以保證開發環境的一致性,如果不小心掛掉,簡單重啟一個就好,也節省很多維護的時間.
        我們可以在Docker上run Hadoop或Spark,把寫好的程式丟到上面執行,但是有沒有辦法直接在Docker的模擬出來的環境上開發spark程式,而且還是透過方便又強大的IDE介面(你當然也可以直接開vim寫,但是不在討論範圍內XD)?本文要介紹如何在Docker上面運行spark,並且透過ipython notebook來編輯,並以互動式方式來使用Spark.

  •         安裝Docker
    https://www.docker.com
    MAC請走這邊:https://docs.docker.com/installation/mac/
    因為Docker是linux的程式,所以mac無法直接執行docker,而是會透過boot2docker先模擬一個linux環境,在其中執行Docker
  • 安裝好後點擊他會進入linux的環境,可以看到第二行顯示了啟動的是一個vm
  • Docker的概念和一般VM的差異在於是以執行的APP為主,不會需要為了每個APP模擬一個OS,所以可以大量節省系統資源
  • 當我們要建立自己的vm時,不需要從頭自己設定,Docker User可以把建立好的VM(又稱為image)放到網路上的Docker Repositories讓大家下載(https://docs.docker.com/docker-hub/repos/)
  • 像Spark那麼火紅的科技,一定有大大已經作好放在上面了(https://github.com/sequenceiq/docker-spark
  • 我們首先先把image檔拉下來
    docker pull sequenceiq/spark:1.2.0
  • 然後run他
    docker run -i -t -h sandbox sequenceiq/spark:1.2.0 bash
  • 這樣就會進入這個映像檔中(互動式介面)
  • 在這裡運行spark也是沒問題的
  • 不過這個環境是給spark用的,所以python不但是舊版的,甚至也沒有easy_install,更不用說python了.
  • 接著我們將在下一篇介紹如何在container中建立python的環境
  • 直接看下一集:[Spark][教學] Spark x Docker x ipython Notebook !(二)-Python安裝設定篇