参考书目《
Spark源码核心与开发实战》
》弹性分布式数据集 (RDD, Resilient Distributed Databases) 是Spark的核心抽象 是分布式内存的抽象使用
RDD表示已被分区的、只读的,并提供了一组丰富的操作方式来操作这些数据集合,数据集的全部或部分缓存在内存中,省去了大量的磁盘IO操作
操作:map FlatMap, filter, join , groupBy, reduceBy
RDD 允许用户在大规模集群上执行基于内存的计算
Spark可以应用于大多数大数据处理场景
每个RDD有如下特点:
1.一组RDD分区 partition 即数据集的原子组成部分
2.计算每个分片的函数
3.对父RDD的一组依赖
RDD作为数据结构 本质上是一个只读的分区记录集合
Spark用Scala语言实现RDD的API
Spark的生态系统与Hadoop是完全兼容的
转换操作是Spark RDD的两大核心操作 value型数据转换操作 Key-Value型数据转换操作
行为操作
输出数据到外部文件存储系统的Action操作
控制操作
Spark Shell下的Spark API编程实践
Spark shell 是spark的交互式脚本(交互式工具),是一种学习API的简单途径
Local模式: spark-shell
集群模式 spark-shell --master spark://SparkMaster:7077
WEB UI sparkmaster:8080 spark集群 sparkmaster:50070是hadoop包括文件系统 sparkmaster:4040这个是spark-shell的WEB UI
搜狗日志数据分析实践 --------也没啥问题
基于IntelliJ IDEA使用Spark API开发应用程序
是java和Scala语言支持最好的集成开发环境之一
搞出来一个jar包 , 然后再spark-submit在集群模式下进行运行
jar包----计算机文件格式--JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。
JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。在 JAR 中包含特殊的文件,如 manifests 和部署描述符,用来指示工具如何处理特定的 JAR
Non-SBT模式
IntelliJ IDEA开发Spark、打JAR包 注意:两种方式都是以 SBT进行编译的
参考 https://blog.csdn.net/jameshadoop/article/details/52305228
spark交互工具: Spark Shell
spark应用程序部署工具: Spark submit 提交spark应用给集群