Spark相关总结

开源的、数据分析、开发快、运行快

spark core批量处理、spark streaming流式处理、spark mllib机器学习、spark GraphX图计算

spark基于内存的计算

MapReduce处理海量数据,无法取代

Storm实时流失处理,无法取代

Hive无法取代

Spark为什么快?基于内存、DAG优化

Spark四种运行模式:Local、Standalone(Master、Zookeeper(配置HA))、Yarn(粗粒度的资源调用)、Mesos(可以细粒度的资源调用)

RDD五大特性

Cluster --> Worker Node --> Executors(进程、端口) --> Thread
Application(main Driver(new SparkContext (DagScheduler TaskScheduler))) --> Job --> Stage --> Task

Transformation 是延迟执行 --> RDD RDD
Action 是立即执行 --> RDD 结果

缓存RDD
可以对反复调用的RDD进行缓存、为了多次使用的时候速度快
默认的缓存策略是 StorageLevel.MEMORY_ONLY
MEMORY_AND_DISK
_2(两个父本)
_ser(序列化)

容错
Lineage (血统)重新计算 、如果lineage很长,是不是可以做缓存RDD来提高效率
doCheckpoint("hdfs://") 之前需要setCheckpointDir()

宽窄依赖概念的:
宽依赖目的是为了切分Stage
窄依赖目的是做DAG优化,一个partition会对应一个Task,会对应一个pipeline,1+1+1+1=4
什么宽依赖?Shuffle 父RDD里面的partition会去向子RDD里面的多个partition

spark程序代码会被转化为DAG、有向无环图 SparkContext.runJob(rdd)
DAGScheduler会根据DAG切分Stage,被封装每个Stage为TaskSet,发送给下游的TaskScheduler submitTasks(TaskSet)
TaskScheduler会跟Yarn进行沟通,把TaskSet打散为Task发配到真正的某一个Executor里面去计算

碰到Struggling的Task,可以配置一个speculation的选项,会去发送一个同样的Task和之前的挣扎的Task竞争

Spark-shell去执行WordCount ,PV、UV distinct() , sortBy() sortByKey()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值