一个多月的地铁阅读时光,阅读《Spark for python developers》电子书,不动笔墨不看书,随手在evernote中做了一下翻译,多年不习英语,自娱自乐。周末整理了一下,发现再多做一点就可基本成文了,于是开始这个地铁译系列。

本章中,我们将为开发搭建一个独立的虚拟环境,通过Spark和Anaconda提供的PyData 库为该环境补充能力。 这些库包括Pandas,Scikit-Learn, Blaze, Matplotlib, Seaborn, 和 Bokeh. 我们的操作如下:

  • 使用Anaconda 的Python 发布包搭建开发环境,包括使用 IPython Notebook 环境来完成我们的数据探索任务。
  • 安装并使Spark以及 PyData 库正常工作,例如Pandas,Scikit- Learn, Blaze, Matplotlib, 和 Bokeh.
  • 构建一个 word count例子程序来保证一切工作正常.

近些年来涌现出了很多数据驱动型的大公司,例如Amazon, Google, Twitter, LinkedIn, 和 Facebook. 这些公司,通过传播分享,透漏它们的基础设施概念,软件实践,以及数据处理框架,已经培育了一个生机勃勃的开源软件社区,形成了企业的技术,系统和软件架构,还包括新型的基础架构,DevOps,虚拟化,云计算和软件定义网络。

受到Google File System (GFS)启发,开源的分布式计算框架Hadoop和MapReduce被开发出来处理PB级数据。在保持低成本的同时克服了扩展的复杂性,着也导致了数据存储的新生,例如近来的数据库技术,列存储数据库 Cassandra, 文档型数据库 MongoDB, 以及图谱数据库Neo4J。

Hadoop, 归功于他处理大数据集的能力,培育了一个巨大的生态系统,通过Pig, Hive, Impala, and Tez完成数据的迭代和交互查询。
当只使用MapReduce的批处理模式时,Hadoop的操作是笨重而繁琐的。Spark 创造了数据分析和处理界的革命,克服了MapReduce 任务磁盘IO和带宽紧张的缺陷。Spark 是用 Scala实现的, 同时原生地集成了 Java Virtual Machine (JVM) 的生态系统. Spark 很早就提供了Python API 并使用PySpark. 基于Java系统的强健表现,使 Spark 的架构和生态系统具有内在的多语言性.

本书聚焦于PySpark 和 PyData 生态系统 Python 在数据密集型处理的学术和科学社区是一个优选编程语言. Python已经发展成了一个丰富多彩的生态系统. Pandas 和 Blaze提供了数据处理的工具库 Scikit-Learn专注在机器学习 Matplotlib, Seaborn, 和 Bokeh完成数据可视化 因此, 本书的目的是使用Spark and Python为数据密集型应用构建一个端到端系统架构. 为了把这些概念付诸实践 我们将分析诸如 Twitter, GitHub, 和 Meetup.这样的社交网络.我们通过访问这些网站来关注Spark 和开源软件社区的社交活动与交互.

构建数据密集型应用需要高度可扩展的基础架构,多语言存储, 无缝的数据集成, 多元分析处理, 和有效的可视化. 下面要描述的数据密集型应用的架构蓝图将贯穿本书的始终. 这是本书的骨干.

我们将发现spark在广阔的PyData 生态系统中的应用场景.

理解数据密集型应用的架构


为了理解数据密集型应用的架构 使用了下面的概念框架 该架构 被设计成5层:
• 基础设施层
• 持久化层
• 集成层
• 分析层
• 参与层
下图描述了数据密集型应用框架的五个分层:

从下往上 我们遍历各层的主要用途.

基础设施层(Infrastructure layer)

基础设施层主要关注虚拟化,扩展性和持续集成. 在实践中, 虚拟化一词, 我们指的是开发环境 的VirtualBox以及Spark 和Anaconda 的虚拟机环境。 如果扩展它,我们可以在云端创建类似的环境。创建一个隔离的开发环境,然后迁移到测试环境,通过DevOps 工具,还可以作为持续集成的一部分被部署到生产环境,例如 Vagrant, Chef, Puppet, 和Docker. Docker 是一个非常流行的开源项目,可以轻松的实现新环境的部署和安装。本书局限于使用VirtualBox构建虚拟机. 从数据密集型应用架构看,我们将在关注扩展性和持续集成前提下只阐述虚拟化的基本步骤.

持久化层(Persistence layer)

