为什么RDD有很多种创建方法
因为Spark运行的介质、硬件存储不同
Spark和Hadoop有没有关系?
没关系,Spark可以以Hadoop作为存储
学Spark有没有必要学Hadoop?
专注于计算的话没必要学
第一个RDD:代表了Spark应用程序输入数据的来源
通过tranformation来对RDD进行各种算子的转换,实现算法
创建RDD的几种基本方式:
1、使用程序中的集合创建RDD
2、使用本地文件系统创建RDD
3、使用HDFS创建RDD
4、基于DB创建RDD
5、基于NoSQL,例如HBase,创建RDD
6、基于S3
7、基于数据流创建RDD
通过集合创建RDD的实际意义:测试
使用本地文件系统创建RDD的作用:测试大量数据的文件
使用HDFS创建RDD的意义:生产环境最常用的RDD创建方式
Hadoop+Spark目前大数据领域最有前途的组合
可以在智能设备如:手机、平板、电视上使用Spark,也可以在PC以及Server上使用Spark(只要有正常的JVM)
多线程的方式模拟分布式
local模式默认情况下如果失败了就是失败了,但可以重试且可以指定重试次数
在spark shell中不用重新创建spark context,其本身就是个spark程序,不用创建了
reduce是action,所以在spark shell中敲入这个后直接就会出发一个作业
没有指定分片的话,spark看有多少个core就用多少个core
只有一个Stage,原因:reduce是action,不会产生RDD,不需要shuffle,所以只有一个Stage。
实际上Spark的并行度到底应该设置为多少?建议为每个core可以承载2-4个partition
刚刚的代码创建的是ParallelCollectionRDD,看一下源码
数据Block是由BlockManager管理的
从HDFS中获取文件之后得到的MapPartitionRDD原因:
从HDFS获取文件后有一个去掉行号的map操作
基于sql的RDD由于数据分布式存储,所以要非常认真的写PreferedLocation
从数据本地性上讲,安装有mysql、HBase等的服务器上也要安装spark,但有时无法实现,这时需要用到Tachyon
联系客服