利用docker搭建spark hadoop workbench

目的java

  • 用docker實現全部服務
  • 在spark-notebook中編寫Scala代碼,實時提交到spark集羣中運行
  • 在HDFS中存儲數據文件,spark-notebook中直接讀取

組件node

  • Spark (Standalone模式, 1個master節點 + 可擴展的worker節點)
  • Spark-notebook
  • Hadoop name node
  • Hadoop data node
  • HDFS FileBrowser

實現git

最初用了Big Data Europe的docker-spark-hadoop-workbench,可是docker 服務運行後在spark-notebook中運行代碼會出現經典異常:github

 java.lang.ClassCastException: cannot assign instance of scala.collection.immutable.List$SerializationProxy to field org.apache.spark.rdd.RDD.org$apache$spark$rdd$RDD$$dependencies_ of type scala.collection.Seq in instance of org.apache.spark.rdd.MapPartitionsRDD
View Code

 

發現是由於spark-notebook和spark集羣使用的spark版本不一致. 因而fork了Big Data Europe的repo,在此基礎上作了一些修改,基於spark2.11-hadoop2.7實現了一個可用的workbench.docker

 

運行docker服務apache

docker-compose up -d

 

擴展spark worker節點ide

docker-compose scale spark-worker=3

 

測試服務oop

 

各個服務的URL以下:測試

Namenode: http://localhost:50070
Datanode: http://localhost:50075
Spark-master: http://localhost:8080
Spark-notebook: http://localhost:9001
Hue (HDFS Filebrowser): http://localhost:8088/home

 

如下是各個服務的運行截圖spa

 

HDFS Filebrower

 

Spark集羣

 

Spark-notebook

 

運行例子

1. 上傳csv文件到HDFS FileBrowser,

2. Spark notebook新建一個notebook

3. 在新建的notebook裏操做HDFS的csv文件

具體的步驟參考這裏

 

如下是spark-notebook運行的截圖:

 

代碼連接

Github

相關文章
相關標籤/搜索