自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 腾讯面经|后台开发|一二三+HR面面经,已拿offer

​【背景】双非一本,软件工程大三在读,面试后台开发,去年8月开始准备,刷题 + 看书 + 视频项目:做了一个分布式的销售系统(主要是为了用一用SpringCloud的组件之类的),顺便实现了一下主从复制,负载均衡什么的,可以说是一个大杂烩的Demo部门:ieg 腾讯游戏【 一面(40分钟)】技术自我介绍两个数组,单个数组数据不重复,怎么找重复元素?说说思路就好冒泡排序说一说?插入排序说一说?你简历上写有一直刷题,给我看看你leetcode主页呗你项目上的主从复制怎么实现的?你

2022-04-13 12:12:50 1196

原创 字节面经|后端开发|一二三面|已OC|新鲜面经

字节面经|后端开发|一二三面|已OC|新鲜面经

2022-03-29 10:13:39 1727

原创 面试经验 | 腾讯WXG | 一二+面委+HR|已拿offer

面试经验 | 腾讯WXG | 一二+面委+HR|已拿offer

2022-03-27 10:58:32 1918

原创 字节面经|年薪70W|大数据|四面+定级面|已拿Offer

【引言】今天分享的是字节跳动-Data大数据开发岗位的面试经验。​拿到了年薪70​W的Offer​!对于大数据的同学有一定的参考意义一共5面,从投递简历到发放Offer,整体耗时在1个月左右。面试难度中等,需要一点算法能力(基本是剑指Offer原题)。面试的重点就是简历上的项目+常用的大数据框架基础知识。【一面 1.0h】基础1.自我介绍2.项目介绍3.数据仓库分层理论与设计4.数仓模型设计(雪花模型、星星模型、星座模型)5.维度退化6.缓慢变化维度的几种处理方式,优缺

2022-03-21 11:59:18 3081

原创 【LeetCode每日一题】242. 有效的字母异位词

【LeetCode每日一题】242. 有效的字母异位词一、题目二、题解方法一:排序方法二:哈希表一、题目原题地址:242. 有效的字母异位词二、题解方法一:排序1.思路及算法t 是 s 的异位词等价于「两个字符串排序后相等」。因此我们可以对字符串 s 和 t 分别排序,看排序后的字符串是否相等即可判断。此外,如果 s 和t 的长度不同,t必然不是 s 的异位词。2.代码/** * @author : lightupworld * @description: leetcode-c

2021-05-24 20:04:18 135

原创 【LeetCode每日一题】136. 只出现一次的数字

【LeetCode每日一题】136. 只出现一次的数字一、题目二、题解方法一:遍历数组+Map存储方法二:异或运算一、题目原题地址:136. 只出现一次的数字二、题解方法一:遍历数组+Map存储1.思路及算法遍历数组,存入map中,key是值,value是出现的次数。然后再遍历map,找出次数为1的。2.代码/** * @author : lightupworld * @description: TODO * @date 2021/5/20 19:13 */public

2021-05-21 15:06:12 137

原创 【LeetCode每日一题】剑指 Offer 03. 数组中重复的数字

