3. 分布式计算与持续交付

GISpark集成了代码管理、模块仓库和系统构建的软件工程持续集成环境,

3.1. 持续集成与持续交付

3.1.1. GitLab版本系统

GitLab源代码托管与版本管理提供基于工程(Project)的源代码和相关资源的版本化管理,底层采用Git,可以实现分布式的编辑和合并。不仅可用于管理源代码,也用于管理文档和小型的测试数据集。

3.1.2. Maven软件仓库

Maven软件仓库管理软件构建(Build)中用到的组件,可以集中管理、按需获取。

3.1.3. Jenkins持续集成

Jenkins持续构建系统将代码构建、持续集成与持续交付集成为一个整合性服务,实现从源码到运行的完整过程。分布式系统的组件将会被部署到多个节点之中,这一过程通过虚拟机和Docker来完成,Jenkins的代码构建结果将被输出到Docker的构建环节,通过Dockerfile实现以Docker容器形式的最终交付件,并继续调用Docker Compose将一组服务立即投入运行。

3.1.4. 自动化测试与Bug跟踪

交付软件是容易的,交付高质量的产品和服务是非常困难的。建立自动化测试平台、测试用例库和Bug跟踪体系,通过自动化测试流程将软件交付过程形成闭环,并度量和跟踪其中的改变,进行变更控制,从而持续提升交付成果的质量。

3.1.5. 文档的持续交付

基于Git+Sphinx+ReadTheDocs的

3.1.6. 企业级服务总线

3.2. Anaconda科学计算包

Anaconda是一个集成了Jupyter Notebook以及NumPy、SciPy、Pandas、Matplotlib等科学计算与数据处理的Python分发包。

3.2.1. 安装Anaconda

安装Anaconda

3.2.2. Jupyter Notebook安装

通过功能强大的Notebook进行远程数据分析。
* [配置Jupyter Notebook](pei_zhi_jupyter_notebook.md)

3.3. Spark分布式计算平台

3.3.1. Spark安装与配置

3.3.1.1. 部署架构

3.3.1.4. PySpark配置

3.4. Python使用教程

  • Python

在数据分析中,Python是必不可少的工具。可以通过这里的Python基础教程快速学习。在Notebook资源大全可以获得大量的从Python基础使用到数据处理、数据建模、并行计算、机器学习、深度学习等大量资源,采用notebook编写,可以直接下载后进行练习,通过下载Git资源到本地可以快速将其下载到本地存储慢慢学习。

  • Pandas

数据分析常用的是Python列表类对象,用于进行各种数据对象的处理。用于时间序列、二维表、数据立方分析的Pandas内存数据表功能非常强大。但是目前的Pandas主要是单机版本,在金融领域已经得到广泛的使用。

  • Blaze

Blaze系列软件提供在集群上运行类似于Pandas的功能,不过目前仍然在快速的发展中。

  • Jupyter

Jupyter将Shell、Python、Ruby等多种脚本语言集成到一个执行环境中,可以混合在一起执行、设置可以交换变量,使用Jupyter魔法操作符即可。

3.5. Python并行处理

* [快速并行处理方法]
* [调度到后台执行]

3.6. PySpark快速入门

* [Spark 安装配置](doc/sparksetup.md)
* [Spark SQL使用](doc/pysparksql.md)