自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

原创 【spark】行列互转的思考

本文基于一个具体的案例,介绍spark中case when,stack,lateral view explode,pivot的用法,并做一些性能上的比较一、背景群里有个小伙伴出了一道题目是行转列(多行数据转成多列数据)如图,把上表的数据通过sql变成下表的数据当然实现方法还是比较多的,我也想了几种方式,并随便搞了2.5亿条数据测试下性能(表格式是text,每个文件块大小都很均匀)二、实现方法不同引擎里,会有不同的函数或者语法做行列的转换,我这里就针对spark引擎.

2022-03-11 01:03:11 4435

原创 【Hadoop】Dfs-Fuse编译使用

一、背景dfs-fuse,可以将hdfs上的目录挂载到本地的目录,就可以直接通过linux的命令直接访问hdfs上的数据大多数云上的hadoop环境,或者下载别人编译好的包中,并没有fuse的相关脚本和命令因此我们要自己编译hadoop我是基于Hadoop2.8.5编译的hadoop编译中,遇到的问题还是挺多的,而且要安装一些其他的服务,会在本文中逐一说明二、准备环境hadoop的源码根目录下有个:BUILDING.txt里面详细描述了,需要什么环境1、cma

2022-01-09 16:13:55 2054 1

原创 【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 2437 5

原创 【数仓】拉链表(极限存储)

拉链表,我想做数仓的同学应该都是听过这个存储模式,拉链表的产生,源于维表存储中,如何存储和查询历史记录的问题当然本文不是来介绍概念的(如果后面我觉得有需要,我会单独整理一下),主要是看了《大数据之路:阿里巴巴大数据实践》中提到了“极限存储”的概念,然后讨论怎么具体实现!其实书中并没有说的很详细到底如何处理,我也搜了一些相关的文章,来帮助理解极限存储中月拉链表的存储和查询方法首先感谢以下几篇很棒的博文:拉链表是什么:https://www.kancloud.cn/grass1314521/d

2021-07-09 11:48:24 2645

原创 【Hadoop】RPC在client端的源码解析

我们从一段客户端的代码开始特别感谢:Hadoop RPC调用实例分析:https://blog.csdn.net/yexiguafu/article/details/107378511(作者:叹了口丶气)Hadoop 2.X HDFS源码剖析(作者:徐鹏)

2021-05-25 22:40:23 535 5

原创 【Shell】查询类在哪个jar包,SSH登录指定节点执行相同命令

本文就分享两个比较常用的Shell脚本1、查询类在哪个jar包在开发当中,我们经常会遇到NoClassDefFoundError或者ClassNotfoundException或者NoSuchMethodError,一般是类缺失,或者类的版本不对这时候我们就需要知道报错的那个类,在哪个jar包里,以此来定位错误,所以我就写了个脚本本质上就是用find命令,返回某个目录下的所有jar文件的列表(因为是find命令, 所以并不是只查当前目录,会一层一层往里面翻),然后传入到for循环中,通过ja

2021-05-18 14:44:17 414

原创 【Ranger】基于Ranger+LDAP的权限策略方案

本文并不是解决具体某些什么问题,更相当于一个解决方案,而且是各个云厂商相对通用的解决方案。当我们使用各个框架的时候,总有各种各样的权限,关系型数据库的权限可能相对比较好处理,大多数都是创建个账号,grant授权下增删改查的权限但是到了大数据领域,如hdfs的目录和文件的权限,hive中的表,hbase中的表,presto中的表等等相关的一堆框架权限又如何控制呢?这时候,我们需要2个东西,一个叫授权(Authorization),一个叫认证(Authentication)一、授权我们.

2021-05-10 15:58:22 4235 5

原创 【Flink】获取配置参数方式总结

一、背景以前写的比较多的是spark,传入外部参数,通常有两种方法:1、用main方法传入,代码中通过args获取(基本上只要是个java程序,就可以通过这种方式来传参)2、通过--conf 传入一个spark开头的key的配置,代码中通过sparkConf来获取对应的value(这个是spark独有的特性)那么flink如何读取properties,又如何读取外部传入的参数呢?二、正文1、main方法传入这个其实不用多说,就是:flink run -m yarn-clust

