
大数据之Spark
文章平均质量分 79
Spark分栏
大数据架构师Pony
不勤于始,将悔于终。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
spark提交任务后,报错:Exception in thread “main“ java.lang.SecurityException: Invalid signature file digest
报错如图:原因:jar 包里有一些类冲突,生成了一些 SF、RSA 文件解决:要使用 zip 命令来删除zip -d xxx.jar 'META-INF/.SF' 'META-INF/.RSA' 'META-INF/*SF'原创 2022-02-09 11:33:34 · 1091 阅读 · 0 评论 -
Clickhouse、Hawq、Hive、Spark SQL、Presto、Kylin、Impala、Druid、Greeplum对比
在上一章节中,我们讲到实时数仓的建设,互联网大数据技术发展到今天,各个领域基本已经成熟,有各式各样的解决方案可以供我们选择。在实时数仓建设中,解决方案成熟,消息队列Kafka、Redis、Hbase鲜有敌手,几乎已成垄断之势。而OLAP的选择则制约整个实时数仓的能力。开源盛世的今天,可以供我们选择和使用的OLAP数据库令人眼花缭乱,这章我们选取了几个最常用的OLAP开源数据引擎进行分析,希望能给正在做技术选型和未来架构升级的你提供一些帮助。OLAP百家争鸣OLAP简介OLAP,也叫联机分..转载 2021-11-02 15:16:34 · 3845 阅读 · 0 评论 -
大数据面试-20210317
基础题1、RDD、DataFrame、DataSet三者的区别与联系?联系:a. RDD、DataFrame、Dataset全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利。如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。b.三者都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action如foreach时,三者才会开始遍历运算,极端情况下,如果代码里面有创建、转换,但...原创 2021-06-09 14:27:43 · 229 阅读 · 0 评论 -
大数据面试-20210315
1、简述Spark中的缓存机制(cache和persist)与checkpoint机制,并指出两者的区别与联系区别:1.cache的作用等价于 persist 不带参数的情况,RDD的 cache() 方法其实调用的就是persist方法,缓存策略均为MEMORY_ONLY。即persist可以代替cache,反之则不行。2.checkpoint算子不仅能将RDD持久化到磁盘,还能切断RDD之间的依赖关系。3.完成application后checkpoint的数据依然在磁盘上,而cac.原创 2021-06-09 09:21:23 · 266 阅读 · 1 评论 -
大数据面试-20210312
基础题1、介绍一下拉链表的原理,以及适用于哪些场景?拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的;顾名思义,所谓拉链表,就是记录历史,记录一个事务从开始一直到当前状态的所有变化的信息。拉链表可以避免按每一天存储所有记录造成的海量存储问题,同时也是处理缓慢变化数据(SCD2)的一种常见方式。原理:说白了就是在原有表基础上增加两个字段,一个start_time,一个end_time数据如果不变就不动,如果有新数据进来,就将原数据的end_time天数-1.原创 2021-06-08 16:42:29 · 424 阅读 · 0 评论 -
大数据面试-20210308:hdfs ,Spark streaming, Flink三者中的checkpoint原理 hdfs checkpoint原理
每达到触发条件,会由secondary namenode将namenode上积累的所有edits和一个最新的fsimage下载到本地,并加载到内存进行merge (这个过程称为checkpoint),如下图所示:原创 2021-06-08 16:04:34 · 849 阅读 · 0 评论 -
解决:idea运行scala程序,报错:Error:scalac: bad option: -make:transitive
问题描述:idea运行scala程序,报错:Error:scalac: bad option: '-make:transitive'\解决办法:1.进到项目的根目录下面、2.进入.idea文件夹,并打开Scala_compiler.xml文件3.将此行<parameter value="-make:transitive" />注释掉4.重启idea...原创 2020-06-22 18:34:02 · 1104 阅读 · 0 评论 -
TopN算法,使用spark或者scala实现。
TopN算法,使用spark或者scala实现。object TopN{def main(args:Array[String]){val conf = new SparkConf()conf.setAppName("Wow,TopNGroup App!")conf.setMaster("local")val sc = new SparkContext(conf)sc.setLogLevel("WA...原创 2020-05-24 23:19:24 · 548 阅读 · 0 评论 -
spark的MapPartition和Map的区别
区别:map是对rdd中的每一个元素进行操作;mapPartitions则是对rdd中的每个分区的迭代器进行操作MapPartitions的优点:效率高MapPartitions的缺点:可能会出现OOM——内存溢出问题原创 2020-05-23 11:04:44 · 204 阅读 · 0 评论 -
Spark中的checkpoint作用与用法
Spark中的checkpoint作用与用法转载 2020-12-28 16:39:52 · 1325 阅读 · 2 评论 -
spark运行作业时报错:Missing application resource.
原因:命令不正确!解决:检查命令格式是否正确。检查发现:箭头处少个空格原创 2020-10-27 18:20:26 · 8377 阅读 · 0 评论 -
failed to find commons-codec:commons-codec:pom:1.15.......
问题描述:idea打jar包时,报错:failed to find commons-codec:commons-codec:pom:1.15........原因:jar包冲突或者少jar包解决:去除jar包冲突或者下载相应jar包1.如果你的集群环境有版本,去除jar包冲突时一定要手动输入jar包的<aetifactId>,比如spark-sql_2.xx 让它自动提示出来。2.如果集群没有这个版本的jar包,就下载commons-codec-1.xx.jar,放...原创 2020-09-18 18:49:43 · 11429 阅读 · 5 评论 -
Spark写入数据到hbase,本地idea运行
废话不多说,上代码:package day02.com.toHbaseimport org.apache.hadoop.hbase.HBaseConfigurationimport org.apache.hadoop.hbase.client.Putimport org.apache.hadoop.hbase.io.ImmutableBytesWritableimport org.apache.hadoop.hbase.mapred.TableOutputFormatimport org.原创 2020-09-17 15:44:59 · 611 阅读 · 0 评论 -
NoSuchColumnFamilyException :spark写入hbase报错
问题描述:spark程序往hbase中写入的时候报错,hbase中没有这个列族!解决:hbase中创建好列族。运行,成功!查看结果:原创 2020-09-17 14:41:34 · 416 阅读 · 0 评论 -
SparkSQL读取hive数据本地idea运行
环境准备:hadoop版本:2.6.5spark版本:2.3.0hive版本:1.2.2master主机:192.168.100.201slave1主机:192.168.100.201pom.xml依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20原创 2020-09-16 11:31:43 · 1852 阅读 · 1 评论 -
scala 模式匹配获取返回值
原创 2020-07-30 20:51:28 · 462 阅读 · 0 评论 -
spark2-submit命令汇总
spark2-submit \--master yarn \--deploy-mode client --class cn.org.nifa.udcp.UdcpStart \--driver-class-path /disknas/udcp/stats/udcp-processing/conf/ \--num-executors 10 \--driver-memory 10g \--executor-memory 10g \--executor-cores 2 \--conf spark..原创 2020-07-10 21:17:16 · 1140 阅读 · 0 评论 -
已解决!idea 启动spark类时,出错! JsonMappingException:Incompatible Jackson version: 2.9.8
问题描述:启动spark类报错如下:Caused by: com.fasterxml.jackson.databind.JsonMappingException: Incompatible Jackson version: 2.9.8原因:spark 依赖的版本过高 ,不兼容!解决:修改jackson-databind的版本,我的改为2.6.6...原创 2020-06-23 19:02:47 · 902 阅读 · 0 评论 -
已解决!idea 启动报错:javax.servlet.ServletRegistration
解决:更改pom.xml文件,将 <scope>provided</scope> 改为<scope>compile</scope>问题解决!原创 2020-06-23 18:53:03 · 1506 阅读 · 0 评论 -
解决spark on yarn no suitable driver found for jdbc://localhost:3306/.........
问题描述:spark任务提交yarn集群时,报错:找不到数据库的的驱动!原因:官网有解释!解决:提交spark时,提交命令中添加jar包。原创 2020-06-19 18:19:29 · 594 阅读 · 2 评论 -
Spark RDD的五大属性+宽窄依赖+执行过程+常见算子
sparkMllib的五大属性原创 2020-06-09 08:41:43 · 662 阅读 · 0 评论 -
spark为什么速度快?
spark为什么速度快?spark是将数据缓存到内存中,Spark计算的时候可以从内存中获取数据 缓存方式:persist、cache cache调用的是persist的默认方法,默认存储级别是内存 persist默认内存中存放原创 2020-05-30 16:31:04 · 2136 阅读 · 0 评论 -
spark宽依赖与窄依赖的理解
窄依赖是指父RDD的每个分区只被子RDD的一个分区所使用 相应的,宽依赖是指父RDD的每个分区都可能被多个子RDD分区所使用窄依赖对优化的优势: 宽依赖往往对应着shuffle操作,需要在运行过程中将同一个父RDD的分区传入到不同的子RDD分区中,中间可能涉及多个节点之间的数据传输;而窄依赖的每个父RDD的分区只会传入到一个子RDD分区中,通常可以在一个节点内完成转换。 当RDD分区丢失时(某个节点故障),spark会对数据进行重算。 对于窄依赖,由于父RDD的一个分区只对应一个原创 2020-05-30 16:31:13 · 457 阅读 · 0 评论 -
sparkRDD中key-value类型类型数据的三种方法对比
reduceBykey | groupByKey | sortByKey 的区别! reduceBykey操作——reduceBykey在源码中reduce之前使用预先聚合的combine操作 groupByKey——直接进行shuffle的操作 sortByKey ——根据key进行排序的操作 总结:reduceBykey 合并groupByKey 只分组,未合并sortByKey ...原创 2020-05-30 16:31:24 · 653 阅读 · 0 评论 -
Spark的shuffle阶段和MR的shuffle阶段分别是什么?区别是什么?
mr的shuffle分为map的shuffle和reduce 的shuffleMap的Shuffle 数据存到hdfs中是以块进行存储的,每一个块对应一个分片,maptask就是从分片中获取数据的。在某个节点上启动了mapTask,mapTask读取是通过k-v来读取的,读取的数据会放到环形缓存区,这样做的目的是为了防止IO的访问次数,然后环形缓存区的内存达到一定的阀值的时候会把文件溢写到磁盘,溢出的各种小文件会合并成一个大文件,这个合并的过程中会进行排序,这个排序叫做归并排序。map...原创 2020-05-26 10:30:23 · 1919 阅读 · 2 评论 -
Spark,hbase集群如何对jvm调优?
Spark:1. 对于垃圾回收的性能问题,首先要做的就是,使用高效的数据结构。 2. 持久化RDD时,使用序列化的持久化级别,而且使用Kyro序列化类库,这样partition就只是一个对象,一个字节数组。3. 给Eden区域分配更大的空间,使用-Xmn即可,通常建议给Eden区域,预计大小的4/3如果使用的是HDFS文件,那么很好估计Eden区域的大小,如果每个executor有4个task,然后每个hdfs压缩块解压缩后大小是3倍,此外每个hdfs块的大小是64M,那么Eden区域.原创 2020-05-28 22:58:42 · 212 阅读 · 0 评论 -
spark的checkpoint机制
checkpoint的意思就是建立检查点,类似于快照,例如在spark计算里面 计算流程DAG特别长,服务器需要将整个DAG计算完成得出结果,但是如果在这很长的计算流程中突然中间算出的数据丢失了,spark又会根据RDD的依赖关系从头到尾计算一遍,这样子就很费性能,当然我们可以将中间的计算结果通过cache或者persist放到内存或者磁盘中,但是这样也不能保证数据完全不会丢失,存储的这个内存出问题了或者磁盘坏了,也会导致spark从头再根据RDD计算一遍,所以就有了checkpoint,其中checkpo原创 2020-05-25 10:05:25 · 632 阅读 · 0 评论 -
SparkStreaming如何保证数据的防丢失
在Spark Streaming的生产实践中,要做到数据零丢失,需要满足以下几个先决条件:1.输入的数据源是可靠的/数据接收器是可靠的2.应用程序的metadata被application的driver持久化了(checkpointed )3.启用了WAL特性(Write ahead log)下面分别对这3个条件进行介绍:对于一些输入数据源(比如Kafka),Spark Streaming可以对已经接收的数据进行确认。输入的数据首先被接收器(receivers )所接收,然后存储到Spa原创 2020-05-25 10:00:45 · 1172 阅读 · 0 评论 -
Kafka和sparkStreaming的整合,手动提交的offset调用了什么方法?
在kafka于sparkStreaming整合的时候,其实是有两种提交方式,一种是自动提交offset一种就是手动提交offset。在设置手动提交offset的时候,我们只需要在编写我们的程序的时候,设置:properties.put("enable.auto.commit","false");程序将会手动提交我们的offset。这样最大程度上保证我们的数据安全。不仅仅有手动提交,还有一种提交方式,自动提交。enable.auto.commit 设置为false,如果是tru..原创 2020-05-25 09:56:56 · 950 阅读 · 0 评论 -
spark工作机制是什么?
在spark的核心架构机制中!有很多中机制,如Spark的容错机制、Shuffle机制等,都是属于Spark的核心机制。容错机制:RDD之间的算子操作会形成DAG图,RDD之间的依赖关系会形成Lineage。要理解Lineage机制首先要明确两种依赖的概念:Shuffle Dependencies(宽依赖) 父分区可以被多个子分区所用 ,即多对多的关系Narrow Dependencies(窄依赖) 父分区最多被一个子分区所用 ,即一对一或者多对一的关系当出现某个节点计.原创 2020-05-25 09:52:17 · 992 阅读 · 0 评论 -
spark streming在实时处理时会发生什么故障,如何停止,解决。
在我们使用sparkStreaming执行的时候,出现的问题,偶尔会出现Stager停止不动的现象。但是我们点击任务进去的时候!发现任务状态SUCCESSED的。然后我们去查看日志,发现日志中出现ERROR和WARN报出:ERROR LiveListenerBus: Dropping SparkListenerEvent because no remaining room in event queue. This likely means one of the SparkListener原创 2020-05-25 09:47:58 · 668 阅读 · 0 评论 -
spark-submit几种提交模式的,区别是什么?
在spark的提交模式中,有三种提交方式:分别是基于spark集群的standalone模式,基于YARN集群的yarn-client和yarn-cluster三种模式,三者各有好坏处:Standalone模式运行过程:1、我们提交一个任务,任务就叫Application2、初始化程序的入口SparkContext, 2.1 初始化DAG Scheduler2.2 初始化Task Scheduler3、Task Scheduler向master去进行注册并申请资源(CPU Core.原创 2020-05-25 09:46:18 · 1155 阅读 · 0 评论 -
sparkSQL的三种数据类型【RDD--DF--DS】之间的相互转换
sparkSQL的三种数据类型【RDD--DF--DS】之间的相互转换RDD结果:DF结果:DS结果:原创 2020-03-24 15:01:26 · 1147 阅读 · 0 评论 -
Spark streaming、 Struct streaming、Storm、Blink、Flink 对比图
原创 2020-04-23 22:53:46 · 439 阅读 · 0 评论 -
spark DF数据【DataFrame】的Schema如何设置?
spark DF数据【DataFrame】的Schema如何设置?原创 2020-03-24 15:13:51 · 2495 阅读 · 0 评论 -
Flink与storm、Spark的优势对比
Flink与storm、Spark的优势对比原创 2020-04-09 14:43:37 · 1438 阅读 · 0 评论