架构师训练营第 1 期第 13 周学习总结
本周主要学习了大数据计算引擎Spark,以及流处理计算的Flink, Storm, Spark Streaming等引擎。以及大数据测试工具HiBench的使用。学习了大数据分析与可视化,网页排名算法PageRank,分类和聚类算法,推荐引擎算法,机器学习与神经网络算法等。
Spark相比Map reduce更快。原因是DAG切分为多阶段计算过程,可以连续计算,使用内存存储中间结果而不是硬盘。所以不需要写出到硬盘,再shuffle,再reduce。Spark直接针对数据编程。Spark的计算输入是RDD(Resilient Distributed Datasets),输出如果是RDD,表示转换,有map, filter, union等函数。输出如果是其他,表示行动,有reduceByKey, join, groupByKey等函数。Spark支持惰性计算,需要结果时,才去计算。Spark的依赖有窄依赖和宽依赖两种,其中窄依赖不需要shuffle,而宽依赖需要shuffle,可能输出和原来的RDD数量不相等的RDD。计算阶段是先从HDFS装载进来,再DAGScheduler分阶段,分成TaskSet。作业管理可以存成文件,一个计算阶段,会包含很多个计算任务。
DAG再Driver启动起来,有依赖关系的,最先完成哪些,哪些RDD可以先计算,启动第一批待处理任务。Driver会分配任务,worker会启动scheduler。
Spark的生态体系有SQL,Streaming,MLlib,graph等。
Map Reduce和Spark是批处理计算引擎。Spark Streaming是流处理,把数据源切片,然后把数据给Spark引擎计算,计算时间相对比较短。数据可以源源不断流进来。Storm是实时的hadoop,低延迟,高性能,分布式,可伸缩。Flink批处理的输入是DataSet,流处理的输入是StreamExecutionEnvironment,每个数据片都比较小。
大数据基准测试工具HiBench运行步骤是configure,prepare,run。大数据搭建比较快,但如果长期运行,细节没配置好,就会导致系统性能没法发挥作用,资源会浪费。
大数据可视化很重要。常用的指标有新增用户数,用户留存率,用户流失率,活跃用户数,PV,GMV,转化率等。用可视化图表,比如折线图、散点图、热力图、漏斗图等展现出来。老板看了很快就能感受到结果。让自己的工作别人能够看到。
评论