SparkML (一) Spark的环境搭建与运行

做Spark也有段时间了,主要是平台方面的东西源码也改过些。不过总觉得还是应用才是王道,加上现在AI日趋火爆,抽点时间学习下SparkML吧。—前言

我博客里SparkML系列的文章是基于Spark机器学习这本书(Nick Pentreath著),把每章重点和自己的一些感悟记录下。

Spark的环境搭建与运行

Spark支持4中运行模式

  1. 本地单机模式: 在本机的一个JVM里构造的一个多线程版本的Spark运行环境,用于开发测试。
  2. 集群单机模式: Spark StandAlone 稳定、搭建简单,但想同时使用Hadoop MR/hive等不太合适,适合小规模、特定领域的Spark集群。
  3. Spark on Mesos: 支持细粒度的资源调度,spark原生就支持的调动器,与docker支持好,适合云。
  4. Spark on Yarn: yarn是最有前途的资源调度器,能同时支持多种计算框架,与数据仓库容易结合,但目前不支持细粒度的资源调度。适合大数据平台。

Spark应用程序由两部分组成

  1. 驱动程序(Driver),有且只有一个,负责资源调度、DAG生成、计算任务调度等也可以进行一些运算。
  2. 执行程序(Executors),默认是2,可以是0,一般有多个。负责拉取数据进行计算、保存数据等等。

Spark编程模型

SparkContext和SparkConf类

SparkContext类是Spark应用程序的入口,也是Driver程序的核心模块。用来初始化各种配置、连接集群、控制Executor等。SparkContext对象创建时,需要SparkConf类作为参数,如果不用则使用默认配置。

spark-shell

spark支持scala/python版的REPL,分别是spark-shell和pyspark

RDD(弹性分布式数据集)

RDD是Spark最核心的概念,使用者可以暂时理解为分布式的数据。自带丰富的api,可以进行各种transformation和action计算。详情参阅其他文档

广播变量和累加器

这是Spark中最常用且功能强大的两种变量类型
广播变量 是只读的变量。由sparkcontext创建并发布到所有Executor,从而减少了Executor频繁读取同一份数据的开销。
累加器 非只读,且可以累加的变量。又可以分为本地累加器(Executor节点创建,只能访问自己节点的累加器)和全局累加器(由Driver创建,并且只允许Driver程序访问)。

Spark编程入门

pass (都是代码,没必要贴了)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值