目的
- 用docker实现所有服务
- 在spark-notebook中编写Scala代码,实时提交到spark集群中运行
- 在HDFS中存储数据文件,spark-notebook中直接读取
组件
- Spark (Standalone模式, 1个master节点 + 可扩展的worker节点)
- Spark-notebook
- Hadoop name node
- Hadoop data node
- HDFS FileBrowser
实现
最初用了Big Data Europe的docker-spark-hadoop-workbench,但是docker 服务运行后在spark-notebook中运行代码会出现比较经典的异常:
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
经过调查发现是因为spark-notebook和spark集群使用的spark版本不一致,于是fork了Big Data Europe的repo,在此基础上做了一些修改,基于spark2.11-hadoop2.7实现了一个可用的workbench.
代码链接
时间: 2024-10-28 23:02:21