Spark
文章平均质量分 51
小萌猿
本人的所有文章仅代表个人想法与经验,有问题的地方望多多指教
展开
-
Yarn组件、SparkOnYarn
Yarn是主从架构 Yarn的四大组件:ResourceManager、ApplicationMaster、NodeManager、Container ResourceManager:运行在Master上的一个进程,负责集群的资源调度 NodeManager:运行在Slaver上的一个进程,负责向Master上报子节点的运行、资源状况。 ApplicationMaster:运行在Slave...原创 2018-04-14 17:20:50 · 2491 阅读 · 0 评论 -
Spark任务调度
RDD Objects: 两个RDD合并后分组、过滤 DAGScheduler: 将程序生成DAG图,并切割stage、划分Task(初始partition数量),将一个stage的task封装到一个taskset,并发送至TaskScheduler TaskScheduler 这个类会向Cluster manager(Yarn)请求资源,获取到资源后,会将TaskSet打散送至申请...原创 2018-04-13 11:23:51 · 2800 阅读 · 0 评论 -
Spark Standalone Mode配置HA
配置环境:node1、node2、node3 核心就是在spark-env.sh中添加(三台节点都添加):export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=192.168.245.151:2181,192.168.245.163:2181,19...原创 2018-05-02 21:42:11 · 2366 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
在SparkStreaming中使用KafkaUtils时报的错。网上都说是scala版本与spark版本的问题。我使用的是spark2.2.0,scala是2.11,KafkaUtils是spark-streaming-kafka-0-8_2.11.jar包里的,这几个版本都是根据官网上的说明来的,所以没太搞懂,但是之前使用spark1.3时,就没有报过这个错,spark1.3里的KafkaU...原创 2018-11-08 20:17:05 · 5623 阅读 · 0 评论 -
Spark算子调优
1、使用mapPartitions或者mapPartitionWithIndex取代map操作,其中mapPartitions和mapPartitionWithIndex的区别在于是否将分区号index传入分区处理函数。eg.对于将RDD中的数据写入数据库时,使用mapPartitions只需为每个分区建立一次jdbc连接,而map需要为每个数据建立连接。同理还有foreach和foreach...原创 2019-03-23 17:04:01 · 841 阅读 · 0 评论 -
SparkTask未序列化(Tasknotserializable)问题分析
问题描述及原因分析在编写Spark程序中,由于在map等算子内部使用了外部定义的变量和函数,从而引发Task未序列化问题。然而,Spark算子在计算过程中使用外部变量在许多情形下确实在所难免,比如在filter算子根据外部指定的条件进行过滤,map根据相应的配置进行变换等。为了解决上述Task未序列化问题,这里对其进行了研究和总结。 出现“org.apache....转载 2019-03-24 16:08:33 · 1390 阅读 · 0 评论 -
Spark算子使用外部变量的优化
第一、使用FastUtil改写外部变量,FastUtil拓展了java的标准集合,它可以提供更小的内存占用以及更快的存取速度。FastUtil的每一种集合类型,都实现了java的对应接口,可以直接用来替换已有代码中的对应集合。第二、使用BroadCast广播变量到Executor,使每一个Executor有一份数据副本,executor内部task共享这个副本(未广播的变量在每个task中存在一...原创 2019-03-24 16:38:15 · 1625 阅读 · 0 评论 -
checkpoint的正确使用方式及其与persist的区别
一、正确使用方式在执行checkpoint之前先对RDD进行Persist:应为checkpoint操作会启动一个job,spark默认会重新计算执行checkpoint操作的RDD,也就是说,需要从源头开始再计算一次,明显的重复计算。所以先persist后,就不用重复计算了。二、与persist的区别checkpoint是写磁盘的,persist也可以通过StorageLevel.DISK...原创 2019-03-24 17:06:27 · 4463 阅读 · 1 评论