地铁译:Spark for python developers --- 搭建Spark虚拟环境 4...
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...相关推荐
- 地铁译:Spark for python developers --- 搭建Spark虚拟环境1
一个多月的地铁阅读时光,阅读<Spark for python developers>电子书,不动笔墨不看书,随手在evernote中做了一下翻译,多年不习英语,自娱自乐.周末整理了一下, ...
- 地铁译:Spark for python developers --- 搭建Spark虚拟环境 4
Spark 同时可以建立在虚拟化的基础上,例如Vagrant 和Docker, 这样的虚拟化环境很容易部署到各种云服务上,例如AWS. Vagrant的虚拟化环境 为了创建Python和Spark 环 ...
- 地铁译:Spark for python developers ---Spark的数据戏法
聚焦在 Twitter 上关于Apache Spark的数据, 这些是准备用于机器学习和流式处理应用的数据. 重点是如何通过分布式网络交换代码和数据,获得 串行化, 持久化 , 调度和缓存的实战经验 ...
- 地铁译:Spark for python developers ---Spark处理后的数据可视化
spark for python developer 一书,说实在的,质量一般,但勉强可以作为python 工程师的入门资料,至此,这一时段的地铁译结束了,开始新的阅读旅程-- 对于 Python 的 ...
- spark指定python版本_1.Spark学习(Python版本):Spark安装
Step1: 更新apt sudo apt-get update Step2: 安装SSH.配置SSH无密码登陆 sudo apt-get install openssh-server ssh loc ...
- 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可以在官网上下 ...
- spark streaming python实例_kafka+spark streaming代码实例(pyspark+python)
一.系统准备 1.启动zookeeper:bin/zkServer.cmd start 2.启动kafka:bin/kafka-server-start.sh -daemon config/serve ...
- python与excel结合能做什么-机器学习实践:如何将Spark与Python结合
编辑推荐: 本文来自搜狐,本文主要通过介绍了Apache Spark的一些特性,如何将Spark与Python结合. 在国外,Apache Spark开发人员的平均年薪为110,000美元.毫无疑问, ...
- Spark 个人实战系列(1)--Spark 集群安装
前言: CDH4不带yarn和spark, 因此需要自己搭建spark集群. 这边简单描述spark集群的安装过程, 并讲述spark的standalone模式, 以及对相关的脚本进行简单的分析. s ...
- linux下spark的python编辑_Linux下搭建Spark 的 Python 编程环境的方法
Spark编程环境 Spark 可以独立安装使用,也可以和Hadoop 一起安装使用.在安装 Spark 之前,首先确保你的电脑上已经安装了 Java 8 或者更高的版本. Spark 安装 访问 S ...
最新文章
- 了解java虚拟机—垃圾回收算法(5)
- MySQL 5.6.6 LABS 版本 下载 已经内含 Memcached
- 一个重复try语句的实验
- 《Linux 性能及调优指南》1.6 了解Linux性能指标
- 基于 HTTP 协议的几种实时数据获取技术
- android 的监控讲解,java android网络监测详解
- html中div流光边框,CSS3 迷你的圆形流光边界
- 获取图层字段的唯一值集合(ArcEngine)
- [软件更新]卡巴斯基全功能安全软件2010简体中文版程序发布
- 设置iSCSI的发起程序(客户端)(三)
- 泰克Tektronix示波器上位机软件NS-Scope介绍
- android系统设置动态壁纸,安卓教程:设置GIF动图为手机壁纸
- 与其去雄安买房,不如找中企动力建自己的平台
- 小程序:获取页面高度问题
- 如春日细雨般的缠绵,浸润心扉
- Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数
- 绿色信贷数据合集(更新至2021年)
- ESP32 单片机学习笔记 - 08 - WebSocket客户端
- 快速了解常见的数据库关系代数
- 王者荣耀战区活跃度排名怎么实现的?这篇文章给你答案!