spark
ZL小屁孩
这个作者很懒,什么都没留下…
展开
-
win系统执行spark-sql报错:java.io.IOException: (null) entry in command string: null ls -F C:\tmp\hive
在IDEA中运行Spark SQL读取hdfs文件时报java.io.IOException: (null) entry in command string: null ls -F C:\tmp\hive的错,或者是报 Exception in thread "main" org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir:原创 2020-09-01 22:57:52 · 1060 阅读 · 0 评论 -
spark-cache的源码分析
private def persist(newLevel: StorageLevel, allowOverride: Boolean): this.type = { 。。。。。。 if (storageLevel == StorageLevel.NONE) { sc.cleaner.foreach(_.registerRDDForCleanup(this)) //清理缓存 s...原创 2018-10-26 09:46:59 · 331 阅读 · 0 评论 -
Spark Streaming checkpoint的问题与恢复
/**虽然checkpoint是对Spark Streaming运行过程中的元数据和每次RDD的数据状态 * 保存到一个持久化系统中,实现高可用性。 * 即使 * /**当程序修改后打包成新程序后,可能会报错,若删除checkpoint的开头文件,只保留数据文件: * hadoop dfs -rmr /checkpoint/checkpoint* * 但是新程序虽然能重...原创 2018-11-29 17:21:59 · 2309 阅读 · 0 评论 -
从Application提交角度审视Executor
从Application提交的角度审视Executor,解密Executor到底是什么时候启动的以及Executor如何把结果交给Application。Executor何时启动SparkContext启动后,直接实例化createTaskScheduler方法,createTaskScheduler完成后,调用TaskScheduler的start方法,实际调用的是TaskSchedul...原创 2018-11-26 17:16:17 · 276 阅读 · 0 评论 -
spark Executor执行结果的处理源码
从1.6后,Driver的BlockManagerMaster与BlockManager之间的通信不再使用AkkaUtil而是RpcEndpointSpark集群中有很多执行程序执行,需要很多Executor,CoarseGrainedExecutorBackend是Executor所在的进程,Executor需要CoarseGrainedExecutorBackend进行维护和管理。Coar...原创 2018-11-26 17:20:53 · 307 阅读 · 0 评论 -
Spark Streaming-Receiver启动和数据接收
养成一个记笔记的习惯!!!小案例:def fromsocket(ssc: StreamingContext): Unit ={ /**使用updateStateByKey前必须要设置checkpoint*/ ssc.checkpoint("hdfs://zhumaster:8020/data/checkpoint") /** 如使用socket网络嵌套字作为输入模式,使用命令...原创 2018-12-05 16:08:37 · 666 阅读 · 0 评论 -
sparksql两种方式的执行效率
方式一: /**使用spark-sql实现的*/ def rhVisitor(ss: SparkSession,dt: String,per_hour: String,merchant: String): Unit ={ val startTime = System.currentTimeMillis() import org.apache.spark.sql.fun...原创 2020-07-26 19:36:10 · 1056 阅读 · 0 评论 -
spark的broadcast理解
Broadcast(使用BroadcastManager管理)一般用于处理共享配置文件、常用的数据结构等;但Broadcast不适合存放太大数据,Broadcast不会内存溢出,因为数据保存级别StoreageLevel是MEMORY_AND_DISK模式。数据量大会造成网络I/O和单点压力大,因此,当数据量较大时不要使用broadcast,网络成本较大,会适得其反。广播变量:实际上就是Dri...原创 2019-08-05 22:16:27 · 939 阅读 · 0 评论 -
使用foreachPartition将结果写入外部存储
好久没有写了!!!记录一下 :最近有个小伙伴问我,使用spark处理的数据存入mysql中老是导致mysql链接超时或中断,我看了一下他的代码,想揍人,其代码如下:dstream.foreachRDD {rdd => rdd.foreachPartition{ partitionRecords => val connection = createNewConnec...原创 2019-08-01 18:34:02 · 1750 阅读 · 1 评论 -
spark使用insertInto存入hive分区表中
把spark的处理结果存入hive分区表中,可以直接在sql中设定分区即可,可以使用withColumn算子执行 ss.sql("SELECT merchant_id,platform," + "case when trim(first_channel_id) = '' or first_channel_id is null then '-1' else first_cha...原创 2019-08-01 18:53:07 · 5967 阅读 · 0 评论 -
Spark性能调优之道——解决Spark数据倾斜(Data Skew)的N种姿势
看到一篇很不错的文章,关于解决spark计算过程中数据倾斜的解决方案:一位大牛的创作,谢谢http://www.infoq.com/cn/articles/the-road-of-spark-performance-tuning感谢作者...转载 2018-10-25 11:06:14 · 254 阅读 · 0 评论 -
spark与mysql:Did not find registered driver with class com.mysql.jdbc.Driver
CDH-5.8.3集群上spark-submit --master yarn。。。提交任务时,当使用mysql-connector-java-5.1.40-bin.jar等jar包时可能会出现以下问题:Did not find registered driver with class com.mysql.jdbc.Driver解决方案:每个节点(master节点和slave节点)把my...原创 2018-10-22 11:52:42 · 405 阅读 · 0 评论 -
spark关于数据倾斜问题
spark的数据倾斜调优方案归纳总结:不来虚的,直接上解决方法。数据倾斜产生原因:在运算过程中把数据分配给不同的Task,一般需要Shuffle过程,同一个Key都会交给Task处理,但是有时同一个Key的values数据量太多造成数据堆积等。判断是否发生数据倾斜:通过Web UI查看Task的metrics某些Task相当于其他大多数Task来说所消耗相当长的时间。数据倾斜解决方...原创 2018-10-16 09:53:49 · 355 阅读 · 0 评论 -
spark+hive环境搭建
UbuntuKylin 16.04 LTS环境配置无密码ssh登录和ip与hostname,在此不阐述。需要安装java、scala和hadoop,在此不阐述。我用的java版本是java version "1.8.0_45",用的scala版本是:Scala code runner version 2.10.5,hadoop的版本:hadoop-2.6.0spark与hive有版本兼容性问题,...原创 2018-04-20 09:33:35 · 1747 阅读 · 0 评论 -
SPARK官方实例:两种方法实现随机森林模型(ML/MLlib)
在spark2.0以上版本中,存在两种对机器学习算法的实现库MLlib与ML,比如随机森林:org.apache.spark.mllib.tree.RandomForest和org.apache.spark.ml.classification.RandomForestClassificationModel两种库对应的使用方法也不同,Mllib是RDD-based API,ML是基于ML p...转载 2018-07-26 17:41:42 · 2995 阅读 · 0 评论 -
Spark-Ansj中文文本分词
ansj还是很好用的:快、相对于准确率高、功能多。https://github.com/NLPchina/ansj_seg直接上代码:import java.io.InputStreamimport java.utilimport org.ansj.domain.Resultimport org.ansj.recognition.impl.StopRecognitionim...原创 2018-07-26 17:51:43 · 1556 阅读 · 3 评论 -
Master-Driver和Worker-Executor剖析
Applicaton如何向Master注册信息?如何启动Master和Worker?Driver与Executor资源如何分配?在这里都能找到答案。def rddBasics: Unit = { val sparkConf: SparkConf = new SparkConf().setAppName("rdd basics implement") val sparkCo...原创 2018-08-05 15:05:07 · 496 阅读 · 0 评论 -
Spark作业执行流程
Spark作业执行实例代码:def rddBasics: Unit = { val sparkConf: SparkConf = new SparkConf().setAppName("rdd basics implement") val sparkContext: SparkContext = SparkContext.getOrCreate(sparkConf) val r...原创 2018-08-01 10:11:22 · 1199 阅读 · 0 评论 -
spark的NaiveBayes中文文本分类
中文分词使用的ANSJ工具,需要下载两个jar包:ansj_seg和nlp-lang,ansj中文分词的jar下载地址:ansj_seg jar下载地址:https://oss.sonatype.org/content/repositories/releases/org/ansj/ansj_seg/nlp-lang的jar下载地址:https://oss.sonatype.org/...原创 2018-08-05 15:18:49 · 2967 阅读 · 0 评论 -
spark-shuffle的写入器源码分析
Spark-shuffle最根本的优化和迫切解决的问题:减少Mapper端ShuffleWriter产生的文件数,减少mapper端小文件的好处:mapper端的内存占用变少了 可以处理小规模数据,不会容易达到性能瓶颈 Reducer端的数据获取次数变少,增加效率,减少网络消耗在SparkEnv中可以看到shuffle的配置属性以及当前在spark的ShuffleManager可插拔框架...原创 2018-09-20 10:53:15 · 317 阅读 · 0 评论 -
spark-shuffle的读数据源码分析
对指定分区进行计算的抽象接口,以为CoGroupedRDD(或者ShuffleRDD,可能compute细节不同,但是shuffle读取的类或方法的调用时一样的)的compute方法为实现,源码:override def compute(s: Partition, context: TaskContext): Iterator[(K, Array[Iterable[_]])] = {val ...原创 2018-09-20 15:06:15 · 271 阅读 · 0 评论 -
spark常用 算子小总结
import org.apache.spark.rdd.RDDimport org.apache.spark.{HashPartitioner, SparkConf, SparkContext}class RDDSuanzi { private[this] def rddBasics: Unit = { val sparkConf: SparkConf = new Spar...原创 2018-09-26 09:36:31 · 264 阅读 · 0 评论 -
spark-scala小案例
scala code example 首页:https://www.programcreek.com/scala/index.phpspark-scala小案例:https://www.programcreek.com/scala/index.php?ClassName=spark&submit=Search原创 2018-02-08 10:29:34 · 1143 阅读 · 0 评论