2021-04-24 01:00:33 6633 3

原创 【hadoop】HDFS块修复

背景HDFS场景下,有时候某些异常会导致丢失文件块!这时候,我们如何处理这些文件块,或者说这些文件块是否还有救?丢文件块是一种统一的说法,实际上是两种情况,一个是Corrupt blocks,一个是Missing replicas先说个背景知识:当我上传一个文件到HDFS,这个文件在HDFS上看得到,也可以正常使用,实际上在磁盘上会存两种类型的文件举例:1、blk_10737431192、blk_1073743119_2295.meta第一个文件就是实际上的数据,如果你的文件是文.

2021-03-25 22:24:47 5218 1

原创 【Netty】GlobalEventExecutor源码个人见解

一、背景这几天在看netty的源码,在看如下位置的时候,看到了创建一个监听器,然后看到了DefaultPromise和GlobalEventExecutor这两个类DefaultPromise看起来不会特别复杂,只是多了一些设置成功失败等方法,然后可以唤醒listener,做对应的处理,这里的用法,其实就是将监听器里执行的内容提交到GlobalEventExecutor这个类中做调用大家可以搜索下相关文章看看DefaultPromise,这个类不是本文的重点Netty 之 DefaultP

2021-02-16 17:19:24 779

原创 【Flink】SQL-Client运行yarn-session模式

flink有个sql-client.sh(如下的图,是从flink官网截图下来的)官网地址:https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sqlClient.html具体如何配置sql-client和各种框架集成, 我就不搞了,大家有兴趣研究下官网或者百度下,我就试了下集成hive具体如何配置,请看以下文章!flink 1.11.2-sql-client 集成hive:htt..

2021-02-01 21:20:22 7976 6

原创 【HBase】增量数据迁移

hbase数据迁移,不乏有许多好的文章比如:HBase 数据迁移方案介绍:https://blog.csdn.net/mnasd/article/details/97616460(转载者:mnasd)HBase集群数据迁移方案:https://blog.csdn.net/scgaliguodong123_/article/details/46761529(作者:李国东)其实方法很多是好事,但对于不太了解hbase的使用者来说也是一种折磨但是其实关键点在于,如何在我的老hbase.

2021-01-25 21:32:22 1390 3

原创 【Hive】升级元数据踩坑(mysql版本)

hive的版本更新得蛮快的,但是一般我们定好一个版本之后,就不太会升级,但是有时候想要用到一些新版本的特性,我们就需要升级hive的版本这就涉及到元数据迁移:有两种做法:1、写脚本https://blog.csdn.net/maotai_2010/article/details/52185822https://www.sohu.com/a/225997339_411876...

2021-01-20 17:20:51 2975

原创 【yarn】Yarn Capacity Scheduler配置(文末附上fair的链接)

本文是一篇设置CapacityScheduler的队列的Demo以前一直没有考虑过这个事情,作为一个数据开发,我只是拿到了我使用的队列,但是一直没有思考过,应该如何划分队列,所以接下来我会记录下CapacityScheduler和FairScheduler的Demo(FifoScheduler我就不说了,好像基本没什么公司用吧),当然这篇文章只记录CapacityScheduleryarn的队列有三种模式分别是先入先出,容量调度,公平调度,分别对应以下三个类,大家有兴趣可以阅读下源码or

2021-01-13 21:53:12 1056

原创 【Hadoop】resourcemanager.recovery.RMStateStore: State store operation failed

一、背景今天又碰见了一个很鬼的问题,yarn的ui上nodemanager都是active,而且资源也完全充足,但是我提交任务的时候就卡主了!而且是什么类型的任务都提交不了,相当于yarn的服务直接不可用,关键是什么参数都没有修改,也没有重启yarn服务,突然他就不行了二、查问题所以我第一反应是查看resourcemanager的日志(记得要查看active的那台)结果我看到了ERROR org.apache.hadoop.yarn.server.resourcemanager.r.

2021-01-08 17:19:11 1119 4

原创 【Hue】使用Hue调用Sqoop任务

