Spark学习之基础相关组件(1)
Spark学习之基础相关组件(1)
1. Spark是一个用来实现快速而通用的集群计算的平台。
2. Spark的一个主要特点是能够在内存中进行计算,因而更快。
3. RDD(resilient distributed dataset弹性分布式数据集)表示分布在多个计算节点上可以并行操作的元素的集合,是Spark的主要编程抽象。
4. Spark是一个大一统的软件栈:
4.1 Spark core实现了Spark的基本功能,包括任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含了对弹性分布式数据集的API定义。 4.2 Spark Streaming是Spark提供的对实时数据进行流式计算的组件。 4.3 Mlib机器学习(ML),提供了很多的机器学习算法,包括分类、回归、聚类、协同过滤等,还包括模型评估、数据导入等额外支持功能。 4.4 Graph是用来操作图的程序库,可以进行并行的图计算。 4.5 集群管理器(cluster manager),包括自带的独立调度器,还有支持Hadoop YARN、Apache Mesos。
5. Spark的存储层,包括HDFS(分布式文件系统)、本地文件、亚马逊S3、Cassandra、Hive、Hbase等。
6. spark是用Scala写的,运行在Java虚拟机)(JVM)上。
7. 独立应用,在独立应用程序中使用Spark需要自行初始化SparkContext。
7.1. 初始化SparkContext: 完成与Spark的连接后,接下来需要导入Spark包并且创建SparkContext。可以通过先创建一个SparkConf对象来配置应用,然后基于这个SparkConf创建一个SparkContext对象。 在Python中初始化Spark
from pyspark import SparkConf,SparkContext conf = SparkConf().setMaster("local").setAppname("My App") sc = SparkContext(conf = conf)
7.2 使用方法(如使用文本文件)来创建RDD并操控它们。 7.3 最后关闭Spark调用SparkContext的stop()方法,或者直接退出应用(System.exit(0)或者sys.exit())。
8. 构建独立应用:1)java、Scala、Python创建应用2)stb、maven打包3)stb、maven运行

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《深入理解SPARK:核心思想与源码分析》(第1章)
自己牺牲了7个月的周末和下班空闲时间,通过研究Spark源码和原理,总结整理的《深入理解Spark:核心思想与源码分析》一书现在已经正式出版上市,目前亚马逊、京东、当当、天猫等网站均有销售,欢迎感兴趣的同学购买。我开始研究源码时的Spark版本是1.2.0,经过7个多月的研究和出版社近4个月的流程,Spark自身的版本迭代也很快,如今最新已经是1.6.0。目前市面上另外2本源码研究的Spark书籍的版本分别是0.9.0版本和1.2.0版本,看来这些书的作者都与我一样,遇到了这种问题。由于研究和出版都需要时间,所以不能及时跟上Spark的脚步,还请大家见谅。但是Spark核心部分的变化相对还是很少的,如果对版本不是过于追求,依然可以选择本书。 天猫、当当、亚马逊、京东均有销售。 为了让大家对本书有个大致了解,这里将本书第一章的内容附上: 第1章 环境准备 “凡事豫则立,不豫则废;言前定,则不跲;事前定,则不困;” ——《礼记·中庸》 本章导读: 在深入了解一个系统的原理、实现细节之前,应当先准备好它的源码编译环境、运行环境。如果能在实际环境安装和运行Spark,显然能够提升读者对于...
- 下一篇
Spark学习之RDD编程(2)
Spark学习之RDD编程(2) 1. Spark中的RDD是一个不可变的分布式对象集合。 2. 在Spark中数据的操作不外乎创建RDD、转化已有的RDD以及调用RDD操作进行求值。 3. 创建RDD:1)读取一个外部数据集2)在驱动器程序里分发驱动器程序中的对象集合。 4. RDD支持的操作: 1)转换操作,由一个RDD生成一个新的RDD。 2)行动操作,对RDD进行计算结果,并把结果返回到驱动器程序中,或者把结果存储到外部存储系统(如HDFS)。 5. Spark程序或者shell会话都会按如下方式工作: 1)从外部数据创建出输入RDD。 2)使用诸如filter()这样的转化操作对RDD进行转化,以定义一个新的RDD。 3)告诉Spark对需要被重用的中间结果RDD执行persist()操作。 4)使用行动操作 (例如count()和first()等)来触发一次并行计算,Spark会对计算进行优化后在执行。 6. 创建RDD 快速创建RDD,把程序中一个已有的集合传给SparkContext的parallelize()方法,不过这种方法除了开发原型和测试时,这种方式用的并不多。...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案