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运行

上一篇:iOS tag的使用


下一篇:Oracle SQL调优系列之SQL Monitor Report