Spark 同时可以建立在虚拟化的基础上,例如Vagrant 和Docker, 这样的虚拟化环境很容易部署到各种云服务上,例如AWS。

Vagrant的虚拟化环境

为了创建Python和Spark 环境,便于分享和复制, 整个开发环境可以生成一个 vagrantfile.我们参考Berkeley University 和 Databrick 发布的 Massive Open Online Courses (MOOCs) :


• Introduction to Big Data with Apache Spark, Professor Anthony D. Joseph 网址
https://www.edx.org/course/introduction-big-data-apache-spark-uc-berkeleyx-cs100-1x

• Scalable Machine Learning, Professor Ameet Talwalkar 网址
https://www.edx.org/course/scalable-machine-learning-uc-berkeleyx-cs190-1x

课程实现使用了 IPython Notebooks和PySpark. 在GitHub repository的位置: https://github.com/spark-mooc/mooc-setup/. 一旦在你的机器中建立了Vagrant, 从这里的引导开始: https://docs.vagrantup.com/v2/getting-started/index.html.

在你的工作目录Clone spark-mooc/mooc-setup/ 的github仓库,在cloned的目录中启动命令:

$ vagrant up

注意一下spark的版本可能过期了而 vagrantfile可能没有过期.

可以看到类似的输出:

C:\Programs\spark\edx1001\mooc-setup-master>vagrant  up

Bringing  machine  'sparkvm'  up  with  'virtualbox'  provider...

==>  sparkvm:  Checking  if  box  'sparkmooc/base'  is  up  to  date...   ==>  sparkvm:  Clearing  any  previously  set  forwarded  ports...    ==>  sparkvm:  Clearing  any  previously  set  network  interfaces...    ==>  sparkvm:  Preparing  network  interfaces  based  on  configuration...
sparkvm:  Adapter  1:  nat
==>  sparkvm:  Forwarding  ports...
sparkvm:  8001  =>  8001  (adapter  1)
sparkvm:  4040  =>  4040  (adapter  1)   sparkvm:  22  =>  2222  (adapter  1)   ==>  sparkvm:  Booting  VM...    ==>  sparkvm:  Waiting  for  machine  to  boot.  This  may  take  a  few  minutes...
sparkvm:  SSH  address:  127.0.0.1:2222
sparkvm:  SSH   username:  vagrant   sparkvm:  SSH  auth  method:  private  keysparkvm:  Warning:  Connection  timeout.  Retrying...sparkvm:  Warning:  Remote  connection  disconnect.  Retrying...
==>  sparkvm:  Machine  booted  and  ready!
==>  sparkvm:  Checking  for  guest  additions  in  VM...
==>  sparkvm:  Setting  hostname...
==>  sparkvm:  Mounting  shared  folders...
sparkvm:  /vagrant  =>  C:/Programs/spark/edx1001/mooc-setup-master
==>  sparkvm:  Machine  already  provisioned.  Run  `vagrant  provision`  or  use the  `--provision`
==>  sparkvm:  to  force  provisioning.  Provisioners  marked  to  run  always  will  still  run.C:\Programs\spark\edx1001\mooc-setup-master>

这里在localhost:8001启动Python Notebooks和PySpark:

移动到云端

我们需要在分布系统中处理数据,而已经建立的开发环境是在单台电脑上的虚拟机,这对于探索和学习都非常受限。为了体验Spark 分布框架的规模扩展和强大,我们将在云上操作.

在AWS上部署应用


一旦要规模化我们的应用, 我们可以把我开发环境迁移到 Amazon Web Services (AWS).
这里清楚的描述了如何在EC2上运行 Spark,网址:https://spark.apache.org/docs/latest/ec2-scripts.html.
我们着重在构建 AWS Spark 环境的5个关键步骤:


1. 通过AWS console创建AWS EC2 key pair,网址:http://aws.amazon.com/console/.


2. 将key pair 导出到自己的环境:



export AWS_ACCESS_KEY_ID=accesskeyid
 export AWS_SECRET_ACCESS_KEY=secretaccesskey




3. 启动集群:





~$ cd $SPARK_HOME/ec2
ec2$ ./spark-ec2 -k <keypair> -i <key-file> -s <num-slaves> launch
<cluster-name>




4. SSH 到集群运行 Spark jobs:





ec2$ ./spark-ec2 -k <keypair> -i <key-file> login <cluster-name>






5. 使用后销毁集群:
ec2$ ./spark-ec2 destroy <cluster-name>

Docker的虚拟化环境



为了创建Python 和 Spark环境,便于分享和复制, 开发环境还可以构建在 Docker 的容器中.希望充分利用 Docker的两个主要功能:



* 生成独立的容器便于部署在不同的操作系统和云端.
* 使用DockerHub 可以方便的分享开发环境的镜像和相关依赖,这样便于复制和版本控制,配置好的环境镜像作为将来功能增强的基线.


下图介绍了一个 Docker环境,使用了 Spark, Anaconda, 数据库服务器和相关的数据卷.




Docker 提供了从Dockerfile 复制和部署环境的能力.可以从该地址找到一个用PySpark和Anaconda 构建Dockerfile的例子: https://hub.docker.com/r/thisgokeboysef/pyspark-docker/~/dockerfile/.

安装 Docker的指导链接如下:

• http://docs.docker.com/mac/started/ if you are on Mac OS X

• http://docs.docker.com/linux/started/ if you are on Linux

• http://docs.docker.com/windows/started/ if you are on Windows





从Dockerfile 中安装Docker 容器的命令如下:










$ docker pull thisgokeboysef/pyspark-docker












