
Spark
Spark
千里快哉风Y
这个作者很懒,什么都没留下…
展开
-
Spark数据倾斜原因及解决方法
Spark数据倾斜原因1、数据倾斜只会发生在Shuffle过程,Shuffle时需将各节点的相同key的数据拉取到某节点上的一个task来处理,比如大部分key对应10条数据,小部分key对应10万条,那就会发生数据倾斜2、shuffle并行度不够解决办法首先要定位问题,看数据倾斜发生在哪个Stage,这个可以查看日志或者web ui(8080端口),主要看最慢的Stage各task分配的数据量,然后根据Stage划分,推算发生数据倾斜的代码。(必然有Shuffle类算子 …bykey,join,d原创 2021-05-17 10:33:22 · 1386 阅读 · 0 评论 -
数据集划分方法
70%用于训练集,30%用于测试集。如果想要加入验证集,划分标准可以改为60%/20%/20%,也就是将数据集的60%用于训练集,20%用于测试集,20%用于验证集。对于百万级别的数据集,可以采用98%/1%/1%的规则来划分数据集。...原创 2021-03-25 14:48:35 · 974 阅读 · 0 评论 -
ALS协同过滤推荐算法参数
rank:是一个特征向量,数据特征数,设置的太小拟合度会不够,误差就很大,设置的太大的话会有过拟合的问题,导致模型的泛化能力较差,一般情况下10~1000都是可以的。iteration:迭代次数,设置的越大越精确,但是也越耗时。lambda:是一个正则化参数,设置大一点可以防止过拟合,可以从0.0001 ,0.0003,0.001,0.003,0.01,0.03,0.1,0.3这样每次大概3倍的设置,先大概看下哪个值效果比较好,然后在那个比较好的值前后再设置一个范围。如果机器性能够好,而且时间充裕,可以原创 2021-03-25 14:47:17 · 565 阅读 · 0 评论 -
Spark的几种部署模式
1.本地模式Spark单机运行,一般用于开发测试。2.Standalone模式构建一个由Master+Slave构成的Spark集群,Spark运行在集群中。3.Spark on Yarn模式Spark客户端直接连接Yarn。不需要额外构建Spark集群。4.Spark on Mesos模式Spark客户端直接连接Mesos。不需要额外构建Spark集群。Standalone适合小规模集群。如果同时运行hadoop和Spark,从兼容性上考虑,Yarn是更好的选择。如果你不仅运行了had原创 2021-03-17 16:47:59 · 1758 阅读 · 0 评论 -
RDD,DataFrame,Dataset的相同点和区别
相同点:都是弹性分布式数据集,都有分区的概念和惰性机制,在进行创建、转换操作时不会立即执行,只有在遇到执行算子时,才会开始遍历计算。区别RDD是一个JVM驻内存对象,GC比较频繁,数据增加时Java序列化成本也会升高,不支持SparkSql。(类型转化安全)DataFrame包括数据的结构信息,类似于关系型数据库中的表,性能上比RDD要高。数据是弱类型的,不能直接获取每一列的值。数据以二进制的方式存在于堆外内存,减少了GC次数。(类型转化不安全)Dataset可以认为是DataFrame的一个特原创 2021-03-17 16:08:45 · 367 阅读 · 0 评论 -
Spark和MapReduce的区别
1.Spark计算基于内存,速度更快。2.Spark提供多种数据集操作类型,更灵活,容错性更高。3.Spark是粗粒度的资源申请。MapReduce是细粒度的资源申请。原创 2021-03-17 16:06:19 · 156 阅读 · 0 评论 -
Spark工作机制
1.用户提交作业,由driver创建一个SparkContext,分配并监控资源使用情况。2.资源管理器为其分配资源,启动executor进程。3.SparkContext根据RDD的依赖关系构建DAG图,提交给DAGScheduler解析成stage,然后提交给TaskScheduler,将stage划分为task发送给executor。4.task在executor运行把结果反馈给TaskScheduler,一层层反馈上去,最后释放资源。...原创 2021-03-17 16:05:18 · 455 阅读 · 0 评论