第一阶段(1-3月):会从浅入深,基于大量案例实战,深度剖析和讲解Spark,并且会包含完全从企业真实复杂业务需求中抽取出的案例实战。课程会涵盖Scala编程详解、Spark核心编程、Spark SQL和Spark Streaming、Spark GraphX、SparkR、Machine Learning、Spark内核以及源码剖析、性能调优、企业级案例实战等部分
第二阶段(Spark超大规模大数据案例实战):使用了Spark技术生态栈中的Spark Core、Spark SQL、Spark Streaming、SparkR、Machine Learning,进行离线计算和实时计算业务模块的开发、数据的关联性分析、用户行为模式和特征的训练与应用、用户网络的社区发现、用户影响力、能量传播、标签传播、标签推理、人群划分、年龄段预测、商品交易时序跳转
创建RDD方法
创建RDD的方式(方法很多,场景也很多)以下为较为常见的七中方式:
1,使用程序中的集合创建RDD;
2,使用本地文件系统创建RDD;
3,使用HDS创建RDD
4,基于DB创建RDD
5,基于NoSQL,例如HBase
6,基于S3创建RDD
7,基于数据流创建RDD
我们可以在再智能设备 例如手机 平板 电视 上使用Spark,也可以在PC和Server使用使用SDpark!
多线程方式模拟分布式,Local模式 默认情况下如果失败了 就是失败了。下面代码使用程序中的集合创建RDD。
(1)通过集合创建RDD
object TestClassRdd_1 {
def main(args:Array[String]): Unit ={
val conf =new SparkConf()
conf.setAppName("My first Test in class of the Spark")
conf.setMaster("local")
val sc = new SparkContext(conf)
val number = 1 to 100
val rdd =sc.parallelize(number)
val sum =rdd.reduce(_+_) //1+2=3 3+3=6 6+4=10
println("1+ ... +100"+ sum)
}
}
(2)使用HDFS创建RDDval conf = new SparkConf()
conf.setAppName()
conf.setMaster("local")
val sc = new SparkContext()
val numbers = 1 to 100 //创建一个scala集合
val rdd = sc.textFile(“/input/data/reanme.md”) //创建了一个ParallelCollectionRDD
val linesLength = rdd.map(line => line.length)
val sum = linesLength.reduce(_ + _)
println("The total characters of the file is : " + sum)
(3)本地文件创建RDD,主要用于测试大量数据val conf = new SparkConf()
conf.setAppName()
conf.setMaster("Create RDD in local")
val sc = new SparkContext()
val numbers = 1 to 100
val rdd = sc.textFile(“D://spark//reanme.md”) //创建了一个ParallelCollectionRDD
val linesLength = rdd.map(line => line.length)
val sum = linesLength.reduce(_ + _)
println("The total characters of the file is : " + sum)
实际上Spark的并行度到底应该设置为多少呢?每个Core可以乘上2-4个partitions,任务处理大小不同,所需CPU、MEM均不同,设置CORES大小在64-128之间,跟并行度有关,跟数据规模无关,只跟每个Stage在计算Partition所需的CPU、MEM有关。基于文件系统创建RDDBlockManagerMaster会持有整个Application的Block的位置、Block所占用的存储空间等元数据信息,在Spark的Driver的DAGScheduler中就是通过这些信息来确认数据运行的本地性的。
DT大数据梦工厂
新浪微博:www.weibo.com/ilovepains/
微信公众号:DT_Spark
博客:http://.blog.sina.com.cn/ilovepains
TEL:18610086859
Email:18610086859@vip.126.com