持久化层管理了适应于数据需要和形态的各种仓库。它保证了多元数据存储的建立和管理。 这包括关系型数据库如 MySQL和 PostgreSQL;key-value数据存储 Hadoop, Riak, 和 Redis ;列存储数据库如HBase 和 Cassandra; 文档型数据库 MongoDB 和 Couchbase; 图谱数据库如 Neo4j. 持久化层还管理了各种各样的文件系统,如 Hadoop’s HDFS. 它与各种各样的存储系统交互,从原始硬盘到 Amazon S3. 它还管理了各种各样的文件存储格式 如 csv, json, 和parquet(这是一个面向列的格式).

集成层(Integration layer)

集成层专注于数据的获取、转移、质量、持久化、消费和控制.基本上由以下的5C来驱动: connect, collect, correct, compose和consume.这五个步骤描述了数据的生命周期。它们聚焦于如何获取有兴趣的数据集、探索数据、反复提炼使采集的信息更丰富,为数据消费做好准备. 因此, 这些步骤执行如下的操作:

  • Connect: 目标是从各种各样数据源选择最好的方法.如果存在的话,这些数据源会提供APIs,输入格式,数据采集的速率,和提供者的限制.
  • Correct: 聚焦于数据转移以便于进一步处理 同时保证维护数据的质量和一致性
  • Collect: 哪些数据存储在哪 用什么格式 方便后面阶段的组装和消费
  • Compose: 集中关注如何对已采集的各种数据集的混搭, 丰富这些信息能够构建一个引入入胜的数据驱动产品。
  • Consume: 关注数据的使用、渲染以及如何使正确的数据在正确的时间达到正确的效果。
  • Control: 这是随着数据、组织、参与者的增长,早晚需要的第六个附加步骤,它保证了数据的管控。

    下图描述了数据获取以及提炼消费的迭代过程:

分析层(Analytics layer)

分析层是Spark 处理数据的地方,通过各种模型, 算法和机器学习管道从而得出有用的见解. 对我们而言, 本书的分析层使用的是Spark. 我们将在接下来的章节深入挖掘Spark的优良特性. 简而言之,我们使它足够强大以致于在单个同一平台完成多周范式的分析处理。 它允许批处理, 流处理和交互式分析. 在大数据集上的批处理尽管有较长的时延单使我们能够提取模式和见解,也可以在流模式中处理实时事件。 交互和迭代分析更适合数据探索. Spark 提供了Python 和R语言的绑定API,通过SparkSQL 模块和Spark Dataframe, 它提供了非常熟悉的分析接口.

参与层(Engagement layer)

参与层完成与用户的交互,提供了 Dashboards,交互的可视化和告警. 我们将聚焦在 PyData 生态系统提供的工具如Matplotlib, Seaborn, 和Bokeh.

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

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

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

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

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

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

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

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

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

  5. 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可以在官网上下 ...

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

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

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

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

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

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

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

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

最新文章

  1. Jeff Dean回顾谷歌2021
  2. CCS5连接调试C64X系列DSP核
  3. 转换汇编到shellcode的过程
  4. selenium_java
  5. 工作 5 年,为什么我却越混越差?
  6. BZOJ 1497: [NOI2006]最大获利(最大权闭合图)
  7. 用于微信小程序的图文编辑器
  8. Matlab控制器设计app(controlSystemDesigner)的使用
  9. git 镜像下载和基本使用
  10. ADT下载地址(含各版本),最新ADT-23.0.7
  11. 正交试验设计例题及答案_正交试验设计中的方差分析-例题分析
  12. Python工程师Java之路(n)手写中文分词
  13. 转载一篇c语言深度文章 《一个“蝇量级” C 语言协程库》
  14. linux上ssh免密登录原理及实现
  15. ClickME 隐私策略
  16. 在那个时候根本没有计算机房,王德厚:我们现在的写作环境与王瑶先生那个时候没有根本区别...
  17. 硬件安全: 动态信息流跟踪
  18. C语言判断完全平方数(经典代码)
  19. [词根词缀]leg/lega/lev/liber/lig词根由来
  20. 测试两路由器间网速软件,网速检测(TCP Monitor Plus)

热门文章

  1. C语言求矩阵的逆(高斯法)
  2. 校招----深信服测试笔经面经
  3. 肖明计算机网络答案,袭肖明
  4. GOOGLE HACKS巧妙使用网络搜索的技巧和工具(第二版)已经出版
  5. cesium添加自定义点位图片
  6. 复旦女博士被“送”5篇论文后要分手,代写情夫自杀?复旦大学深夜回应!
  7. C#学习笔记:子类于父类的构造函数的关系【By Myself】
  8. 形态学填充孔洞的几个问题
  9. 存在阿里云OSS的视频截取一张图片作为封面
  10. Python吴恩达深度学习作业13 -- Keras教程