使用Docker部署Spark集群
2015-08-25 21:55
801 查看
使用Docker部署Spark集群
克隆包含启动脚本的git仓库启动Spark0.8.0集群并切换至Spark Shell环境
不带参数运行部署脚本
*运行一些小的例子
终止集群
克隆包含启动脚本的git仓库*
git clone -b blogpost git@github.com:amplab/docker-scripts.git
当然,在这之前你必须已经配置了Github的SSH密钥认证,如果没有配置,会提示Permission Denied。解决方法可以参照上一篇日志。
启动Spark0.8.0集群并切换至Spark Shell环境
sudo ./docker-scripts/deploy/deploy.sh -i amplab/spark:0.8.0 -c
运行完这行命令你就得到了这样一个Spark集群:* 包含两个woker节点;HDFS也已配好。在第一次运行的时候,Docker会自动地区全局仓库区取到容器镜像, 并且缓存到本地。*
不带参数运行部署脚本
不带参数运行部署脚本会输出命令行帮助信息:$ sudo ./docker-scripts/deploy/deploy.sh usage: ./docker-scripts/deploy/deploy.sh -i <image> [-w <#workers>] [-v <data_directory>] [-c] image: spark or shark image from: amplab/spark:0.7.3 amplab/spark:0.8.0 amplab/shark:0.7.0 amplab/shark:0.8.0
这个脚本根据给定的worker节点的数量,要么启动一个独立的Spark集群,要么启动一个独立的Shark集群。Hadoop HDFS服务也会被启动。因为服务依赖于适当配置的DNS, 所以一个容器会自动带着一个DNS转发器启动。所有的容器也能够使用预配置的RSA Key通过ssh访问到。
如果你想让你的容器访问主机的目录 – 譬如说向Spark里面导入一些数据 – 你可以直接接上-v选项就可以了。这个目录就会被挂载到Master和Worker容器的/data目录。
Spark和Shark Shell都是启动在各自独立的容器中。你可以使用-c选项区启动shell容器,也可以稍后attach上去。
那么,现在我们就启动含有两个worker的Spark0.8.0,并连接上Spark Shell:
然后,你就可看到类似下面的输出:
*** Starting Spark 0.8.0 *** ... *********************************************************************** connect to spark via: sudo docker run -i -t -dns 10.0.3.89 amplab/spark-shell:0.8.0 10.0.3.90 visit Spark WebUI at: http://10.0.3.90:8080/ visit Hadoop Namenode at: http://10.0.3.90:50070 ***********************************************************************
运行一些小的例子
$ sudo ./docker-scripts/deploy/deploy.sh -i amplab/spark:0.8.0 -c
例如
scala> val textFile = sc.textFile("hdfs://master:9000/user/hdfs/test.txt") scala> textFile.count() scala> textFile.map({line => line}).collect() #
终止集群
$ sudo docker-scripts/deploy/kill_all.sh spark $ sudo docker-scripts/deploy/kill_all.sh nameserver
这两个命令会杀掉所有的Spark和nameserver容器。
相关文章推荐
- Spark随谈——开发指南(译)
- Spark,一种快速数据分析替代方案
- 8个你可能不知道的Docker知识
- 在Docker中自动化部署Ruby on Rails的教程
- 搭建基于Docker的PHP开发环境的详细教程
- 利用OpenVSwitch在多台主机上部署Docker的教程
- ubuntu14.04+docker的安装及使用
- Docker 清理命令集锦
- 再Docker中架设完整的WordPress站点全攻略
- 基于 Docker 开发 NodeJS 应用
- 在Docker上部署Python的Flask框架的教程
- 在Docker上开始部署Python应用的教程
- 详解在Python和IPython中使用Docker
- 使用IPython来操作Docker容器的入门指引
- eclipse 开发 spark Streaming wordCount
- OSX下brew安装docker(boot2docker)
- Docker使用supervisor启动Mysql
- Docker使用supervisor构建solr
- docker入门指南
- Spark初探