可以从Lab41 获得有关如何将环境 dockerize的信息资源. GitHub repository包含了所需代码:
https://github.com/Lab41/ipython-spark-docker
技术支持的blog也有丰富的信息: http://lab41.github.io/blog/2015/04/13/
ipython-on-spark-on-docker/.







小结



我们明确了构建数据密集型应用的场景,阐明了系统架构包括基础设施, 持久化,集成,分析和参与层,也探讨了Spark和Anaconda的组成. 进而在VirtualBox中搭建了Anaconda 和的开发环境,并使用第一章的文本内容作为输入,展示了一个词频统计应用。


下一章, 将深入挖掘数据密集型应用的架构,并利用witter, GitHub, 和Meetup 的APIs体验一下用Spark挖掘数据的感觉。

地铁译:Spark for python developers --- 搭建Spark虚拟环境 4...相关推荐

  1. 地铁译:Spark for python developers --- 搭建Spark虚拟环境1

    一个多月的地铁阅读时光,阅读<Spark for python developers>电子书,不动笔墨不看书,随手在evernote中做了一下翻译,多年不习英语,自娱自乐.周末整理了一下, ...

  2. 地铁译:Spark for python developers --- 搭建Spark虚拟环境 4

    Spark 同时可以建立在虚拟化的基础上,例如Vagrant 和Docker, 这样的虚拟化环境很容易部署到各种云服务上,例如AWS. Vagrant的虚拟化环境 为了创建Python和Spark 环 ...

  3. 地铁译:Spark for python developers ---Spark的数据戏法

    聚焦在 Twitter 上关于Apache Spark的数据, 这些是准备用于机器学习和流式处理应用的数据. 重点是如何通过分布式网络交换代码和数据,获得 串行化, 持久化 , 调度和缓存的实战经验 ...

  4. 地铁译:Spark for python developers ---Spark处理后的数据可视化

    spark for python developer 一书,说实在的,质量一般,但勉强可以作为python 工程师的入门资料,至此,这一时段的地铁译结束了,开始新的阅读旅程-- 对于 Python 的 ...

  5. spark指定python版本_1.Spark学习(Python版本):Spark安装

    Step1: 更新apt sudo apt-get update Step2: 安装SSH.配置SSH无密码登陆 sudo apt-get install openssh-server ssh loc ...

  6. idea spark java,IntelliJ Idea 搭建spark 开发环境

    笔者介绍的是在MAC环境下使用Idea搭建spark环境. 环境: spark 2.0.0 scala 2.11.8 maven 3.9.9 idea 15 1.Idea的安装.Idea可以在官网上下 ...

  7. spark streaming python实例_kafka+spark streaming代码实例(pyspark+python)

    一.系统准备 1.启动zookeeper:bin/zkServer.cmd start 2.启动kafka:bin/kafka-server-start.sh -daemon config/serve ...

  8. python与excel结合能做什么-机器学习实践:如何将Spark与Python结合

    编辑推荐: 本文来自搜狐,本文主要通过介绍了Apache Spark的一些特性,如何将Spark与Python结合. 在国外,Apache Spark开发人员的平均年薪为110,000美元.毫无疑问, ...

  9. Spark 个人实战系列(1)--Spark 集群安装

    前言: CDH4不带yarn和spark, 因此需要自己搭建spark集群. 这边简单描述spark集群的安装过程, 并讲述spark的standalone模式, 以及对相关的脚本进行简单的分析. s ...

  10. linux下spark的python编辑_Linux下搭建Spark 的 Python 编程环境的方法

    Spark编程环境 Spark 可以独立安装使用,也可以和Hadoop 一起安装使用.在安装 Spark 之前,首先确保你的电脑上已经安装了 Java 8 或者更高的版本. Spark 安装 访问 S ...

最新文章

  1. 了解java虚拟机—垃圾回收算法(5)
  2. MySQL 5.6.6 LABS 版本 下载 已经内含 Memcached
  3. 一个重复try语句的实验
  4. 《Linux 性能及调优指南》1.6 了解Linux性能指标
  5. 基于 HTTP 协议的几种实时数据获取技术
  6. android 的监控讲解,java android网络监测详解
  7. html中div流光边框,CSS3 迷你的圆形流光边界
  8. 获取图层字段的唯一值集合(ArcEngine)
  9. [软件更新]卡巴斯基全功能安全软件2010简体中文版程序发布
  10. 设置iSCSI的发起程序(客户端)(三)
  11. 泰克Tektronix示波器上位机软件NS-Scope介绍
  12. android系统设置动态壁纸,安卓教程:设置GIF动图为手机壁纸
  13. 与其去雄安买房,不如找中企动力建自己的平台
  14. 小程序:获取页面高度问题
  15. 如春日细雨般的缠绵,浸润心扉
  16. Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数
  17. 绿色信贷数据合集(更新至2021年)
  18. ESP32 单片机学习笔记 - 08 - WebSocket客户端
  19. 快速了解常见的数据库关系代数
  20. 王者荣耀战区活跃度排名怎么实现的?这篇文章给你答案!

热门文章

  1. LA 4794 - Sharing Chocolate dp
  2. UVA-10859 - Placing Lampposts(树形DP)
  3. 解决Tuxera NTFS for Mac软件安装问题 手动批准mac内核扩展
  4. Flutter入门(2)—创建项目
  5. JDK下Bin目录的工具介绍
  6. Java写的一个二叉树三种遍历递归算法(仅用作理解三种遍历)
  7. linux 安装Paramiko模块安装和使用
  8. 卡片书签——简洁的 Chrome 书签扩展
  9. 10月24日学习内容整理:自增约束条件,外键,修改表,复制表
  10. 实施ERP系统的一般方法和步骤