Author: 阮榕城

Spark入门:共享变量(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
返回Spark教程首页

Spark中的两个重要抽象是RDD和共享变量。上一章我们已经介绍了RDD,这里介绍共享变量。

在默认情况下,当Spark在集群的多个不同节点的多个任务上并行运行一个函数时,它会把函数中涉及到的每个变量,在每个任务上都生成一个副本。但是,有时候,需要在多个任务之间共享变量,或者在任务(Task)和任务控制节点(Driver Program)之间共享变量。为了满足这种需求,Spark提供了两种类型的变量:广播变量(broadcast variables)和累加器(accumulators)。广播变量用来把变量在所有节点的内存之间进行共享。累加器则支持在所有不同节点之间进行累加计算(比如计数或者求和)。
继续阅读

Spark入门:键值对RDD(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
返回Spark教程首页

虽然RDD中可以包含任何类型的对象,但是“键值对”是一种比较常见的RDD元素类型,分组和聚合操作中经常会用到。
Spark操作中经常会用到“键值对RDD”(Pair RDD),用于完成聚合计算。普通RDD里面存储的数据类型是Int、String等,而“键值对RDD”里面存储的数据类型是“键值对”。
继续阅读

Spark2.1.0+入门:RDD编程(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
返回Spark教程首页

通过前面几章的介绍,我们已经了解了Spark的运行架构和RDD设计与运行原理,并介绍了RDD操作的两种类型:转换操作和行动操作。
同时,我们前面通过一个简单的WordCount实例,也大概介绍了RDD的几种简单操作。现在我们介绍更多关于RDD编程的内容。
Spark中针对RDD的操作包括创建RDD、RDD转换操作和RDD行动操作。
继续阅读

在集群上运行Spark应用程序(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
返回Spark教程首页
Spark应用程序在集群中运行时,需要借助于集群管理器(包括本地集群管理器、YARN、Mesos)来为其实现资源管理调度服务,实现对集群中各个机器的访问(可以参考前面章节的内容:Spark集群部署模式)。这里通过简单的示例介绍其中两种:独立集群管理器和Hadoop Yarn集群管理器。通过介绍,我们可以了解到如何在这两种集群管理器上运行Spark应用程序。
继续阅读

使用开发工具Visual Studio Code 编写Spark应用程序(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
返回Spark教程首页
虽然可以直接pyspark或python3 shell进行入门学习编程,但是真正进行代码编写的时候,更多的是借助IDE工具进行编程。常见的Python IDE工具有Pycharm,Visual Studio Code(简称vscode), Atom等。本篇教程将介绍如何在vscode配置Python3环境。
继续阅读

Spark2.1.0+入门:第一个Spark应用程序:WordCount(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载。版权所有,侵权必究!
返回Spark教程首页

前面已经学习了Spark安装,完成了实验环境的搭建,并且学习了Spark运行架构和RDD设计原理,同时,我们还学习了Scala编程的基本语法,有了这些基础知识作为铺垫,现在我们可以没有障碍地开始编写一个简单的Spark应用程序了——词频统计。
继续阅读

Spark2.1.0+入门:Spark的安装和使用(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载!
返回Spark教程首页
Spark可以独立安装使用,也可以和Hadoop一起安装使用。本教程中,我们采用和Hadoop一起安装使用,这样,就可以让Spark使用HDFS存取数据。需要说明的是,当安装好Spark以后,里面就自带了scala环境,不需要额外安装scala,因此,“Spark安装”这个部分的教程,假设读者的计算机上,没有安装Scala,也没有安装Java(当然了,如果已经安装Java和Scala,也没有关系,依然可以继续按照本教程进行安装),也就是说,你的计算机目前只有Linux系统,其他的软件和环境都没有安装(没有Java,没有Scala,没有Hadoop,没有Spark),需要从零开始安装所有大数据相关软件。下面,需要你在自己的Linux系统上(笔者采用的Linux系统是Ubuntu16.04),首先安装Java和Hadoop,然后再安装Spark(Spark安装好以后,里面就默认包含了Scala解释器)。由于Ubuntu 16.04已经自带了Python 3.5版本,所以你的系统如果是Ubuntu 16.04,那么就不需要重新安装Python了。本教程也将以python3语法进行教学。
本教程的具体运行环境如下:

  • Ubuntu16.04以上
  • Hadoop 2.7.1以上
  • Java JDK 1.8以上
  • Spark 2.1.0 以上
  • Python 3.4以上

继续阅读

Spark入门:RDD的设计与运行原理(Python版)

【版权声明】博客内容由厦门大学数据库实验室拥有版权,未经允许,请勿转载。版权所有,侵权必究!
返回Spark教程首页

Spark的核心是建立在统一的抽象RDD之上,使得Spark的各个组件可以无缝进行集成,在同一个应用程序中完成大数据计算任务。RDD的设计理念源自AMP实验室发表的论文《Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing》。
继续阅读

macOS 安装和配置Spark 学习指南

版权声明:本指南为厦门大学林子雨编著的《大数据技术原理与应用》教材配套学习资料,版权所有,转载请注明出处,请勿用于商业用途】

注:第十六章Spark,本章为2016年新增章节,不在2015年8月1日由人民邮电出版社出版发行的《大数据技术原理与应用》中,会被放入到教材的下一个版本中。

Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark 最大的特点就是快,可比 Hadoop MapReduce 的处理速度快 100 倍。本指南将介绍 Spark 的安装与基本使用。请务必仔细阅读完厦门大学林子雨编著的《大数据技术原理与应用》第16章节(点击这里下载第十六章Spark的pdf电子书),再结合本指南进行学习。

继续阅读

macOS Hive安装配置教程

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

继续阅读