
Spark
文章平均质量分 94
訾零
做喜欢的事,过玩味的生活。
展开
-
Spark3 读写 S3 Parquet, Hive, Hudi
Spark 读 S3 Parquet 写入 Hudi 表目录Spark 读 S3 Parquet 写入 Hudi 表参考关于S3,S3N和S3A的区别与联系Spark 读写 S3 Parquet 文件测试代码pom.xml配置文件EMR Spark任务提交spark-shellspark-submitSpark 读写 Hudi本地测试代码集群上测试spark-shellspark-sqlSpark-submitHive 中测原创 2022-05-17 11:56:09 · 5063 阅读 · 1 评论 -
Spark insertOrUpdate MySQL数据
需求:使用 Spark 将 Hive 数据同步到 MySQL,MySQL表以其中三个字段作为唯一索引,索引不冲突的数据直接写入,冲突的数据对其中几个字段进行更新。主类import java.util.Propertiesimport com.sm.conf.ConfigManagerimport com.sm.constants.Constantsimport com.sm....原创 2020-04-02 14:15:03 · 769 阅读 · 2 评论 -
Spark 远程读写 Hive (HDFS) 失败
[WARN] - I/O error constructing remote block reader.java.net.ConnectException: Connection timed out: no further information ...[WARN] - Connection failure: Failed to connect to /10.0.0.24...原创 2020-03-02 14:53:58 · 2871 阅读 · 0 评论 -
Spark 读取 MySQL 的 tinyint(1) 类型字段数据为 true 和 false
场景Spark 读取 MySQL 数据写入Hive。MySQL 中存在字段类型为tinyint(1) 。Spark读取结果为写入Hive 后,结果为 0 和 1,除了 0 以外数值都为1。原因MySQL 中 Boolean 的类型为 tinyint(1),1 表示true,0 表示 false。即boolean = tinyint(1)。解决...原创 2019-11-20 16:14:44 · 812 阅读 · 0 评论 -
SparkSql 读写Hive 分区表(数据清洗类)
主要使用 SparkSql 对 Hive 分区表使用动态分区进行操作,根据规则对数据进行清洗等,除了刚导入数据时指定date范围清洗,后期按天进行清洗。package com.sm.cleandataimport java.io.Fileimport java.util.Propertiesimport com.sm.conf.ConfigurationManageri...原创 2019-10-23 16:58:38 · 5072 阅读 · 0 评论 -
Spark RDD、DataFrame、Dataset相互转换
目录1. RDD转DataFrame2. RDD转DataSet3. DataFrame/Dataset 转RDD4. DataFrame转Dataset5.Dataset转DataFrame1. RDD转DataFrame1. 构建schema主要有三步:构建RDD[Row] 构建schema 调用createDataFrame方法object...原创 2019-08-27 17:34:25 · 7970 阅读 · 0 评论 -
Spark性能测试Terasort
上次做了Hadoop集群的性能测试,因为主要的大数据开发工作在Spark上,这次做一下Spark的性能测试。CDH6.0.1环境Hadoop集群性能测试代码参考:spark-terasort因为使用的CDH6.0.1,Spark版本2.2.0,代码需要做一些修改,这里已经在Spark2.3源码下修改好并编译打包,放到了Spark的examples里,可以替换Spark的exampl...原创 2019-08-08 18:27:43 · 2339 阅读 · 3 评论 -
9. Spark源码解析之Yarn Cluster模式启动流程源码解析
这里解读当sparksubmit提交模式为Yarn Cluster模式时的启动流程。SparkSubmit类的runMain()中执行到start()时,本地模式会进入本地提交的--class类的main中开始执行。 // 启动实例 app.start(childArgs.toArray, sparkConf)而Yarn Cluster模式,在prep...原创 2019-08-27 00:33:03 · 835 阅读 · 1 评论 -
IDEA本地启动Spark的Master和Worker
在Windows环境IDEA上解读Spark源码的时候,为了查看参数传递,总是连接服务器很麻烦。简单实现从本地启动Spark的Master和Worker,方便源码解读。1. 添加Maven依赖在spark-parent的pom.xml中添加guava依赖<!-- https://mvnrepository.com/artifact/com.google.guava/guav...原创 2019-07-27 05:22:51 · 1068 阅读 · 0 评论 -
7. Spark源码解析之org.apache.spark.deploy.SparkSubmit源码解析
前面解读launch.main的时候已经了解了spark-submit的提交流程,这里大概看下流程。当打jar提交到集群运行的时候,一般会设置一些参数,例如本地提交examples的SparkPi:spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://192.168.2.1:7077 \D...原创 2019-08-05 03:42:27 · 1751 阅读 · 0 评论 -
2. Spark源码解析之org.apache.spark.launcher.Main源码解析
不管是启动spark-shell,或者通过spark-submit提交jar,还是其他其他master或者worker的脚本,最后都会进入spark-class,并调用launch.main方法构建执行命令。java -Xmx128m -cp ...jars org.apache.spark.launcher.Main "$@"也就是说org.apache.spark.launcher....原创 2019-08-01 03:17:25 · 916 阅读 · 0 评论 -
Spark资源优化
提交Spark程序时,资源调优是必须的,否则会默认运行2个executor,每个executor内存1G。这里主要针对资源利用做个总结。主要涉及--num-executors--executor-memory--executor-cores--conf spark.default.parallelism服务器节点YARN可用资源服务器 单节点cores 总c...原创 2019-08-09 19:17:04 · 678 阅读 · 0 评论 -
CDH环境Spark on Hue
Hue设置 --hue_safety_valve.ini[desktop] app_blacklist= use_new_editor=true [notebook] show_notebooks=true enable_batch_execute=true enable_query_builder=true[[interpreters]][[[hive...原创 2019-08-10 21:37:25 · 791 阅读 · 0 评论 -
Spark executor显示Dead
Spark日志显示ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM原因Spark开启了资源动态分配,当executors空闲达到设定时间后会被移除。spark.dynamicAllocation.enabled=truespark.dynamicAllocation.executorIdl...原创 2019-08-20 16:01:18 · 2655 阅读 · 0 评论 -
Spark并发读取MySQL
Spark读取MySQL数据量过大,一直停在Added broadcast_0_piece0 in memory on cdh-master问题。19/09/18 14:21:17 INFO storage.BlockManagerInfo: Added broadcast_0_piece0 in memory on cdh-slave01:38815 (size: 10.2 KB, fre...原创 2019-09-18 18:48:50 · 1990 阅读 · 0 评论 -
Spark读取Hive报错:java.lang.outofmemoryerror: java heap space
Spark本地测试Hive数据时,报错:java.lang.outofmemoryerror: java heap space因为是本地测试,内存足够,所以IDEA中增大内存。Run/Bebug Configurations 中 VM options 设置-Xmx2048m,问题同样。基本排除了是内存不足的问题,可能存在问题的地方。1. AppName检查 Spar...原创 2019-09-20 04:43:16 · 2317 阅读 · 1 评论 -
SpringBoot + Spark 的 slf4j 冲突
LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from file:/D:/maven...原创 2019-09-25 12:20:34 · 1040 阅读 · 1 评论 -
SpringBoot + Spark
Scala开发,这里只是Spark local模式的简单示例,工作也没有需求 http请求去执行Spark yarn,所以暂时没有去管。pom.xml需要注意的是去除掉 SpringBoot 默认的日志引擎。 <properties> <project.build.sourceEncoding>UTF-8</project.b...原创 2019-09-26 09:28:46 · 1343 阅读 · 0 评论 -
SparkSQL 分隔字段和解析Json
原始数据格式为:timestamp | json(嵌套)1570384823445|{"cp_game_id":xxx,"category":"cp_api","event":{"event_time":"xxx","event_name":"money_flow"},"data":{"GAME_SERVER":"xxx","ROLE_ID":"xxx","ROLE_NAME":"xxx...原创 2019-10-09 15:11:26 · 1678 阅读 · 0 评论 -
Spark2.4.3源码解析之总目录
1. Spark源码解析之启动脚本解析 2.Spark源码解析之org.apache.spark.launcher.Main源码解析 3. Spark源码解析之Master启动流程解析 4. Spark源码解析之Master实例化流程解析 5.Spark源码解析之worker启动流程解析 6. Spark源码解析之Worker实例化流程解析 7. Spark源码解析之org.apa...原创 2019-08-01 03:13:57 · 1088 阅读 · 3 评论 -
IDEA远程调试Spark
IDEA远程调试Spark很简单,大概分四步:1、打包到master将Spark项目打包后拷贝到master节点上,这里用spark-examples.jar做下示例。2、IDEA设置Remote连接添加Remote:Menu -> Run -> Edit Configurations -> 选择 + -> Remote。修改服务器IP,端口只要没有占用...原创 2019-07-22 18:07:32 · 854 阅读 · 0 评论 -
Windows下IDEA本地读写HDFS
resources文件夹下添加core-site.xml主要属性:<property> <name>fs.defaultFS</name> <value>hdfs://hadoop-master:8020</value></property>注意:cdh环境hdfs端口是8020,hadoop环境h...原创 2019-06-21 17:09:05 · 1885 阅读 · 0 评论 -
Spark-submit参数说明
spark-submit [--options] <app jar | python file> [app arguments] 参数名称 含义 --masterMASTER_URL 可设置模式如: spark://host:port mesos://host:port yar...原创 2019-06-25 11:56:22 · 2307 阅读 · 2 评论 -
Spark的Lost executor错误问题
1.19/06/17 09:50:52 WARN cluster.YarnSchedulerBackend$YarnSchedulerEndpoint: Requesting driver to remove executor 2 for reason Container marked as failed: container_1560518528256_0014_01_000003 o...原创 2019-06-17 11:34:31 · 20890 阅读 · 0 评论 -
Spark性能优化指南——高级篇
继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。...转载 2019-06-10 12:04:47 · 210 阅读 · 0 评论 -
Spark性能优化指南——基础篇
在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、性能...转载 2019-06-10 11:58:34 · 235 阅读 · 0 评论 -
Spark配置说明 《Spark 官方文档》
《Spark 官方文档》Spark配置Spark Configuration原文地址Spark配置Spark有以下三种方式修改配置:Spark properties(Spark属性)可以控制绝大多数应用程序参数,而且既可以通过SparkConf对象来设置,也可以通过Java系统属性来设置。 Environment variables(环境变量)可以指定一些各个机器...转载 2019-06-10 11:12:15 · 990 阅读 · 0 评论 -
Spark读写Hbase
Maven依赖: <properties> <hbase.version>1.2.0</hbase.version> </properties> <dependencies> <dependency> <groupId>org.apache.hbase</group...原创 2019-06-19 19:47:31 · 775 阅读 · 0 评论 -
Spark分配num-executors,execuor-cores和executor-memory
spark配置参数设置driver.memory:driver运行内存,默认值512m,一般2-6Gnum-executors:集群中启动的executor总数executor.memory:每个executor分配的内存数,默认值512m,一般4-8Gexecutor.cores :每个executor分配的核心数目yarn.am.memory:AppMaster内存,默...原创 2019-06-14 18:16:09 · 11256 阅读 · 2 评论 -
IDEA安装Spark
IDEA安装Spark两种方式:从本地安装的Spark中导入jar包,File - Project Structure - Libraies - "+" - java - 选择spark目录下jars文件夹 通过Maven添加pom依赖本地安装演示:pom添加演示:图文步骤:本地安装:File - Project Structure - Libraie...原创 2019-06-06 13:17:18 · 6353 阅读 · 0 评论 -
Spark读写Hive
1. maven依赖添加spark-hive、mysql-connector-java <properties> <spark.version>2.3.3</spark.version> <mysql.version>8.0.15</mysql.version> </propert...原创 2019-06-18 09:30:13 · 1257 阅读 · 0 评论 -
Spark读写MySQL
1. Spark读取MySQL数据 1. spark.read.jdbc() def main(args: Array[String]): Unit = { val spark = SparkSession.builder().appName("sparksql").master("local").getOrCreate() val prop = ne...原创 2019-06-18 16:32:37 · 6468 阅读 · 1 评论 -
Spark创始人Matei Zaharia关于Spark的相关论文
Spark创始人Matei Zaharia主页:https://cs.stanford.edu/~matei/Spark: Cluster Computing with Working Sets. M. Zaharia, M. Chowdhury, M.J. Franklin, S. Shenker and I. Stoica.HotCloud 2010, June 2010. Res...原创 2019-07-16 16:26:06 · 1709 阅读 · 0 评论 -
8. Spark源码解析之org.apache.spark.deploy.SparkSubmitArguments参数解析
SparkSubmit提交任务时,launcher.main中构建命令的SparkSubmitCommandBuilder类调用的OptionParser类的parse(),对提交的参数进行解析。OptionParser继承了SparkSubmitOptionParser,parse方法是直接调用了SparkSubmitOptionParser的。 private class Optio...原创 2019-08-10 22:27:30 · 2108 阅读 · 0 评论 -
6. Spark源码解析之Worker实例化流程解析
前面解读了Worker的启动流程,5. Spark源码解析之worker启动流程解析这里解读下Worker的实例化流程。Worker实例化通过RPC中new Worker,开始真正的实例化Worker。private[deploy] class Worker( // 定义worker需要的参数,不用解读了 override val rpcEnv: RpcEn...原创 2019-08-01 03:18:27 · 621 阅读 · 0 评论 -
5. Spark源码解析之worker启动流程解析
启动Spark的Worker,不管是执行start-all.sh还是直接在Worker节点直接启动start-slaves.sh,都会进入start-slave.sh开始,而基本都不会设置参数,所以参数都是默认的--webui-port 8081 spark://host:7077。脚本阶段跟启动Master步骤差不多,执行流程可以参照Master:4. Spark源码解析之Master启动流...原创 2019-08-01 03:18:17 · 977 阅读 · 0 评论 -
1. Spark源码解析之启动脚本解析
从零开始解读Spark源码。前期记录详细点。Spark启动方式主要有两种:start-all.sh一键启动,start-master.sh和start-slave.sh单独启动master和slave。运行Spark的方式也是两种:spark-shell和spark-submit。这里解析所有相关启动脚本。Spark集群启动脚本 start-all.sh start-mas...原创 2019-08-01 03:17:02 · 990 阅读 · 0 评论 -
4. Spark源码解析之Master实例化流程解析
当脚本启动Master流程走到最后的时候,是解析成命令后返回给spark-class的 exec ${CMD[@]} 真正执行,也就是在这里真正开始初始化Master。这里的命令是:java -cp ../jar/*org.apache.spark.deploy.master.Master--port 7077 --webui-port 8080org.apache.spa...原创 2019-08-01 03:18:01 · 989 阅读 · 0 评论 -
3. Spark源码解析之Master启动流程解析
启动Spark的Master,不管是执行start-all.sh还是直接在master节点直接启动start-master.sh,都会进入spark-master.sh开始。这里只是对Master的启动流程进行追踪,脚本的具体解析可以参照前篇,具体的Master实例化后面再解读。脚本解析:Spark源码解析之启动脚本解析首先进入spark-master.shstart-maste...原创 2019-08-01 03:17:44 · 922 阅读 · 0 评论 -
Windows下编译Spark2.3.3
目录安装IDEA和Scala插件IDEA中编译打包IDEA中导入和编译编译中报错IDEA中编译打包打包中报错Git中编译打包测试本地调试脚本问题IDEA编译:官网文档编译打包:官网文档安装IDEA和Scala插件1. IDEA2019.01下载安装2.安装Scala插件3. 安装Git并设置环境变量IDEA中编译打包...原创 2019-07-17 19:18:10 · 1910 阅读 · 0 评论