Spark的局限性:(1)粗粒度的更新操作,不支持记录级别的。(2)迭代的更新场景,与前面有个,更新很可能只更新部分数据,所以不合适。Flink支持迭代更新。
Spark+kafka+flume能够替换Storm,只要能容忍分钟级的delay。
也可以做到毫秒级。
第15课
第一个RDD是系统初始的数据,然后再做transformation
方式有
- 程序中的集合(collection)创建RDD。
- 本地文件系统
- 通过HDFS
- 基于DB
- 基于NoSQL
- 基于S3
- 基于数据流(spark streaming, socket)
等等等等
####意义在哪里?
- 通过集合创建RDD的实际意义是测试
- 通过本地文件系统创建RDD的意义是测试比较大的文件,数据量大一点
- 使用HDFS来创建RDD是生产环境最常用的方式。
方式一:
val conf = new SparkConf()
val sc = new SparkContext(conf)
val numbers = 1 to 100
val rdd = sc.parallelize(numbers)
// sum 1 to 100
val sum = rdd.reduce(_+_) // 1+2=3, 3+4=6, 6+4=10, ...
本地模式下,用线程来模拟多节点。
如果指定了maxFailure,会重试。即使是本地计算,也是个不错的框架。
spark的并行度可以指定,那到底应该设多少呢?
每个Core可以承载2-4个partition