Spark
51_big_data
热爱大数据、机器学习
展开
-
Spark算子
Spark算子总结1.Transformations转换算子:概念:Transformations类算子是一类算子(函数)叫做转换算子,如map,flatMap,reduceByKey等。Transformations算子是延迟执行,也叫懒加载执行。Transformation类算子:filter过滤符合条件的记录数,true保留,false过滤掉。map将一个RDD中的每个数据项...原创 2019-01-06 18:39:34 · 194 阅读 · 0 评论 -
SparkStreaming
1.SparkStreaming简介SparkStreaming是流式处理框架,是Spark API的扩展,支持可扩展、高吞吐量、容错的实时数据流处理,实时数据的来源可以是:Kafka, Flume, Twitter, ZeroMQ或者TCP sockets,并且可以使用高级功能的复杂算子来处理流数据。例如:map,reduce,join,window 。最终,处理后的数据可以存放在文件系统,数...原创 2019-01-09 11:56:21 · 176 阅读 · 0 评论 -
SparkSQL
1.SharkShark是基于Spark计算框架之上且兼容Hive语法的SQL执行引擎,由于底层的计算采用了Spark,性能比MapReduce的Hive普遍快2倍以上,当数据全部load在内存的话,将快10倍以上,因此Shark可以作为交互式查询应用服务来使用。除了基于Spark的特性外,Shark是完全兼容Hive的语法,表结构以及UDF函数等,已有的HiveSql可以直接进行迁移至Shar...原创 2019-01-08 18:35:26 · 153 阅读 · 0 评论 -
Spark调优
1.资源调优 1).搭建集群 在spark安装包的conf下spark-env.sh SPARK_WORKER_CORES SPARK_WORKER_MEMORY SPARK_WORKER_INSTANCE 2).提交任务的时候 提交命令选项:(在提交Application的时候使用选项) --executor-cores --executor-memory...原创 2019-01-08 12:49:55 · 103 阅读 · 0 评论 -
Standalone模式两种提交任务方式和Yarn模式两种提交任务方式
1.Standalone-client提交任务方式提交命令./spark-submit–master spark://node1:7077–class org.apache.spark.examples.SparkPi…/lib/spark-examples-1.6.0-hadoop2.6.0.jar1000或者./spark-submit–master spark://node...原创 2019-01-08 12:40:13 · 370 阅读 · 0 评论 -
术语解释
原创 2019-01-08 09:23:18 · 186 阅读 · 0 评论 -
窄依赖和宽依赖
RDD之间有一系列的依赖关系,依赖关系又分为窄依赖和宽依赖。窄依赖父RDD和子RDD partition之间的关系是一对一的。或者父RDD一个partition只对应一个子RDD的partition情况下的父RDD和子RDD partition关系是多对一的。不会有shuffle的产生。宽依赖父RDD与子RDD partition之间的关系是一对多。会有shuffle的产生。宽窄依赖图理...原创 2019-01-08 09:21:34 · 192 阅读 · 0 评论 -
历史日志服务器与Master HA
1.配置historyServer临时配置,对本次提交的应用程序起作用./spark-shell --master spark://node1:7077–name myapp1–conf spark.eventLog.enabled=true–conf spark.eventLog.dir=hdfs://node1:9000/spark/test停止程序,在Web Ui中Complet...原创 2019-01-07 20:02:13 · 184 阅读 · 0 评论 -
广播变量和累加器
1.广播变量广播变量理解图广播变量使用val conf = new SparkConf()conf.setMaster(“local”).setAppName(“brocast”)val sc = new SparkContext(conf)val list = List(“hello xasxt”)val broadCast = sc.broadcast(list)val li...原创 2019-01-07 19:29:35 · 214 阅读 · 0 评论 -
二次排序与分组取TopN
二次排序SparkConf sparkConf = new SparkConf().setMaster(“local”).setAppName(“SecondarySortTest”);final JavaSparkContext sc = new JavaSparkContext(sparkConf);JavaRDD secondRDD = sc.textFile(“secondSor...原创 2019-01-07 18:50:14 · 229 阅读 · 0 评论 -
资源调度源码分析和任务调度源码分析
1.资源调度源码分析资源请求简单图资源调度Master路径:路径:spark-1.6.0/core/src/main/scala/org.apache.spark/deploy/Master/Master.scala提交应用程序,submit的路径:路径:spark-1.6.0/core/src/main/scala/org.apache.spark/ deploy/SparkSu...原创 2019-01-07 15:00:01 · 277 阅读 · 0 评论 -
Stage
StageSpark任务会根据RDD之间的依赖关系,形成一个DAG有向无环图,DAG会提交给DAGScheduler,DAGScheduler会把DAG划分相互依赖的多个stage,划分stage的依据就是RDD之间的宽窄依赖。遇到宽依赖就划分stage,每个stage包含一个或多个task任务。然后将这些task以taskSet的形式提交给TaskScheduler运行。stage是由一组并...原创 2019-01-07 12:46:07 · 147 阅读 · 0 评论 -
Spark资源调度和任务调度
Spark资源调度和任务调度Spark资源调度和任务调度的流程:启动集群后,Worker节点会向Master节点汇报资源情况,Master掌握了集群资源情况。当Spark提交一个Application后,根据RDD之间的依赖关系将Application形成一个DAG有向无环图。任务提交后,Spark会在Driver端创建两个对象:DAGScheduler和TaskScheduler,DAGS...原创 2019-01-07 12:31:59 · 121 阅读 · 0 评论 -
SparkShuffle
1.SparkShuffle概念reduceByKey会将上一个RDD中的每一个key对应的所有value聚合成一个value,然后生成一个新的RDD,元素类型是<key,value>对的形式,这样每一个key对应一个聚合起来的value。问题:聚合之前,每一个key对应的value不一定都是在一个partition中,也不太可能在同一个节点上,因为RDD是分布式的弹性的数据集,R...原创 2019-01-07 10:58:13 · 245 阅读 · 1 评论 -
SparkStreaming+Kafka
1.receiver模式receiver模式原理图receiver模式理解:在SparkStreaming程序运行起来后,Executor中会有receiver tasks接收kafka推送过来的数据。数据会被持久化,默认级别为MEMORY_AND_DISK_SER_2,这个级别也可以修改。receiver task对接收过来的数据进行存储和备份,这个过程会有节点之间的数据传输。备份完成后...原创 2019-01-09 12:34:00 · 137 阅读 · 0 评论