当前位置:   article > 正文

spark相关知识

spark相关知识

1.Spark的特点
Spark的设计遵循“一个软件栈满足不同应用场景”的理念,逐渐形成了一套完整的生态系统,既能够提供内存计算框架,也可以支持SQL即席查询、实时流式计算、机器学习和图计算等。
运行速度快,易使用,强大的技术栈,集成性好
2.Spark与Hive
Hive的缺点
表达能力有限,磁盘IO开销大,延迟高,
3.Spark-streaming与Flink
微批处理,准实时系统
4.Spark的运行架构
Driver向集群管理器申请资源,启动Executor,并向Executor发送程序代码和文件,在Executor上执行任务,执行结果返回任务控制节点或写到HDFS和其他数据库
5.hive on spark和spark on hive
前者只有计算引擎是Spark,前期解析,转换,优化等步骤都是Hive完成。
后者只有元数据用了Hive,对SQL的解析,转换,优化等都是Spark完成。
6.宽窄依赖之间的区别
窄依赖表现为一个父RDD的分区对应于一个子RDD的分区,或多个父RDD的分区对应于一个子RDD的分区
宽依赖则表现为存在一个父RDD的一个分区对应一个子RDD的多个分区
7.RDD运行过程
(1)创建RDD对象;
(2)SparkContext负责计算RDD之间的依赖关系,构建DAG;
(3)DAGScheduler负责把DAG图分解成多个阶段,每个阶段中包含了多个任务,每个任务会被任务调度器分发给各个工作节点(Worker Node)上的Executor去执行。
8.Spark三种部署方式
包括standalone、Spark on Mesos和Spark on YARN
9.广播变量和累加器
Spark中的两个重要抽象是RDD和共享变量
广播变量允许开发人员在每个机器上缓存一个只读的变量,而不是为每个机器的每个任务都生成一个副本
val broadcastVar = sc.broadcast(Array(1, 2, 3))
broadcastVar.value
10.转换算子和行动算子
转换:map,filter,groupByKey,reduceByKey
行动:collect,foreach,count,reduce
键值对:groupByKey,reduceByKey,sortByKey,keys,values,mapValues,join
11.自定义udf和udaf
udf 直接spark.udf.register(“”,函数)
udaf 需继承UserDefinedAggregateFunction 实现父类的8个方法
12.RDD与DataFrame的区别
RDD是分布式的 Java对象的集合
DataFrame是一种以RDD为基础的分布式数据集,也就是分布式的Row对象的集合(每个Row对象代表一行记录)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/679950
推荐阅读
相关标签
  

闽ICP备14008679号