![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
猿与禅
think more , write less , more value !
君子藏器于身,待时而动,争其必然,顺其自然
展开
-
spark3.0-新特性
spark 3.0 终于出了!!!Apache Spark 3.0.0是3.x系列的第一个发行版。投票于2020年6月10日获得通过。此版本基于git标签v3.0.0,其中包括截至6月10日的所有提交。Apache Spark 3.0建立在Spark 2.x的许多创新基础之上,带来了新的想法并持续了很长时间。正在开发的长期项目。在开源社区的巨大贡献的帮助下,由于440多位贡献者的贡献,此发行版解决了3400多张门票。今年是Spark作为开源项目10周年。自2010年首次发布以来,Spark已经发展成为最翻译 2020-06-27 20:05:35 · 10608 阅读 · 3 评论 -
spark2.x-官方调优指南(翻译)
序列化序列化在任何分布式应用程序的性能中起着重要的作用。 将对象序列化到或消耗大量字节的格式将大大减慢计算速度。spark 提供了两个序列化库:Java serialization: 默认情况下,spark使用java对象序列化机制 https://docs.oracle.com/javase/6/docs/api/java/io/Serializable.htmlKryo s...翻译 2018-05-14 14:55:16 · 1074 阅读 · 0 评论 -
spark2.x-Accumulator
Accumulator累加器Accumulable简单值 结果类型和要合并的元素类型一样, 例如变量仅仅能“添加”到关联和交换操作 所以能在并行程序上有效支持 被用来实现计数器或者求和 spark原生支持数值类型的累加器,程序员可以自己添加新类型的支持计数器被创建通过一个初始的V值,通过调用SparkContext.accumlator 运行在集群上的任务可以添加它通过+=操作符 ...转载 2018-06-18 13:17:40 · 1931 阅读 · 0 评论 -
spark2.x-广播变量
广播变量允许程序员保持只读变量,在每个机器上缓存,而不是用任务来发送它的副本。它们可以有效的方式给每个节点提供一个大的输入数据集的副本。spark尝试使用高效广播算法来分发广播变量以减少通信成本。注意,对象在广播后不应修改以确保所有节点获得广播变量的相同值Broadcast 就是将数据从一个节点发送到其他的节点上; 例如 Driver 上有一张表,而 Executor 中的每个并行执行的Tas...转载 2018-06-18 13:17:32 · 3306 阅读 · 0 评论 -
spark2.x-内存管理机制
MemoryManager管理在jvm内部的spark整体的内存使用,该组件实现了将可用内存按任务划分的策略。在内存(内存使用缓存和数据传输)和执行之间分配内存(计算所使用的内存,如shuffles、joins、sorts和aggregations)。 执行内存指的是计算shuffles、joins、sorts和aggregations,而存储内存指的是用于缓存和传播跨集群的内部数据。...转载 2018-05-18 10:38:47 · 7119 阅读 · 2 评论 -
spark2.x- spark sql语句可使用的内置函数
spark sql语句可使用的内置函数 // Note: Whenever we add a new entry here, make sure we also update ExpressionToSQLSuite val expressions: Map[String, (ExpressionInfo, FunctionBuilder)] = Map( // misc non...转载 2018-04-08 10:11:15 · 1812 阅读 · 0 评论 -
spark2.x-pyspark-windows环境搭建
pyspark开发指南1、pyspark 本地开发环境搭建 python版本最好与集群环境一致,我这里是 python 3.5.2 参考资料即可http://blog.csdn.net/funfun0/article/details/77802590注意: windows 64位的Java安装在C:\Program Files\下,导致最终的PATH中包含了空格, 需将环境变量原创 2018-01-08 16:52:14 · 1023 阅读 · 0 评论 -
spark2.x-java-用spark-sql和spark-streaming 统计网站的访客数(uv)
环境: spark2.2.0 JDK1.8感觉网上关于spark2.0的java程序案例太少了,在这里补充一个,大家有好的案例也可以分享啊 不多说,直接上代码/** * @author admin * @define 统计网站日用户访问量 * create 2018-01-15 19:55 */public class DailyUvStreaming { publ原创 2018-01-16 14:15:20 · 1896 阅读 · 0 评论 -
spark2.x-pyspark-集群环境搭建(centos6_python3)
pyspark集群部署1、安装spark2.1.0 (略)2、安装Python3环境下载Anaconda3-4.2.0-Linux-x86_64.sh 下载地址 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-4.2.0-Linux-x86_64.sh安装Anaconda3 切换到有hdfs读写原创 2018-01-08 16:57:30 · 3751 阅读 · 0 评论 -
spark-jdbc-oracle(scala)
jdbc 读取oracle数据方式一 val prop = new java.util.Properties prop.setProperty("user", stateConf.getString(Constant.JdbcUserName)) prop.setProperty("password", stateConf.getString(Constant.JdbcPasswd)转载 2017-11-29 13:14:03 · 2042 阅读 · 0 评论 -
spark-dataset
一个强类型的对象集合,可以并行地进行转换。 *使用函数或关系操作。 不同于[ [RDD] ]在以下方面: *在内部,由催化剂逻辑计划表示,数据存储。 *以编码形式。此表示允许额外的逻辑操作和 *使许多操作(排序,洗牌,等)进行反序列化到无对象。 *创建一个]需要一个显式的[可以][数据集 *用于序列化的对象转换为二进制格式。 编码器也能够映射 *给定对象到星火SQL类型系统的模式。转载 2017-11-03 07:29:52 · 384 阅读 · 0 评论 -
spark2.x-BlockManager
多少blocks存储 提供不同的方法去读取基础块数据 调用者应当调用dispose 当他们处理完blockBlockManager 运行實例 从 Application 启动的角度来观察BlockManager在 Application 启动的时候会在 spark-env.sh 中注册 BlockMangerMaster 以及 MapOutputTracker,其中: BlockMa...转载 2018-05-21 13:40:59 · 718 阅读 · 0 评论 -
spark-依赖包添加方式
1、上传到HDFS创建 archive: jar cv0f spark-libs.jar -C $SPARK_HOME/jars/ .上传jar包到 HDFS: hdfs dfs -put spark-libs.jar /some/path/在spark-default.conf中设置 spark.yarn.archive=hdfs:///some/path/spark-libs.jar...转载 2019-07-17 16:15:13 · 2519 阅读 · 0 评论 -
spark-面试题(含答案)
1 var, val和def三个关键字之间的区别?var immutable variableval mutable variabledef function defined keyword2.object 和 class 的区别?object 单例 无构造器 成员变量和method都是static 可以直接访问main方法 可以与class同名 构成伴生对象class 有构造器 需...原创 2019-06-03 09:23:58 · 5163 阅读 · 1 评论 -
spark-各版本特性
0.3Save OperationsYou can now save distributed datasets to the Hadoop filesystem (HDFS), Amazon S3, Hypertable, and any other storage system supported by Hadoop. There are convenience methods for se...转载 2019-03-16 20:00:22 · 2686 阅读 · 0 评论 -
spark-以cluster模式执行spark sql 工具
在spark开发过程中 如果遇到spark-sql 命令无法使用或者需要通过cluster模式提交任务的情况下 可以使用以下工具, 在sparksql.sh中配置spark-submit 参数 然后执行脚本 ./sparksql.sh “$(cat sql.txt)” 调用spark sqlimport org.apache.log4j.{Level, Logger}import org...原创 2019-01-28 20:37:11 · 2929 阅读 · 2 评论 -
spark-异常-Container killed by YARN for exceeding memory limits Consider boosting spark.yarn.executor
spark作为一个基于内存的分布式计算框架,在开发过程中 及时处理跟踪和处理异常,保持大数据应用的稳定性 就尤为重要,在开发过程中 总会因为资源配置和代码质量的原因,导致一些异常,因此我打算针对一系列常用的异常,从源码和经验的角度,提出分析和解决的思路。源码分析spark YarnAllocator private[yarn] def processCompletedContain...转载 2018-10-17 21:08:44 · 4057 阅读 · 0 评论 -
spark2.x-sparkstreaming+kafka
spark消费kafka数据/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional informat...转载 2018-06-18 13:15:06 · 599 阅读 · 0 评论 -
spark2.x-jvm调优实战(以tomcat访问日志分析为例)
集群环境节点 xyz01.aiso.com 硬件环境(VMware 10 虚拟机)(三台) 内存 6G CPU 4个1核处理器 硬盘SCSI 500GB 网络 NAT软件环境 CentOS release 6.4 (Final) x64 java version “1.8.0_112” Scala 2.11.8 Hadoop 2.5.0-cdh5.3.6...原创 2018-06-06 20:08:16 · 883 阅读 · 0 评论 -
spark-troubleshooting-OOM
java.lang.OutOfMemoryError: Java heap space java.lang.OutOfMemoryError:GC overhead limit exceededyarn-client 模式 增加 spark submit –driver-memory 大小增加job的并行度增加spark.executor.memory降低 spark.storage.memory原创 2017-09-22 00:04:36 · 270 阅读 · 0 评论 -
spark-调优-JVM
开启日志调试 在让G1 GC跑起来之后,我们下一步就是需要根据GC log,来进一步进行性能调优。首先,我们要让JVM记录比较详细的GC日志. 对于Spark而言,我们需要在SPARK_JAVA_OPTS中设置参数使得Spark保留下我们需要用到的日志. 一般而言,我们需要设置这样一串参数: -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -verbos转载 2017-09-21 22:19:16 · 823 阅读 · 0 评论 -
spark-调优-shuffle
合并map端输出文件new SparkConf().set(“spark.shuffle.consolidateFiles”, “true”) 默认情况下,是不开启的,开启shuffle map端输出文件合并的机制之后: 第一个stage,同时就运行cpu core个task,比如cpu core是2个,并行运行2个task; 每个task都创建下一个stage的task数量个文件; 第一个转载 2017-09-21 23:13:57 · 323 阅读 · 0 评论 -
Spark-shell批量命令执行脚本
批量执行spark-shell命令,并指定提交参数#!/bin/bashsource /etc/profileexec $SPARK_HOME/bin/spark-shell --queue tv --name spark-sql-test --executor-cores 8 --executor-memory 8g --num-executors 8 --conf spark.cleane原创 2017-05-20 09:47:02 · 4847 阅读 · 0 评论 -
Spark-sparksql-自定义udf
注册一个判断指定日期的星期数的SQL函数object UDFUtils { def main(args: Array[String]) { println(dayOfWeek("2017-05-14")) } def registerUDF(sqlContext: SQLContext, udfName: String): Unit = { udfName match {原创 2017-05-20 09:57:17 · 984 阅读 · 0 评论 -
spark-MLlib-架构
sparkmlib-架构转载 2017-03-24 16:49:47 · 976 阅读 · 2 评论 -
数据挖掘-目录-降维(Dimensionality Reduction)
EigenValueDecomposition(特征值分解) SingularValueDecomposition(奇异值分解) Principal Component Analysis(主成分分析)原创 2017-03-24 00:15:57 · 423 阅读 · 0 评论 -
数据挖掘-目录-人工神经网络 (Artificial Neural Network)
感知器神经网络( Perceptron Neural Network )反向传递( Back Propagation ) Hopfield 网络自组织映射( Self-Organizing Map, SOM )学习矢量量化( Learning Vector Quantization , LVQ )原创 2017-03-24 11:59:40 · 1053 阅读 · 1 评论 -
数据挖掘-目录-基本统计
correlation Correlation PearsonCorrelation SpearmanCorrelationdistribution MultivariateGaussianKernelDensityMultivariateOnlineSummarizerMultivariateStatisticalSummaryKolmogorovSmirnov原创 2017-03-23 18:57:36 · 803 阅读 · 0 评论 -
数据挖掘-目录-impurity
Entropy Gini Impurities Impurity Variance原创 2017-03-24 00:24:53 · 593 阅读 · 1 评论 -
数据挖掘-目录-loss
AbsoluteErrorLogLossLossLossesSquaredError原创 2017-03-24 00:22:58 · 491 阅读 · 0 评论 -
数据挖掘-目录-评估
AreaUnderCurveBinaryClassificationMetricComputersBinaryConfusionMatrixBinaryLabelCounterBinaryClassificationMetricsMulticlassMetricsRankingMetricsRegressionMetricsBinaryClassificationEvaluatorEvaluator原创 2017-03-24 00:19:51 · 429 阅读 · 0 评论 -
数据挖掘-目录-最优化算法(optimization)
GradientDescent (梯度下降算法)L-BFGS(限制内存BFGS)NNLS(非负最小二乘)原创 2017-03-24 00:10:56 · 1122 阅读 · 0 评论 -
数据挖掘-目录-回归分析(regression)
AFTSurvivalRegressionDecisionTreeRegressorGBTRegressorIsotonicRegressionLinearRegressionRandomForestRegressorGeneralizedLinearAlgorithmGLMRegressionModelIsotonicRegressionLabeledPointLassoLinearRegress原创 2017-03-23 17:57:53 · 829 阅读 · 0 评论 -
数据挖掘-目录-线性代数( linear algebra)
Basic Linear Algebra SubprogramsCholeskyDecompositiondistributedBlockMatrixCoordinateMatrixDistributedMatrixIndexedRowMatrixRowMatrixEigenValueDecompositionMatricesSingularValueDecompositionVectors原创 2017-03-23 19:36:47 · 963 阅读 · 0 评论 -
数据挖掘-目录-关联分析
Apriori(频繁项集挖掘并行化)FP AssociationRules FPGrowth FPTree原创 2017-03-23 19:06:28 · 388 阅读 · 0 评论 -
spark-sql-求补集
方法一sqlContext.sql("select distinct sn from hr.sample_terminal_three").rdd.map(_.toString).subtract(sqlContext.sql("select distinct sn from hr.live_terminal").rdd.map(_.toString).distinct).count方法二s原创 2017-06-01 13:55:27 · 1157 阅读 · 0 评论 -
spark1.x-spark-sql-数据倾斜解决方案
聚合源数据过滤导致倾斜的key where条件提高shuffle并行度 spark.sql.shuffle.partitions sqlContext.setConf("spark.sql.shuffle.partitions","1000") // 默认的并行度 为 200 reducetask只有200双重group by 改写SQL 改成两次Group by 给某个字段加上随转载 2017-06-29 14:54:19 · 2318 阅读 · 0 评论 -
spark-troubleshooting-常用问题解决
现象: Failed to get broadcast_9_piece0 of broadcast_9 解决: –conf spark.cleaner.ttl=120000现象: 1. missing output location org.apache.spark.shuffle.MetadataFetchFailedException: Missing an output lo转载 2017-09-22 01:00:17 · 1588 阅读 · 0 评论 -
java-常用集合的特点
ArrayList 基于数组,在数组中搜索和读取数据是很快的。因此 ArrayList 获取数据的时间复杂度是O(1); 添加、删除时该元素后面的所有元素都要移动,所以添加/删除数据效率不高; 每次达到阈值需要扩容,影响效率。ArrayList的随机访问更高,基于数组实现的ArrayList可直接定位到目标对象,VectorVector是线程安全的, 由于Vector中的方法基本都是sync转载 2017-09-24 23:12:59 · 499 阅读 · 0 评论 -
spark-调优-数据倾斜
过滤导致倾斜的key方案实现原理:将导致数据倾斜的key给过滤掉之后,这些key就不会参与计算了,自然不可能产生数据倾斜。方案优点:实现简单,而且效果也很好,可以完全规避掉数据倾斜。 方案缺点:适用场景不多,大多数情况下,导致倾斜的key还是很多的,并不是只有少数几个。 方案实践经验:在项目中我们也采用过这种方案解决数据倾斜。 有一次发现某一天Spark作业在运行的时候突然OOM了,追查之后发转载 2017-09-22 07:51:51 · 349 阅读 · 0 评论