使用Docker部署Spark集群

使用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容器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值