2015-02-09 23 views
1

當我使用docker啓動spark-notebook並創建新工作表時。我下次開始時,工作表不在那裏。未用Docker保存的Spark筆記本工作表

這裏的命令:

docker run -v /Users/pkerp/projects/chairliftplot/:/mnt -p 9000:9000 andypetrella/spark-notebook:0.2.0-spark-1.2.0-hadoop-1.0.4 

這裏的警告/信息:

15/02/09 08:38:12 WARN Remoting: Tried to associate with unreachable remote address [akka.tcp://[email protected]:41602]. Address is now gated for 5000 ms, all messages to this address will be delivered to dead letters. Reason: Connection refused: /127.0.0.1:41602 
15/02/09 08:38:12 INFO remote.RemoteActorRefProvider$RemoteDeadLetterActorRef: Message [akka.remote.RemoteWatcher$Heartbeat$] from Actor[akka://NotebookServer/system/remote-watcher#-457307005] to Actor[akka://NotebookServer/deadLetters] was not delivered. [8] dead letters encountered. This logging can be turned off or adjusted with configuration settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'. 

這是一個錯誤配置的問題還是其他什麼東西?

編輯:

所以這個問題有幾個方面吧。

  1. 當使用ctrl-c關閉正在運行的docker容器時,它實際上仍然存在。當我使用上面的命令重新運行它時,它會啓動一個不包含新創建的筆記本的單獨的新容器。

這可以通過在運行容器列表中尋找使用docker ps,找到一個運行和連接它使用docker attach process_id得以緩解。數據仍然存在。

  1. 使用安裝的卷存儲筆記本電腦以導致權限問題。安裝在容器中的目錄只具有所有者寫入權限,其中所有者是用戶。火花筆記本以用戶守護程序(用戶標識號)運行。

這是關於此問題的長篇帖子on github,,但沒有明確的解決方案。

回答

0

Dockerfile將繼續發展,但現在至少我們可以將我們的筆記本備份到碼頭集裝箱中。

這將這樣的伎倆: docker run --rm -v /Users/pkerp/projects/chairliftplot:/opt/docker/notebooks/ext -p 9000:9000 andypetrella/spark-notebook:0.6.0-scala-2.10.4-spark-1.4.1-hadoop-2.6.0

這樣的文件夾Users/pkerp/projects/chairliftplot將包含在火花筆記本上市ext文件夾中所有的筆記本電腦。

這意味着:

  • Users/pkerp/projects/chairliftplot所有的筆記本電腦將在ext文件夾可見
  • 所有新創建的筆記本ext文件夾將可在主機文件夾Users/pkerp/projects/chairliftplot

當然你也可以使用了: docker run --rm -v /Users/pkerp/projects/chairliftplot:/opt/docker/notebooks -p 9000:9000 andypetrella/spark-notebook:0.6.0-scala-2.10.4-spark-1.4.1-hadoop-2.6.0 這將放棄所有默認的筆記本電腦和只顯示的/Users/pkerp/projects/chairliftplot內容。然而,這種方式所有新創建的筆記本電腦將在主機上可用,無論他們已經創建的文件夾

相關問題