![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
文章平均质量分 90
lsr40
菜鸡一个,还请见谅
展开
-
【spark】行列互转的思考
本文基于一个具体的案例,介绍spark中case when,stack,lateral view explode,pivot的用法,并做一些性能上的比较一、背景群里有个小伙伴出了一道题目是行转列(多行数据转成多列数据)如图,把上表的数据通过sql变成下表的数据当然实现方法还是比较多的,我也想了几种方式,并随便搞了2.5亿条数据测试下性能(表格式是text,每个文件块大小都很均匀)二、实现方法不同引擎里,会有不同的函数或者语法做行列的转换,我这里就针对spark引擎.原创 2022-03-11 01:03:11 · 4747 阅读 · 0 评论 -
【spark】metrics信息的获取(监听器等)
一、背景最近看到了一篇文章,说的是spark小文件合并的问题Spark 小文件合并优化实践:https://mp.weixin.qq.com/s/195nFBH0kpZEXekHiQAfrA(作者:偷闲小苑)其实关于小文件合并我之前也写过类似的文章,大体的方案也就是1、存之前做一个数据量的预估,然后repartition/coalesce2、存完之后,触发一个merge合并小文件(可以是hive也可以是spark任务)3、使用一些数据湖(delta lake,hudi,iceber原创 2021-07-20 14:49:32 · 2620 阅读 · 5 评论 -
【spark】使用kryo序列化和压缩,减少数据缓存和传输的大小
本文其实主要是想说说spark的kryo机制和压缩!首先spark官网对于kryo的描述:http://spark.apache.org/docs/latest/tuning.html#data-serialization官网相关参数:http://spark.apache.org/docs/latest/configuration.html#compression-and-serialization大概是说,kryo很强,建议使用,spark2.x的很多地方已经自动帮你用上了kry..原创 2020-07-01 17:02:05 · 1613 阅读 · 1 评论 -
【spark】关于spark的shuffle模式的一些见解
我不想说太多源码层面的东西,然后把详细方法一个个列出来,其实没有多大意义(因为源码里有,再者比我讲的清晰明白的大有人在,我没有必要再重复相同的东西),但是我真的花了好大的精力才把这部分看完,我得记录下,不然会忘掉一、spark到底有几种shuffleManager(shuffle管理类)可以选择?首先spark早期的版本(比如1.5.1版本),是有三种shufflehttp://spark.apache.org/docs/1.5.1/configuration.html#shuffle-b.原创 2020-06-30 20:17:34 · 1451 阅读 · 4 评论 -
【spark】都有哪些级别的容错或者失败重试?
哎,我又来写文章了!最近在看spark源码(照着这本书看的《Spark内核设计的艺术架构设计与实现》),想整理一些东西(一些以前面试被问到的在我脑中没有体系的知识点吧)1、Application级别的容错spark.yarn.maxAppAttempts如果没有手动配置这个参数,那就会使用集群的默认值yarn.resourcemanager.am.max-attempts,默认是2,这是hadoop的yarn-site.xml里面配置的,当然spark.yarn.maxAppAttem.原创 2020-06-28 11:25:41 · 4566 阅读 · 15 评论 -
【spark】on yarn的模式下,如何上传files并在程序中读取到?
在使用spark的时候,往往我们需要外部传入文件,来配合程序做数据处理那么这就涉及到,如何传入,如何获取(本文讨论的是spark on yarn)?讲实话,我觉得这个问题挺烦的,我百度了好久(可能我姿势不对?),各种博客,stackoverflow,community.cloudera.com都找过,我觉得回答方都停留在理论基础,并没有show me code,我实际测试的时候,好像又和他们说的不太一样,哎,要是能有统一的入口,统一的出口就好了1、client模式client模式下.原创 2020-06-24 15:58:12 · 4097 阅读 · 2 评论 -
【spark】自定义数据读取的InputFormat(异常:incorrect data check)
其实大多数场景下,各种大数据框架预定义的InputFormat(数据读取器)是够用的,除了一些比较特殊的情况,特殊的数据格式,我们才会需要自定义读取数据的方式。然后有一天,我在接入一个hdfs上gz格式数据的时候,遇到了一个报错:仔细看了报错,是输入流在read数据的时候,调用LineRecordReader的nextKeyValue方法报错了,百度了下,没有什么太准确的答案,大致来说...原创 2020-03-31 15:26:32 · 2687 阅读 · 0 评论 -
【spark】Spark Streaming写HDFS解决小文件问题思考
在实时的需求越来越高的当下,流式处理越来越重要。特别是有些需求,需要流式数据join静态数据来制造一些大宽表,提供不同维度的分析。然后往往这些数据我们会写到hdfs,但是写到hdfs就会遇到小文件的问题,其实我之前分享过批处理如何解决小文件的问题大家有兴趣可以去看看。【spark】存储数据到hdfs,自动判断合理分块数量(repartition和coalesce)(一):https:/...原创 2020-03-19 19:48:48 · 4466 阅读 · 13 评论 -
【spark】关于spark处理上百T数据清洗过滤的思考
我,菜鸡一只!本文会通过读取数据文件,外部传入参数,处理数据,保存数据,参数设置这几个点来宏观的说说我自己对于spark使用中的一些注意点继上一次写文章到现在好久了哦!工作上,数据的日常需求还是一直有的,然后我自己又想接一接java功能上的需求(多写写java代码提升自己的眼界),在这样的情况下,我的工作已经基本饱和了,结果突然领导说还要开个新的数据模型,年前要给测试反馈,所以12...原创 2020-02-12 18:57:44 · 2494 阅读 · 1 评论 -
【spark】spark广播变量空指针异常(spark的闭包)
emmmm,大家好,我是菜鸡!今天来说一个很诡异的问题,广播变量空指针!起因:有一个需求:行为表中有1000W人的行为(表名:bt_behavior),但是我只需要特定的500W人的行为,所以直接将行为表和特定的500W人的id关联(表名:dim_user)就可以了,sql大概如下~#行为表:bt_behavior#500W人的表:dim_userselect a.* fr...原创 2019-05-13 17:30:14 · 3849 阅读 · 1 评论 -
【spark】异常:org.apache.spark.sql.AnalysisException: resolved attribute(s)
本人菜鸟一只,天天写bug,今天又来记录一个解决了的bug!业务逻辑:1、从一张行为表中,抽取有特点行为的用户2、将这部分用户id拿到之后保存3、然后再将这部分用户id关联回行为表,获得这部分用户的所有行为具体代码我就不贴出来了,应该比较简单吧,就是读取行为表,过滤特定的行为,然后将这部分数据去重就得到特定行为的用户,最后把这些用户关联回行为表,就拿到了这部分特定用户的行为...原创 2019-04-08 16:05:01 · 27202 阅读 · 3 评论 -
【spark】spark异常:execute, tree:XXXX
本人菜鸡一只,在写代码的时候,经常会遇到这样或者那样的报错,而且脑子还不好,容易忘事,所以得用烂笔头记下来,希望以后能够越来越不蠢!最近在跑一段spark的时候,报了异常,大概上就是这样:execute, tree:Exchange hashpartitioning(字段1#2374, 字段2#2378, 字段3#2373, 5000)+- *HashAggregate(keys=[...原创 2019-04-04 18:36:20 · 3860 阅读 · 0 评论 -
【spark】记录spark使用窗口函数的一次问题
本人菜鸡一只,正在努力学习提升自己,在工作中遇到了这个问题,因此记录下来! 前言:提到窗口函数,我会第一个想起ROW_NUMBER()这个函数,实际上他还有两个兄弟,他们三个的区别这里稍微说下(因为我主要不是来介绍他们三个的)以下三个函数相同点:新增一列,根据一定规则将数据分区然后按照一定规则排序三个函数的不同点:ROW_NUMBER() :当有重复数据的时候,字段按照...原创 2019-02-14 15:21:22 · 1620 阅读 · 0 评论 -
【spark】搭建生产环境的spark服务
固定开头,菜鸡一只,如有说错,请大家批评指出,一定改正!事情是这样,当我们学习spark的时候,搭建一个环境是最简单也是最开始我们要做的,一般情况下,我们都是使用虚拟机(linux机器)来搭建spark的环境,然后让spark运行在yarn上(其实也有其他几个模式,但是yarn模式是较常见的通用的资源管理平台)但是本文要说的是如何在生产(环境)服务器上,搭建自己的spark环境 ...原创 2019-01-30 22:17:10 · 1823 阅读 · 0 评论 -
java.lang.NoSuchMethodError和kafka.common.OffsetOutOfRangeException(Spark)
一、关于 java.lang.NoSuchMethodError这个异常类型,其实如果遇到次数比较多了,大概可以判断是什么样的情况:比如在有一次在自己电脑上放一个spark的测试环境的时候,报了如下的异常: java.lang.NoSuchMethodError:org.apache.hadoop.hive.conf.HiveConf$ConfVars.getDef原创 2017-12-21 20:22:14 · 5075 阅读 · 0 评论 -
关于spark的yarn模式的测试
额。。。本人菜鸡一只,强行记录点东西,分享一下,也怕自己脑子不好使,忘记了~如果有说错的,还请大家指出批评!!前言:spark的运行模式有很多,通过--master这样的参数来设置的,现在spark已经有2.3.0的版本了,运行模式有mesos,yarn,local,更好的是他可以和多种框架做整合,2.3的版本也新增了Kubernetes。。。言归正传,讲下我所做的测试:测试的代码如下(用的是sp...原创 2018-03-07 14:40:01 · 4655 阅读 · 0 评论 -
spark应用提交报错解决
老样子,菜鸡一只!如果有什么说错的,还请大家见谅~!!也希望大家帮我指出改正。本次测试的spark版本是2.2.X的,从打包开始,打包有两种方式,一种是maven打包,一种是idea打包(据说这种打包方式叫SBT?maybe把),然后打出来的包也有两种,一种叫胖包,一种叫瘦包。我先打了胖包(胖包就是把项目中所有依赖的jar包都打进去,如果依赖多的话,能达到好几百M,瘦包就是单纯打包你的代码),然后...原创 2018-04-20 15:59:13 · 10605 阅读 · 2 评论 -
【spark】java.io.NotSerializableException: org.apache.spark.unsafe.types.UTF8String$IntWrapper
菜鸡一只!如果有什么说错的还请大家指出批评,坚决改正!! 遇到了一个挺诡异的报错把,反正比较无语,发现国内网站完全搜不到这个报错的解决方法,因此在这里记录下!!1、环境:这是一个spark的Task not serializable问题,因此只需要关注spark的版本就好了,我的版本是spark2.2.0的版本!2、具体报错:Exception in thread "ma...原创 2018-05-02 16:20:12 · 8314 阅读 · 5 评论 -
spark-2.2.0-bin-2.6.0-cdh5.12.1.tgz 编译方法总结!
菜鸡一只,如果有说错的地方,还请见谅和指出批评!!事情是这样的,想在自己本地部署一个hadoop2.6.0-cdh5.12.1,hive1.1.0-cdh5.12.1,spark-2.2.0-bin-2.6.0-cdh5.12.1的环境,前两个还是很好找到哪里下载和部署的!cdh版本下载点:http://archive.cloudera.com/cdh5/cdh/5/apache版本下载点:htt...原创 2018-04-28 11:28:27 · 2668 阅读 · 0 评论 -
spark2.2.0:记录一次数据倾斜的解决(扩容join)!
前言:数据倾斜,一个在大数据处理中很常见的名词,经由前人总结,现已有不少数据倾斜的解决方案(而且会发现大数据的不同框架的数据倾斜解决思想是一致的,只是实现方法不同),本文重点记录这次遇到spark处理数据中的倾斜问题。老话:菜鸡一只,本人会对文中的结论负责,如果有说错的,还请各位批评指出!起因:事情是这样的:有一批数据在hive的表中(我们称它为表A,表A中有不同网站的域名),要对这批数据进行处理...原创 2018-05-15 17:04:09 · 6402 阅读 · 3 评论 -
【已解决!】spark程序报错:java.lang.IndexOutOfBoundsException: toIndex = 9
该篇文章意于记录报错,也给遇到相同问题的小伙伴提供排错思路!但是本人也没有什么好的解决方法,如果有,我会更新此文章问题已经解决,请大家拉到最下面↓↓↓↓↓记录下报错:写了段spark代码,然后报错了2018-07-30 17:19:28,854 WARN [task-result-getter-2] scheduler.TaskSetManager (Logging.scala...原创 2018-07-30 18:00:26 · 24705 阅读 · 3 评论 -
【数据加密/脱敏】各种数据库、代码加密/解码的方法
本人菜鸡一只,阅读该文章之前,有句话我得先说一下:本文不是来介绍加密算法的,也不是来解释加密算法的过程的。如果本意想研究加密算法的实现,或者概念。不好意思本文可能啰哩叭嗦还帮不上忙!前言:数据加密,也就是数据脱敏。其实就是将一些涉及不是本人就不该看的字段数据通过某些方法,让别人就算拿到了数据也看不懂或者解析不出关键信息。当然加密总体上分两种,一种是可还原,一种是不可还原(当然只是相...原创 2018-12-13 00:43:31 · 5700 阅读 · 1 评论 -
【spark】存储数据到hdfs,自动判断合理分块数量(repartition和coalesce)(一)
本人菜鸟一只,也处于学习阶段,如果有什么说错的地方还请大家批评指出!首先我想说明下该文章是干嘛的,该文章粗略介绍了hdfs存储数据文件块策略和spark的repartition、coalesce两个算子的区别,是为了下一篇文章的自动判断合理分块数做知识的铺垫,如果对于这部分知识已经了解,甚至精通的同学,可以直接跳到该系列的第二篇文章!背景:spark读取Hive表或者HDFS甚至各种框...原创 2018-12-13 19:24:58 · 6610 阅读 · 0 评论 -
【spark】存储数据到hdfs,自动判断合理分块数量(repartition和coalesce)(二)
本人菜鸡一只,如果有说的不对的地方,还请批评指出! 该系列暂有2篇文章(本文为第2篇):【spark】存储数据到hdfs,自动判断合理分块数量(repartition和coalesce)(一):https://blog.csdn.net/lsr40/article/details/84968923【spark】存储数据到hdfs,自动判断合理分块数量(repartition和coa...原创 2018-12-20 17:56:35 · 2529 阅读 · 1 评论 -
用idea在Windows下构建spark2.2.0的环境
首先,本人菜鸡一只,如果有说的不对的地方,还请各位指点指点!如果有什么问题也可以相互交流,给我留言或者私信说明下,之前的环境是:jdk-1.7,scala-2.10.4,spark-1.6.1,开发工具是idea然后鄙人想测试下最新的spark2.2.0的版本因此基于之前的环境配置了些新的东西:这是新的版本jdk-1.8.0_77,spark-2.2.0,scala原创 2017-12-01 14:14:35 · 7760 阅读 · 7 评论