首先这是一篇为了hue调用sqoop任务的路上,遇到问题解决问题的文章实话实说,我对Hue这个框架并不了解,只是遇到了这么一个问题,然后花了老大的劲才解决,感觉要记录下~一、背景:Hue调用Sqoop,其实是hue生成了一个oozie的任务,实际上调用sqoop的是oozie,然后oozie是先提交一个launcher到yarn上面,然后再通过launcher拉起一个sqoop的MapReduce任务,最后执行成功,听起来是不是很麻烦!我的sqoop命令是:(将hive的某张表导出.

2021-01-06 18:03:59 1239

原创 【数据同步】使用MMA同步Hive数据到maxcompute

这两天在验证通过MMA的工具将Hive上的数据同步到maxcompute中(遇到的问题还是挺多的,)https://github.com/aliyun/alibabacloud-maxcompute-tool-migratehttps://github.com/aliyun/alibabacloud-maxcompute-tool-migrate/blob/master/documents/HiveToMaxCompute_zh.mdhttps://www.aliyun.com/product/

2020-12-21 19:57:40 629

原创 【算法】数据结构:选择,冒泡,插入排序

一、需要思考的问题排序算法最好的时间复杂度应该是O(n),也就是说从头到位遍历一遍数据就能得到排好序的数据,但这不太可能实现(除非数据本身已经有序),现有的算法的平均时间复杂度只能于趋近O(n),今天来说三个O()的算法对于排序我们需要考虑如下几个问题:1、是原地排序算法吗(需要创建占用的空间来辅助排序吗)?2、是稳定排序算法吗稳定说的是,2个相同的数字被排序时候,前后顺序是否会被改变,如果被改变就是不稳定,如不不被改变就是稳定,为什么要有这个衡量指标?在真正软件开发中,我们要排序

2020-11-11 17:40:02 166

原创 【算法】数据结构:树结构(引言)

一、引言本文只是一个引子,来讲述树这种数据结构的一些入门点对于刚接触树这种结构的小伙伴,我们需要思考几个问题(我当年也有这样的疑问)?1、这种数据结构长什么样?2、有哪些基础概念是需要了解的?3、在编程中,用什么样的结构来存储树状结构?4、如何增删改查和遍历数据?5、既然已经有了看似万能的散列表+链表的数据结构,为什么还有树的结构出现,他解决了什么问题?二、数据结构以下这些制作精美的图片来自于王争老师的《算法与数据结构之美》,我只是搬运工!!!三、..

2020-11-09 16:54:29 325

原创 【数据库】报错:SQLException: Incorrect string value: ‘\xF0\x9F\x98\x80‘ for colum

在同步数据的时候,遇到了如标题这样的报错这得从mysql的utf8和utf8mb4说起(从盘古开天辟地说起)一、原因:mysql最早的utf8是3个byte组成的,但是有一些字符是4个byte组成的,比如现在各类短视频,交友平台用户昵称会使用的emoji表情符号,也就是说mysql中存这个昵称的字段如果是utf8的编码,那很可能就会报如上的错!二、解决:1、将字段改为utf8mb4提供不同的思路:(1)、新建utf8mb4的表,然后把数据导出再导入如何设置字符集,..

2020-10-09 18:06:53 1504

原创 【算法】数据结构:散列表(hash表)

一、引言说到散列表,其实在java中代表作就是HashMap应该说HashMap插入和查找的性能真的是很好,插入和查找时间复杂度就接近O(1)(当然如果是多线程场景,就要用ConcurrentHashMap来解决问题)二、数据结构以下这些制作精美的图片来自于王争老师的《算法与数据结构之美》,我只是搬运工!!!散列表有2个组成部分:1、散列函数(hash函数)将插入的数据,通过散列函数计算得到的值,插入到数组的固定位置中!问题在于,散列函数要...

2020-09-28 15:06:32 326

原创 【算法】数据结构:跳表

一、引言在排好顺序的数组中,要查找某个元素,我们可以通过二分法来快速查找,这其实依赖的是数组的随机访问的特性,我可以通过arr[6],来访问数组中的第七个元素(因为第一个元素下标是0),因此我就可以跳跃着访问数组中任意一个元素。但如果是普通的链表,第七个元素的地址,我只能通过第六个元素知道,第六个元素的地址我只能通过第五个元素知道,以此类推,我如果要查找链表中的任意一个元素,我都需要从头遍历,就使用不了二分法查找,那么对于链表这样的数据结构的快速查询,是否有合理的解决方案?有的,把链表变为跳表!

2020-09-23 21:30:51 229

原创 【算法】数据结构:队列

今天来介绍队列!打算边学习,边把数据结构和一些常用的算法整理下,文章大概都会按照,是什么,为什么,怎么样来写,不算科普文章,更多是自己的一些思考和想法,还有找到一些优质资源的分享!一、队列是什么?队列和栈一样,都是受限制的数据结构,记住一点:FIFO(first input firstoutput),先进先出,就和排队一样(火车站买票,前面的人先买完离开)所以队列提供的api,应该类似enQueue/add/offer:往队列中添加数据的方法deQueue/remove/pol..

2020-09-03 20:15:14 526

原创 【算法】数据结构:栈

本文并不着墨于栈的基础,更多的是基于栈的个人思考和使用的场景还有LeetCode上对应的题目一、栈是什么?栈这种数据结构,记住一点:FILO(first input last output),先进后出就像是枪的弹夹,先放入的子弹,会在最后被射出,就像是叠盘子,最晚放上来的盘子,因为在最上面所以会被我们先拿出来用。所以栈这种数据结构,是一种有限制的数据结构,我拿数据的时候,必须拿栈顶的数据,不能直接拿下面的(只能在数据的一端做删除和插入操作)二、为什么用栈?那么问题来了,既然..

2020-09-01 14:58:44 207

原创 【算法】单链表反转(LeetCode-206)

不多说废话,题目是这样子的题目:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?解决思路单链表反转,大家说有很多种办法,其实无非就是头插法的各种实现!1、通过循环2、通过递归解法方法一:循环头插法1、创建一个虚拟节点和创建一个临时指针temp2、将tem..

2020-08-26 21:18:10 210

原创 【数仓】数据存储格式的选择:Parquet与ORC

大家好,我终于又出现了!这次要讲讲数据存储格式的选择!平时呢,我也会加一些有的没有的交流群,主要还是日常潜水看看里面有没有大佬!然后就遇到了一个问题:hadoop上存储的数据,要进行查询,用什么格式存储更好?我下意识的反应是ORC,因为ORC的压缩比更高(文件能压缩的更小),但是转念一想,ORC和Parquet都是列式存储的格式,两者之间有什么区别呢?或者说在最开始选择数据存储格式的时候,我们需要关注哪些点呢?这另我陷入了沉思,开始在网上收集相关信息!一、orc和parquet的区别

2020-08-17 15:06:53 6595 4

原创 【kafka】为什么快(why‘s kafka so fast)?

大家好我又来了!我先提前说下,本文其实是比较早之前我整理给自己看的,那时候是看到外网有一篇文章说到这个事情,具体作者是谁我已经忘记了(因为原文已经访问不了,好像是因为域名过期了),但是其实大家直接搜索“why's kafka so fast”这样的关键字,还是可以找到不少转载的英文原文博客!外网原文地址:http://searene.me/2017/07/09/Why-is-Kafka-so-fast/这次来说说面试中时场被问到的kafka为什么快?kafka这个框架应该很多做流式数.

2020-07-07 15:49:15 404

原创 【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 1485 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 1411 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 4175 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 3916 2

原创 【java】获取线程池中的线程返回结果,Future和FutureTask的使用

本文会结合Future描述下线程池的使用场景最近因为换了工作,新工作需要更多的时间熟悉和上手,所以好久没有写文章了!不过其实也一直有在看一些东西,比如Netty,spark源码(其实以前有看过,但是太囫囵吞枣忘得差不多了),然后想起我以前写过一个线程池相关的文章,但是对于线程池的使用只是一笔带过,所以今天想具体来写写【java】线程池概念,如何使用线程池?:https://blog.csdn.net/lsr40/article/details/101428779案例:曾经...

2020-06-15 20:15:19 7164 1

原创 【数仓】数据仓库的指标库(五)

本文要来说说,数仓中的数据指标库数仓系列:【数仓】数据仓库的思考(一):https://blog.csdn.net/lsr40/article/details/105576047【数仓】数据仓库的建设(二):https://blog.csdn.net/lsr40/article/details/105639190【数仓】数据仓库的元数据管理(三):https://blog.c...

2020-05-02 18:03:13 9124 4

原创 【数仓】数据仓库的数据质量任务监控(四)

我想在本文说说数据质量,ETL任务管理和监控数仓系列:【数仓】数据仓库的思考(一):https://blog.csdn.net/lsr40/article/details/105576047【数仓】数据仓库的建设(二):https://blog.csdn.net/lsr40/article/details/105639190【数仓】数据仓库的元数据管理(三):https://...

2020-04-23 00:00:56 3972

原创 【数仓】数据仓库的元数据管理(三)

看了一些其他文章,有说定义的,有画图的,其中也不乏有一些很不错的文章但是其实没有一个统一的概念说明元数据管理的边界应该是什么,所以大家的做法会有所不同,有些元数据管理还会把数据质量模块也加入进来,有些可能是独立出来一个监控数据质量的模块,当然大家的目的都是想实现数仓的完整架构,只是各有各的方式和步骤~之前看过一句话,觉得很有意思:元数据管理其实就是解决,数据的哲学问题,我是谁,我...

2020-04-21 17:35:15 3448 2

原创 【数仓】数据仓库的建设(二)

前言:前文说了一些数据仓库的基础概念和模型,本文继续往下说吧!【数仓】数据仓库的思考(一):https://blog.csdn.net/lsr40/article/details/1055760471、数仓的目标(能完成什么事情)当工作中遇到以下的事情:-1.数据分层混乱,不知道从何查起-2.数据指标维度不统一,业务/数据分析部门要数据,只能找数据开发口口相传-2...

2020-04-20 18:59:18 2327

原创 【数仓】数据仓库的思考(一)

对于数仓的概念非常大非常广泛,而且也并没有绝对正确的架构,只是有一定的方法论,一定的前人总结留下来的理论,所以我也不知道我这个系列会更多久,会更多少,反正我就把我现在对于数仓的想法记录下来,以后如果有更深的理解,再说吧~1、什么是数据仓库这个百度也能找到答案,但是我想说的是我的观点。数仓应该是一种数据整合,数据治理,将数据做成一种服务,对外提供。什么叫数据整合,大家应该听过数据孤...

2020-04-17 15:06:41 2677 5

原创 【spark】自定义数据读取的InputFormat(异常:incorrect data check)

其实大多数场景下,各种大数据框架预定义的InputFormat(数据读取器)是够用的,除了一些比较特殊的情况,特殊的数据格式,我们才会需要自定义读取数据的方式。然后有一天,我在接入一个hdfs上gz格式数据的时候,遇到了一个报错:仔细看了报错,是输入流在read数据的时候,调用LineRecordReader的nextKeyValue方法报错了,百度了下,没有什么太准确的答案,大致来说...

2020-03-31 15:26:32 2600

原创 【spark】Spark Streaming写HDFS解决小文件问题思考

在实时的需求越来越高的当下,流式处理越来越重要。特别是有些需求,需要流式数据join静态数据来制造一些大宽表,提供不同维度的分析。然后往往这些数据我们会写到hdfs,但是写到hdfs就会遇到小文件的问题,其实我之前分享过批处理如何解决小文件的问题大家有兴趣可以去看看。【spark】存储数据到hdfs,自动判断合理分块数量(repartition和coalesce)(一):https:/...

2020-03-19 19:48:48 4394 13

原创 【spark】关于spark处理上百T数据清洗过滤的思考

我,菜鸡一只!本文会通过读取数据文件,外部传入参数,处理数据,保存数据,参数设置这几个点来宏观的说说我自己对于spark使用中的一些注意点继上一次写文章到现在好久了哦!工作上,数据的日常需求还是一直有的,然后我自己又想接一接java功能上的需求(多写写java代码提升自己的眼界),在这样的情况下,我的工作已经基本饱和了,结果突然领导说还要开个新的数据模型,年前要给测试反馈,所以12...

2020-02-12 18:57:44 2411 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除