
spark
SW_LCC
这个作者很懒,什么都没留下…
展开
-
Spark作业调度类型
Spark作业调度 Spark 作业的意思是一个 Spark 动作以及执行该动作的所需要启动的任务。 Spark 的调度是完全 线程安全的, 使应用程序支持多个请求。 FIFO 默认情况下, Spark 遵循 FIFO(先进先出) 方式调度作业。如果位于队列头的作业不需要使用 整个集群资源, 后面的作业可以立即开始,但如果队列头的作业工作量很大, 位于队列后部的 作业可能会被延迟启动。 FAIR Spark 以轮询( round-robin) 方式调度各作业并分配任务,以便所有作业获得大致相等的集群原创 2020-07-01 17:58:53 · 342 阅读 · 0 评论 -
Spark释义Dataset、DataFrame、SQL
数据分区 为了多个执行器能并行地工作,spark降数据分解成多个数据块,每个数据块是一个分区。 转换 进行转换时,数据会被自动分区。 转换分为两种:一种窄依赖关系的转换,一种是宽依赖关系的转换。 窄依赖转换时一个分区只会输出一个分区。 宽依赖转换时一个分区可转换多个分区。 惰性操作 惰性指等到必须执行时才计算。用户的一些操作,不会立即修改数据,而是建立转换计划并转化为流水线的物理计划。 目的是优化物理计划,减少扫描实际用不到的数据. val flightData2015 = spark .r原创 2020-06-24 18:09:41 · 239 阅读 · 0 评论 -
hive修改表结构后插入数据查询为空
最近使用hive的时候发现,当修改已存在的表,添加另外的列,然后插入数据,发现新插入的数据中,里面的新列数据皆为NULL。(当前hive版本为2.1.0) 查了一下资料,发现hive的元数据表SDS中,该表的CD_ID值为旧值,在更新表结构后该CD_ID有改动。 解决办法: 1.如果要解决这个问题,可以手动的修改SDS表中该数据表对应的CD_ID值。 2.可以手动的给该表的分区加上新增的列,如: ...原创 2020-03-31 19:05:53 · 1059 阅读 · 0 评论 -
《SparkSQL剖析》SparkSQL到RDD概述
SparkSQL 到RDD val spark = SparkSession . builder(). appName("example").master("local").getOrCreate() spark.read.json("student.json").createOrReplaceTempView("student") spark.sql("select name from stud...原创 2020-01-20 11:54:41 · 620 阅读 · 0 评论 -
spark任务调度原理
概述 任务调度模块分为DAGScheduler和TaskScheduler两个组件,将用户提交的job划分不同阶段并提交到集群。 DAGScheduler分析用户提交的应用, 并根据计算任务的依赖关系建立DAG, 然后将DAG划分为不同的Stage(阶段) , 其中每个Stage由可以并发执行的一组Task构成, 这些Task的执行逻辑完全相同, 只是作用于不同的数据。 而且DAG在不同的资源管理...原创 2019-10-28 12:10:39 · 479 阅读 · 0 评论 -
Spark技术内幕笔记 RDD计算执行
RDD在经过转换之后,会出发一个动作生成Job。从而产生一批计算任务在Executor执行。 Task分为两种类型: org.apache.spark.scheduler.ShuffleMapTask org.apache.spark.scheduler.ResultTask DAG在最后的阶段会给每个Partition生成一个ResultTask,其他阶段生成ShuffleMapTask。 Ta...原创 2019-10-28 00:42:23 · 177 阅读 · 0 评论 -
SparkStreaming发送log4j日志到Flume配置
如果要将SparkStreaming产生的系统日志发送给Flume 则要在log4j.properties中添加如下配置: log4j.rootLogger=INFO,flume log4j.appender.flume=org.apache.flume.clients.log4jappender.Log4jAppender log4j.appender.flume.Hostname=192.16...原创 2019-08-27 00:25:03 · 241 阅读 · 0 评论 -
Spark RDD和DAG生成
RDD依赖 Rdd之间存在血缘关系(Lineage),因此RDD之间存在联系,其中分为宽依赖和窄依赖。 (1)宽依赖 宽依赖指多个RDD的partition依赖同一个父RDD的partition (2)窄依赖 窄依赖指RDD的partition都只依赖于一个父RDD不同的partition 所有依赖都需实现trait Dependency[T] 窄依赖代码实现: abstract class ...原创 2019-09-22 23:21:55 · 201 阅读 · 0 评论