- 博客(31)
- 资源 (4)
- 收藏
- 关注
原创 Flink面试题
关于spark和flink我可能会问这20个问题,当然并不是说简单回答一下就可以了,每一个题都可以引申很多问题,拿第一个问题来说,里面还有很多东西,比如spark的依赖关系是存在什么地方?RDD的宽窄依赖划分等? 因为你如果什么问题都问,问三天三夜都问不完,所以一定有针对性,而且后面一定会有模拟场景现场编程的问题,因为上面的问题都是偏原理的,你不会你也可以背下来,但是编程就考验你的真实水平了,比如给你一个实时计算的场景,让你写出主要的代码实现.这也是为什么我在星球里面很少分享原理性的东西,更多的怎么解决真实
2020-05-17 20:17:21
5487
1
原创 运行时数据区域
运行时数据区域根据 <Java虚拟机规范>的规定, Java 虚拟机所管理的内存将包括以下几个部分:堆 Heap。虚机机栈 VM Stack。本地方法栈 Native Method Stack。方法区 Method Area。程序计数器 Program Counter Register。运行时区域程序计数器 Program Counter Register程序计数器是 每个线程独有的,是一块比较小的内存区域,他可以理解为当前线程所执行的字节码的行号的指示器。Java的多
2020-05-17 20:15:37
259
原创 为什么要了解垃圾回收与内存分配?
为什么要了解垃圾回收与内存分配?当需要排查出各种内存溢出,内存泄露问题时,当垃圾收集成为系统达到更高并发的瓶颈时,就知道了解垃圾回收与内存分配的策略。垃圾回收算法垃圾回收要解决的首要问题,就是找出哪些对象有用,哪些对象无用,无用的对象就要被回收。比较常见的对象标明算法有引用计数器算法 和 可达性分析算法。引用计数器:原理是记录被引用了多少次,增加一次引用,值增1,减少引用,值减1,如果引用为0,说明对象可以被回收。该算法的效率高,原理也简单,但是不能解决 对象之间循环引用 的问题。可达性分析
2020-05-17 20:15:05
444
原创 类加载机制
类加载机制类是在运行期间第一次使用时动态加载的,而不是一次性加载所有类。因为如果一次性加载,那么会占用很多的内存。类的生命周期加载(Loading)验证(Verification)准备(Preparation)解析(Resolution)初始化(Initialization)使用(Using)卸载(Unloading)类加载过程包含了加载、验证、准备、解析和初始化这 5 个阶段。1. 加载加载是类加载的一个阶段,加载过程完成以下三件事:通过类的完全限定名称获取定义该类
2020-05-17 20:14:23
202
原创 hive优化实战
这里从四个方面对 Hive 常用的一些性能优化进行了总结。一 : 表设计层面优化利用分区表优化分区表 是在某一个或者几个维度上对数据进行分类存储,一个分区对应一个目录。如 果筛选条件里有分区字段,那么 Hive 只需要遍历对应分区目录下的文件即可,不需要 遍历全局数据,使得处理的数据量大大减少,从而提高查询效率。当一个 Hive 表的查询大多数情况下,会根据某一个字段进行筛选时,那...
2020-03-30 10:29:50
283
原创 java的模式
单例模式单例模式定义保证一个类仅有一个实例,并提供一个访问它的全局接口。单例模式的类图单例模式示例饿汉模式public class Singleton1 { private final static Singleton1 singleton = new Singleton1(); private Singleton1() { } public static Sing...
2020-03-30 10:18:46
151
原创 Spark Job Submit分析
Spark Job Submit1. Driver向Master注册Application过程val command = Command("org.apache.spark.executor.CoarseGrainedExecutorBackend", args, sc.executorEnvs, classPathEntries, libraryPathEntries, extraJavaO...
2020-03-29 18:01:41
408
原创 java面试语言基础
一、八种数据类型类型 大小 封装类 byte 1字节 Byte short 2字节 Short int 3字节 Integer double 8字节 Double float 4字节 Float char 2字节 Caharacter long 8字节 Long bo...
2020-02-24 10:49:34
141
原创 谈谈算法
一、算法初体验int i=0,sum=0,n=100;for(i=1;i<=n;i++){ sum=sum+i}println(sum)对比高斯的算法int i=0,sum=0,n=100;sum=(1+n)*n/2println(sum)二、什么是算法算法就是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一...
2020-02-18 15:48:59
156
原创 数据结构和算法导论
一、什么是数据结构程序设计=数据结果+算法数据结构就是数据元素相互之间之间存在的一种或多种特定关系的集合二、逻辑结构和物理结构1、逻辑结构 数据对象中数据元素之间的相互关系2、物理结构 数据的逻辑结构在计算机中的存储形式三、四大逻辑结构1、集合结构:集合结构中的数据元素中除了同属于一个集合外,他们之间没有任何关系2、线性结构:线性结构...
2020-02-18 10:19:36
420
原创 数据结构的那些事儿【未完结……】
一、什么是数据结构以某种特定的布局方式存储数据的容器。这种布局方式决定了数据结构对于某些操作是高效的。二、为什么需要数据结构数据是计算科学中最关键的实体,而数据结构则可以将数据以某种组织形式存储,因此,数据结构的价值不言而喻需要根据不同的场景,按照特定的格式进行存储,有很多数据结构能够满足不同格式存储数据的需求三、常见的数据结构1、数组2、栈3、队列...
2020-02-17 20:50:42
129
原创 datax实战-hive同步数据到mysql
{ "core": { "transport": { "channel": { "speed": { "record": "10000", "byte": 1048576 } } ...
2020-02-17 15:54:05
1975
原创 hive自定义udf函数实战
一、UDF相关概念udf函数,用户自定义函数,可以直接在sql语句中计算的函数优点:允许实现模块化的程序设计、方便修改代码、增加函数 UDF的执行速度很快,通过缓存计划在语句重复执行时降低代码的编译开销,比存储方法的执行效率更高 可用于减少网络流量UDF放入内存中,设计不当可能导致系统的崩溃,所以必须在必要的时候实施优化,对udf的优化是通过改写原来的udf代码实现,主要包括两种场...
2020-02-17 15:44:11
1412
原创 datax实战-mysql同步数据到hive
{ "job": { "setting": { "speed": { "channel": 1 }, "errorLimit": { "record": 0, "percentage": 0.02 ...
2020-02-17 15:39:01
2384
原创 spark算子reducebykey和groupbykey的对比
一、场景reducebykey和groupbykey作为经常使用的算子,都会触发shuffle操作1.reducebykey返回的k-v的tuple的rdd2.groupbykey返回的k-iterable的tuple的rdd二、源码解读这两个方法的底层都调用了combineByKeyWithClassTag这个方法groupbykey 调用reducebyk...
2020-02-11 16:42:31
392
原创 spark-streaming消费kafka写入hbase踩坑实战
场景otter同步mysql的数据到kafka,spark-streaming消费kafka,采用motator异步写hbase。mysql的insert,update,delete特别频繁,每秒都有大量的insert,delete,update以下都是基于同一条数据操作1. 坑 Delete(byte [] row), Put(byte[] row),bufferedmu...
2020-02-11 16:27:25
1108
原创 spark-streaming消费kafka写hbase代码实战调优
1、处理逻辑通过新增map集合来提升处理性能2、资源配置--executor-cores 3 \--num-executors 5\--executor-memory 2G \--driver-memory 2G \3、测试场景这个topic有15个分区,并且数据量挺大,所以需要15个core处理,从earliest消费写到测试表,4千万的数据量第三次...
2020-02-11 16:23:11
399
原创 hive写入Elasticsearch实战与性能
一、写入ES的映射add jar hdfs://****/user/hive/jar/elasticsearch-hadoop-6.6.1.jar; --注意jar包版本,不同elastic集群指定相应的版本jar包--关闭Hive推测执行SET hive.mapred.reduce.tasks.speculative.execution = false;SET mapreduce.m...
2020-02-11 15:25:44
1309
1
原创 hive sql练习一
背景数仓很火的情况下,sql是bi'xu必须要会的,这也是面试了好几家大厂都碰壁的问题,所以写个专题练练sql。一、建表//1、学生信息表hive> create table xcj_student (s_id string,s_name string,s_birth string,s_sex string) row format delimited fields termi...
2020-02-10 23:36:56
261
原创 hive sql练习二
1、有十万个淘宝店铺,每个顾客访问任意一个店铺时都会生成一条日志,访问日志存储表为visit,其中访问用户ID字段名称为uid,访问店铺的字段名称为store,请统计每个店铺的uvselect store,count(distanct uid) as uv from visit group by store;2、有一亿个用户,被存储在表User中,其中用户唯一字段Uid,用户年龄age和用...
2020-02-10 23:36:08
516
原创 spark整合kafka实战
一、如何实现sparkstreaming从kafka中读取数据1、在kafka0.10版本之前有两种方式,一种是基于receiver,一种是direct <1>、receiver:是采用kafka高级api,利用receiver接收器来接收kafka中topic的数据,从kafka接收来的数据会存储在spark的executor中,之后sparkstreaming提交的jo...
2020-02-10 21:16:32
364
原创 spark经典面试题
一、什么是宽依赖,什么是窄依赖,哪些算子是宽依赖,哪些是窄依赖1、宽依赖:一个分区对应多个分区,这就表明有shuffle过程,父分区数据经过shuffle过程的hash分区器划分子rdd。例如:groupbykey reducebykey sortbykey等操作,shuffle可以理解为数据从原分区打乱重组到新分区2、窄依赖:一个分区对应一个分区,这个过程没有shuffle过...
2020-02-10 20:32:43
380
原创 flume和logstash的区别
一、flume架构Flume的配置是真繁琐,source,channel,sink1、source负责数据产生的搜集2、channel负责数据的存储持久化3、sink负责数据的转发二、logstashinput、filter、output1、input负责数据的输入2、filter负责对采集日志进行分析,提取字段,一般都是将关键字段提取放入es中检索分析3、...
2020-02-06 09:57:18
3070
1
原创 hive的数据存储格式
hive支持hadoop中的TextFile、RCFile、SequenceFile、AVRO、ORC、Parquet格式1、TextFile每一行都是一条记录,每行都以换行符\n结尾,数据不压缩,磁盘开销大,数据解析开销大,可以结合Gzip和Bzip2使用。这种方式,hive不会对数据切分,从而也不会对数据进行并行处理2、SequenceFile是一种二进制文件,使用方便、可以分割、可以...
2020-02-06 09:30:21
290
原创 spark的开窗函数实战
1、count(*)2、row_number() over()排序3、row_number() over(partition by……分区4、【开窗嵌套开窗】rank() over()5、dense_rank() over() 函数一、count(*) 得到所有专业下所有老师的访问数:valmiddleData:DataFrame=session.sql(...
2020-02-05 22:21:43
552
原创 HTTP和TCP的区别和联系
谈到几次面试,都问了http和tcp协议的相关知识,所以总结一下!!!一、基本概念1、手机能够使用联网功能是因为底层实现了TCP/IP协议 建立一个TCP连接需要经过"三次握手" 第一次握手:客户端发送sync(syn=j)包到服务器,并进入syn_send状态,等待服务器确认 第二次握手:服务器收到sync包,必须确认客户的syn(ack=j+1)...
2020-02-05 21:05:03
337
翻译 分布式Runtime
一、任务和算子链分布式计算中,flink会将算子(operator)的子task链式组成tasks,每个task由一个线程执行,把算子链化为tasks是一个非常好的优化,他减少了线程之间的通信和缓冲,而且能增加吞吐量降低延迟二、job Manager ,task managers clientsJobManager (也成为master)用来协调分布式计算,负责进行任务调度,协调chec...
2019-05-16 17:02:24
167
翻译 Flink 编程模型
一、抽象级别Flink提供了不同级别的抽象,以及开发流处理和批处理作业1、最底层的抽象仅仅提供了有状态流,通过过程函数(Process Function)嵌入到DataStream中 API中,用户可以自由的处理来自一个或者多个数据流的事件,并使用一致的容错的状态2、DataStream API(有界或者无界数据集)以及DataSet api无界数据集3、table API 以...
2019-05-16 16:34:13
194
原创 Flink 本地执行入门
一、maven依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <flink.version>1.6.3</flink.version> <java.version>1.8</j...
2019-05-15 21:55:49
623
原创 flink介绍
一、基于Flink spark和storm的对比storm、spark streaming、flink都是开源的分布式系统,具有低延迟、可扩展和容错性诸多优点,允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行,都提供了简单的API来简化底层实现的复杂程度。Apache Storm在Storm中,先要设计一个用于实时计算的图状结构,我们称之为拓扑(topolo...
2019-05-15 10:44:51
141
weka源码学习
2018-02-02
sparkStreaming实战学习资料
2018-02-02
ELK学习资料
2017-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人