【LeetCode每日一题】剑指 Offer 03. 数组中重复的数字一、题目二、题解方法一:遍历数组 + Map存储方法二:原地置换一、题目原题地址:剑指 Offer 03. 数组中重复的数字二、题解方法一:遍历数组 + Map存储1.思路及算法这是最常规的思路。由于只需要找出数组中任意一个重复的数字,因此遍历数组,遇到重复的数字即返回。为了判断一个数字是否重复遇到,使用集合存储已经遇到的数字,如果遇到的一个数字已经在集合中,则当前的数字是重复数字。2.代码/** * @auth

2021-05-20 18:01:15 133

原创 【LeetCode每日一题】3.无重复字符的最长子串

【LeetCode每日一题】3.无重复字符的最长子串一、题目二、题解方法: 双指针一、题目原题地址:3.无重复字符的最长子串二、题解方法: 双指针1.思路及算法这道题主要用到思路是:滑动窗口。什么是滑动窗口?其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列!如何移动?我们只要把队列的左边的元素移出就行了,直到满足题目要求!一直维持这样的队列,找出队列出现

2021-05-19 09:46:32 100

原创 万字细说Flink中的Watermark水位线

万字细说Flink中的Watermark水位线一、基本概念1.什么是Watermark2.Watermark的作用二、Watermark的引入1.assignTimestampsAndWatermarks2.TimestampAssigner2.1 AssignerWithPeriodicWatermarks2.2 AssignerWithPunctuatedWatermarks三、Watermark的三种使用情况四、EvnetTime在window中的使用(Scala版)1.滚动窗口(TumblingEv

2021-05-18 10:29:28 984

原创 【LeetCode每日一题】1. 两数之和

【LeetCode每日一题】1. 两数之和一、题目二、题解方法一:暴力枚举一、题目原题地址:1.两数之和二、题解方法一:暴力枚举1.思路及算法最容易想到的方法是枚举数组中的每一个数 x,寻找数组中是否存在 target - x。直接使用双重for循环两次遍历数组即可。当我们使用遍历整个数组的方式寻找 target - x时,需要注意到每一个位于 x之前的元素都已经和 x匹配过,因此不需要再进行匹配。而每一个元素不能被使用两次,所以我们只需要在 x后面的元素中寻找target - x。

2021-05-11 15:10:30 111

原创 万字细说Flink中Window原理与使用

万字细说Flink中Window原理与使用一、时间语义1.Flink中的时间语义2. 设置时间语义二、Window窗口1.Window概述2.Window简介2.1 滚动窗口(Tumbling Windows)2.2 滑动窗口(Sliding Windows)2.3 会话窗口(Session Windows)3.Window API3.1 TimeWindow(1)滚动窗口(2)滑动窗口(3)会话窗口3.3 CountWindow(1)计数滚动窗口(2) 计数滑动窗口3.4 Time Window

2021-05-08 20:35:07 781 4

原创 Flink常见报错

Flink常见报错1.任务在运行时开启CheckPoint配置1.任务在运行时开启CheckPoint配置报错 java.lang.Exception: Exception while creating StreamOperatorStateContext. at org.apache.flink.streaming.api.operators.StreamTaskStateInitializerImpl.streamOperatorStateContext(StreamTaskStat

2021-04-26 11:03:26 569

原创 Go学习笔记——第5章 数据(下)

第5章 数据(下)5.3 切片5.3 切片

2021-02-03 19:51:39 80

原创 Go学习笔记——第5章 数据(上)

第5章 数据5.1 字符串5.1 字符串字符串不可变字节(byte)序列,其本身是一个复合结构type string struct { str unsafe.Pointer len int}字符串的默认值是"",使用"`"定义不做转义处理的原始字符串。func main() { s := `line\r\n line2` pintln(str)}//运行结果line\r\n line2字符串 支持!=、==、<、>、+、+=操作符func

2021-01-26 14:36:58 81 1

原创 Go学习笔记——第4章 函数

第4章 函数4.1 定义4.2 参数4.3 返回值4.4 匿名函数4.5 延迟调用4.6 错误处理4.1 定义使用关键字 func定义函数。函数有一下特点:无须前置声明不支持命令嵌套定义不支持同名函数重载不支持默认参数支持不定长变参支持多返回值支持命名返回值支持匿名函数和闭包函数属于第一类对象,具备相同签名(参数以及返回值列表)的视作同一类型func main() { f := hello exec(f)}func hello() { println("hello,

2021-01-25 19:21:36 109

原创 Go学习笔记——第3章 表达式(下)控制流

Go学习笔记——第3章 表达式(下)控制流3.4 控制流3.4 控制流

2021-01-23 14:22:05 97 1

原创 Go学习笔记——第3章 表达式(上)

Go学习笔记——第3章 表达式(上)3.1 保留字3.2 运算符3.3 初始化3.1 保留字Go语言仅有25个保留关键字。保留关键字不能用作常量、变量、函数名以及结构体字段等标识符breakdefaultfuncinterfacecasedefergomapchanelsegotopackageconstfallthroughifrangecontinueforimportreturn3.2 运算符菜鸟:Go语言

2021-01-23 11:53:49 85

原创 Go学习笔记——第2章 类型

第二章 类型2.1 变量定义简短模式2.2 命令命名建议空标识符2.3 常量注:GO系列文章是 雨痕《Go语言学习笔记》的读书笔记,仅用于个人学习记录,侵权删。2.1 变量定义var x int //自动初始化为0var y = flase //自动类型推断为bool类型var x, y int //相容类型的多个变量var m, n = 100, "hello" //不同类型的初始化 简短模式简短模式的限制:​ ① 定义变量,同时显示初始化​ ② 不能提供数据类型

2021-01-20 14:38:40 124

原创 idea问题记录

idea问题记录一 常用快捷键一 常用快捷键查看类的继承关系ctrl + h查看类的属性和方法command + 7

2020-12-25 11:57:14 81

原创 Shlle面试题

Shlle面试题一、awk二、sed三、sort四、cut五、面试题一、awk二、sed三、sort四、cut五、面试题

2020-09-30 11:55:39 131

转载 Shell基础概览(下)

Shell基础概览(下)一、流程控制1. if-else2.for 循环3.while 语句4.无限循环5.until 循环6.case分支7.跳出循环二、重定向一、流程控制和Java、PHP等语言不一样,shell的流程控制不可为空,如(以下为PHP流程控制写法):<?phpif (isset($_GET["q"])) { search(q);}else { // 不做任何事情}在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else。

2020-09-29 18:18:09 93

转载 Shell基础概览(中)

Shell基础概览(中)一、运算符1.概览2.算术运算3.关系运算符4.布尔运算符5.逻辑运算符6.字符串运算符7.文件测试运算符一、运算符1.概览Shell 和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符-文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。例如,两个数相加(注意使用的是反引号 `而不是

2020-09-29 17:26:13 89

转载 Shell基础概览(上)

Shell基础概览一、Shell教程1.基础概念2.第一个shell脚本3.运行shell二、Shell变量1.定义变量2.使用变量3.只读变量4.删除变量5.变量类型三、Shell字符串1.单引号2.双引号3.字符串的操作四、Shell数组1.定义数组2.读取数组3.获取数组的长度五、Shell 注释1.单行注释2.多行注释六、参数传递注:本文源至Shell教程,仅用于个人学习,侵权删。一、Shell教程1.基础概念Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。S

2020-09-27 18:52:41 169

原创 Hive复杂日志数据类型的存储与解析

Hive复杂日志数据类型的存储与解析一、背景二、场景一1.日志格式2.Hive存储一、背景实际工作中会遇到很多复杂数据类型,尤其是离线日志中的嵌套json,本文列举几种常见的复杂格式,同时给出存储和解析方法。二、场景一1.日志格式给出两条日志数据如下:{ "device_id":"1", "event_name":"people", "event_values": "{ "search_word":"hui", "search_res":[192061100,819430

2020-09-24 17:21:25 823

原创 数据仓库——数仓分层

数仓分层一.分层的作用二、ODS (opreational data store)三、DWD(data warehouse detail)四、DIM五、DWS(data warehouse service)六、DM(data market)七、APP/ADS一.分层的作用数仓分层的目的是:逐层解耦,减少重复计算,降低烟囱式开发。越到底层,越接近业务发生的记录,越到上层,越接近业务目标。具体如下:①清晰数据结构:每一个数据分层都有它的作用域和职责,在使用表的时候能更方便地定位和理解,实现业务数据解耦

2020-09-21 19:01:13 8427 6

原创 Hive Sql中六种面试题型总结

Hive面试/经典练习题一、N日留存1.思路分析二、连续登陆1.数据准备2.思路分析三、 Top N一、N日留存1.思路分析按天留存率计算 就是指用户在首日新增后,在接下来的后推第N天活跃情况,用后推第N天活跃的用户 / 首日新增用户。就得到后推第N天的新增用户留存率。 留存率计算案例 1月1日,新增用户200人; 次日留存:第2天,1月2日,这200人里面有100人活跃,则次日留存率为: 100 / 200 = 50% 2日留存:第3天,1月3日;这200名新

2020-09-14 18:49:11 11072 10

原创 Hive窗口分析函数(案例详细讲解)

Hive窗口分析函数一、语法结构二、窗口函数三、Over从句四、分析函数五、COUNT、SUM、MIN、MAX、AVG详解1.数据准备参考资料一、语法结构分析函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置)over()函数中包括三个函数:包括分区partition by 列名、排序order by 列名、指定窗口范围rows between 开始位置 and 结束位置。我们在使用over()窗口函数时,over()函数中

2020-09-10 20:07:03 3064

转载 数仓建设流程

数仓建设流程一、数仓概览二、流程详解1.梳理业务流程2.垂直切分,划分主题域3.梳理指标体系4.表实体关系调研5.维度梳理4.数仓分层7.物理模型建立三、tipis注:本文转至 如何搭建一个数据仓库,仅用于个人学习,侵权删。一、数仓概览整体建设建设过程数仓建模的过程分为业务建模、领域建模、逻辑建模和物理建模,但是这 些步骤比较抽象。为了便于落地,我根据自己的经验,总结出上面的七个步骤:梳理业务流程、垂直切分(划分主题域)、指标体系梳理、表实体关系调研、维度梳理、数仓分层以及物理模型建立。每

2020-09-10 15:26:35 11720 3

转载 数据仓库与数据集市建模

数据仓库与数据集市建模一、前言二、数据仓库(data warehouse)1. 操作型数据库(OLTP) VS 分析型数据库(OLAP)2.数据仓库定义三、数据集市(data mart)四、维度建模的基本概念五、 维度建模的三种模式(模型)1.星型模式(模型)2.雪花模式(模型)3.星座模式(模型)4.三种模式对比六、更多可能的事实属性七、经典星座模型1.共享维度2. 细节/聚集事实表八、缓慢变化维度问题九、规范化数据仓库十、独立数据集市十一、两种数据仓库建模体系对比注:本文转自数据仓库与数据集市建模,仅

2020-09-10 12:16:18 1603

原创 Apache Atlas数据治理和元数据框架

概述场景架构原理使用安装

2020-09-10 11:02:11 1218 7

转载 Spark指南——第六章:Spark性能调优——高级篇(2)

Spark性能调优——高级篇(2)一、前言二、数据倾斜1.数据倾斜发生时的现象2.数据倾斜发生的原理3. 如何定位导致数据倾斜的代码①某个task执行特别慢的现象②某个task莫名其妙内存溢出的现象4.查看导致数据倾斜的key三、数据倾斜的解决方案1.解决方案一:使用Hive ETL预处理数据2.解决方案二:过滤少数导致倾斜的key3.解决方案三:提高shuffle操作的并行度4.解决方案四:两阶段聚合(局部聚合+全局聚合)5.解决方案五:将reduce join转为map join6.解决方案六:采样倾斜

2020-09-09 19:55:37 252

转载 Spark指南——第六章:Spark性能调优——基础篇(1)

Spark性能调优——基础篇一、前言二、调优概述三、开发调优1.原则一:避免创建重复的RDD2.原则二:尽可能复用同一个RDD3.原则三:对多次使用的RDD进行持久化4. 原则四:尽量避免使用shuffle类算子5.原则五:使用map-side预聚合的shuffle操作(算子)6.使用高性能的算子7.原则七:广播大变量8.原则八:使用Kryo优化序列化性能原则九:优化数据结构四、资源调优1.num-executors2.executor-memory3.executor-cores4.driver-memo

2020-09-09 16:41:52 337

转载 Spark指南——第五章:Spark内核解析(2)

第五章:Spark内核解密(2)一、Spark Shuffle二、内存管理一、Spark Shuffletodo二、内存管理

2020-09-07 19:23:51 188

原创 Spark指南——第五章:Spark内核解析(1)

第六章:Spark内核解密todo

2020-09-07 15:43:01 230

原创 Spark指南——第四章:SparkStreaming编程

SparkStreaming编程todo

2020-09-07 15:38:33 107

原创 Spark指南——第三章:SparkSQL编程——DataSet(3)

SparkSQL编程——DataSet(3)一、DataSet一、DataSettodo

2020-09-04 18:44:30 326

原创 Spark指南——第三章:SparkSQL编程—— DataFrame(2)

SparkSQL编程(1)一、SparkSession二、DataFrame1.创建DataFrame①通过数据源创建DataFrame②从RDD转换创建DataFrame1.方式一:Case Class方式2.方式二:createDataFrame方式③从Hive Table查询创建2.使用SQL风格编程① 对DataFrame创建一个临时表② 对创建的people表进行SQL查询3.使用DSL(Domain Specific Language)风格编程① 查看Schema② 指定列查询③ 限制条件查询④

2020-09-04 10:47:40 411

原创 Spark指南——第三章:SparkSQL概述(1)

SparkSQL概述(1)一、SparkSQL概述二、DataFrame三、Dataset:类型安全的结构化API四、DataFrame与 Dataset的比较一、SparkSQL概述我们知道Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序的复杂性,但是由于Hive基于MapReduce进行处理,在该过程中大量的中间磁盘落地过程消耗了大量的I/O,这大大降低了运行效率。所有Spark SQL的应运而生,它是将Spark SQL转换成R

2020-09-03 12:59:46 214

原创 Spark指南——第二章:SparkCore——RDD编程(2)

SparkCore——RDD编程(2)一、编程模型二、RDD编程三、创建RDD①并行集合创建RDD②外部存储创建RDD四、转换操作(transform)1.Vaule类型的转换操作① distinct② filter(func)③ map(func)④ flatMap(func)⑤ mapPartitions(func)⑥ mapPartitionsWithIndex(func)⑦ groupBy(func)⑧ coalesce、repartition⑨ sortBy(func,[ascending], [

2020-09-02 17:18:07 247

原创 Spark指南——第二章:SparkCore——RDD概述(1)

SparkCore——RDD概述(上)一、RDD概述二、RDD的属性1.RDD分区(Partitions)2.RDD分区计算函数3.RDD依赖关系(Dependencise)4.RDD 分区函数Partitioner5. RDD优先位置(Preferred Locations)三、RDD特点四、RDD的使用说明1.优先使用结构化API2.何时使用RDD五、RDD的弹性解读(扩展)1.自动进行内存和磁盘数据存储的切换2. 基于Lineage 血统 的高效容错机制3. Task如果失败,会自动进行特定次数的重试

2020-08-31 19:11:16 242

空空如也

空空如也

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

TA关注的人

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