- 博客(32)
- 收藏
- 关注
原创 教你如何搜索电影资源,再也不为没有电影资源烦心!
暑假来临之际,给大伙分享一波电影电视剧资源的查找~大夏天的就应该吹着空调,扣着手机,刷着电影,电视剧下面为大家分享下我平时是如何搜索一些资源的~~~~~一、电影天堂https://www.dydytt.net/index.htm这上面都是迅雷下载可以搜索的电影。大学的时候常用,上面资源也是比较多,更新也是比较快的二、公众号【每日乐享荐】,【小七分享君】等一些公众号的电影资源搜索。相对网页搜索会更方便点三、茶杯狐https://www.cupfox.com/主要是动漫综艺的一些电影电视
2021-06-08 20:58:42
11302
原创 Flink之窗口函数WindowFunction
前言本文主要讲解下窗口函数:ReduceFunction,AggregateFunction,ProcessWindowFunctionReduceFunction是个增量计算的算子,数据来一条算一条,要求入参和出参类型一致这个要求导致条件苛刻。没有aggregate好用~直接看代码:模拟订单,计算10s滚动窗口订单金额~~~使用起来比较简单的package com.realtime.flink.functionimport com.realtime.flink.dto.OrderDtoim
2021-03-30 23:43:59
313
原创 Flink自定义evictor
前言前一篇文章大概讲了下自定义Trigger窗口触发器,本文讲述下Evictor窗口数据驱逐器的使用。Evictor作用:用来剔除窗口中的数据。举个例子: 去统计订单中每个窗口中订单金额大于4的订单。这个正常情况下会用个filter或者flatmap算子去做过滤。为了演示效果也可以用evictor去实现~evictor中有两个方法:/** * Optionally evicts elements. Called before windowing function. * * @param
2021-03-30 23:05:28
470
原创 GlobalWindow之自定义Trigger (一)
前言之前看到GlobalWindow需要自己定义trigger,写了个测试用例简单实现了下。背景前面文章讲到了窗口,在窗口中我们一般都会去使用api中定义好的滑动滚动窗口等等。但在一些特殊场景下,我们需要自定义去实现窗口的定义以及窗口的触发。举个例子:如何去实现1min窗口的每10s输出一次该窗口的值。比如在10:00-10:10中每隔10s输出这个窗口的总和。Trigger今天主要讲下以下三个方法: /** * Called for every element that gets add
2021-03-29 00:45:15
563
3
原创 Flink 时间语义、水印、窗口
一、前言本文主要关于Flink1.12.0中关于时间语义,watermark,以及windows的一些使用和理解。二、背景准备重新梳理下flink的相关应用,以及flink源码解读,更深入的了解和学习下flink的使用。开始部分文章会写flink应用层的使用,以及一些代码例子。后面会针对源码进行一个剖析~~三、时间语义、watermark在flink中时间语义分为两种1、eventtime 事件时间,可以理解这条记录产生的时间 ,一般都是在记录的某个字段里。2、processtime 处理时间
2021-03-25 23:50:59
219
原创 Hiveserver2源码剖析---如何实现代理用户
一、前言本文主要关于基于hive2.3.6版本的hiveserver2源码部分剖析。二、背景前段时间做chdfs迁移,发现beeline连接hiveserver2的用户在hdfs创建的临时目录变成了hive。其中代理用户并未起效果,感觉chdfs有代理用户上的bug。然后翻看了下hiveserver2服务端和客户端连接的代码。(hive.server2.enable.doAs 已经设置为 true)正常情况下:代理用户不起效果:三、服务端启动1、Hiveserver2 public s
2021-03-22 23:24:19
1141
原创 maven仓库配置
一、前言本文主要关于maven环境安装,以及仓库配置。二、背景前段时间编译impala,由于impala版本比较老,pom文件里的一些仓库地址已经失效导致找不到jar包。然而对仓库配置不是特别了解,花费了不少的时间去研究如何配置。这里就关于maven常用的相关知识进行一个总结,方便日后使用~~三、maven环境搭建1、jdk环境Maven 3.3 要求 JDK 1.7 或以上Maven 3.2 要求 JDK 1.6 或以上Maven 3.0/3.1 要求 JDK 1.5 或以上2、mave
2021-03-20 14:44:26
635
原创 impala编译安装
前言本文主要关于Impala-cdh5-2.12.0_5.16.1 源码编译与安装~背景公司需要将hdfs迁移到腾讯云的chdfs。chdfs实现了hdfs的协议,可以按照数据实际内存来付费,会节省不少钱。然而在测试过程中发现impala并不兼容chdfs会上报不支持ofs。需要改动内核源码~。根据腾讯云同事提供的部分源码改动方案改完后,需要自己打包编译。下面大概记录下编译遇到的一些坑E0312 14:35:09.345242 358875 impala-server.cc:285] Current
2021-03-16 22:27:36
2487
3
原创 spark-sql idea远程调试
spark-sql idea远程调试1、在远程服务器启动spark-sqlspark-sql --verbose --driver-java-options “-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888”2、配置idea远程调试端口3、在idea代码处下断点即可进入。...
2021-01-31 23:36:06
607
原创 java-nio代码模拟
server:package com.io;import com.mysql.fabric.Server;import java.net.InetSocketAddress;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;import java.nio.channels.ServerSo...
2020-03-29 16:53:31
201
转载 java-IO
1、 java IO读写的底层流程用户程序进行IO的读写,基本上会用到系统调用read&write,read把数据从内核缓冲区复制到进程缓冲区,write把数据从进程缓冲区复制到内核缓冲区,它们不等价于数据在内核缓冲区和磁盘之间的交换。首先看看一个典型Java 服务端处理网络请求的典型过程:(1)客户端请求Linux通过网卡,读取客户断的请求数据,将数据读取到内核缓冲区。(2)...
2020-03-29 16:51:14
183
原创 hive--hive2es
–创建es索引PUT test{“settings”: {“number_of_shards”: 3,“number_of_replicas”: 2},“mapping”: {“_doc”: {“properties”: {“commodity_id”: {“type”: “long”},“commodity_name”: {“type”: “text”}}}}...
2020-03-24 14:02:00
352
原创 spark--度量系统代码模拟(java)
代码结构:Sink对比spark的SinkConsoleSink对比spark的consoleSinksource对比spark的SOurceASource对比ApplicationSourceMetricsSystem对比MetricsSystemsink代码public interface Sink { void start();}public class Con...
2020-03-23 22:52:06
128
原创 spark--度量系统
度量系统:在程序运行过程中对关键指标的一个记录。就是一个监控Spark的度量系统使用codahale提供的第三方度量仓库Metrics。1、代码结构:source:指的是这些监控指标的来源private[spark] trait Source { def sourceName: String def metricRegistry: MetricRegistry}private...
2020-03-23 22:45:50
267
原创 spark--服务总线代码模拟(java)
用java代码模拟监听器,监听事务触发。代码目录:event包定义事件,PersonEvent 相对类似spark的 SparkListenerEventpublic class PersonEvent {}public class EatEvent extends PersonEvent{};public class PlayEvent extends PersonEvent{...
2020-03-22 16:31:52
104
原创 spark-事件总线
1、CopyOnWriteArrayList:java的一个集合 implements List, RandomAccess, Cloneable, java.io.Serializable,写入时复制。当线程读的时候不上锁,写的时候进行上锁一份复制副本,写入改副本写完替换就对象。在写的过程中其他进程读的就是老数据。 public boolean add(E e) { fi...
2020-03-22 16:18:35
256
原创 mysql-死锁
背景:线上项目报数据库死锁ERROR 2020-03-20 12:05:00,151 ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restart...
2020-03-22 00:22:16
307
原创 JVM-内存溢出排查
背景:线上环境项目出现OMM,系统只能重启使用日志:java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:3236) at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:11...
2020-03-21 09:36:26
763
原创 Spark --从提交到执行任务相关代码流程
SparkSubmitSparkSubmit.main() --入口类SparkSubmit.submit() --提交方法,调用SparkApplication.startClientClientApp.start()–继承SparkApplication创建 ClientEndpointClientEndpoint.onStart() --向master请求启动driverMast...
2020-03-16 19:06:48
226
原创 spark-dagscheduler-handleJobSubmitted
private[scheduler] def handleJobSubmitted(jobId: Int, finalRDD: RDD[_], func: (TaskContext, Iterator[_]) => _, partitions: Array[Int], callSite: CallSite, listener: ...
2020-03-16 17:22:35
230
原创 线程池
线程池1、为什么要用线程池。在多线程的情况下,系统频繁开启关闭线程会造成大量的资源浪费,成本很高,同时有导致系统崩溃的风险。 线程池理解为一个池子里面有一堆线程,用的时候拿一个,用完放回去。这样就避免了不断地开启关闭。。2、线程池分类。总共有四种比较常见的线程池 newCachedThreadPool ,newFixedThreadPool,newScheduledThreadPool,n...
2020-03-12 19:38:34
101
原创 JVM学习(二)
1、FullGC什么是fullgc:fullgc就是指清理堆中的young和old区。一般程序健康情况会只做YoungGC。fullgc情况会导致除了gc线程外的线程停止工作,代码静止,系统会大幅变慢。触发机制:1、system.gc()的调用,此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间...
2020-03-07 11:43:37
1731
转载 jstat命令
jstat命令查看jvm的GC情况 (以Linux为例) jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意!!!:使用的jdk版本是jdk8. 类加载统计: Loaded:加载cla...
2020-03-06 15:30:08
127
原创 JVM学习(一)
文章内容:一、JVM之堆区堆(Heap):是内存中最大的一块区域,程序中所有的对象实例都是存在这个地方。比如一个数组 int[] arr = {1,2,3,4…},该数组对象arr的值都是存在该区域。堆分为:新生代(其中有分为1个伊甸区,2个幸存区),老年代。虚拟机中默认分配比例:uintx InitialSurvivorRatio= 8uintx NewRatio= 2yo...
2020-03-05 23:41:34
134
原创 Spark-ShuffleManager
一、SortShuffleManager1、运行原理分为两种模式,1、普通模式:上图说明了普通的SortShuffleManager的原理。在该模式下,数据会先写入一个内存数据结构中,此时根据不同的shuffle算子,可能选用不同的数据结构。如果是reduceByKey这种聚合类的shuffle算子,那么会选用Map数据结构,一边通过Map进行聚合,一边写入内存;如果是join这种普通的...
2020-02-26 23:57:37
455
原创 Spark sql优化实战(一)
背景:夜间跑批越来越慢,核心链路无法准时完成跑批,需要对超长任务进行优化。案例一:create table tmp.tmp_test_d as select a.sku ,a.barcode ,a.tu_code ,a.buyer_...
2020-02-24 22:34:54
674
原创 Spark源码2.4.0(二)-- on yarn启动
spark提交有 三种模式看下其中的 on yarn cluster:一、在sparksubmit这个类中启动时回去初始化运行环境(prepareSubmitEnvironment) private def submit(args: SparkSubmitArguments, uninitLog: Boolean): Unit = { // 环境相关,部署模式提交模式 va...
2020-01-30 12:10:14
281
1
原创 Spark源码2.4.0(一)--driver注册启动
spark的提交过程:用户在客户端提交,客户端机器会找到master要求开启driver,master在他的worker节点找到符合条件的机器然后最终在这个worker启动driver。代码分析如下:入口类: sparksubmit def main(); def main(args: Array[String]): Unit = { val submit = new Spar...
2020-01-20 15:57:03
290
原创 scala中的Akka、Actor
一、Actor模型对并发编程模型进行了更高的抽象异步、非阻塞、高并发的事件驱动模型轻量级事件处理(1G可容纳百万级别个Actor)Actor可以理解为服务中的各个组件,他可以用来接收信息,处理信息,回复信息。actor之间是通过ActorRef来做信息的收发,每个actor会有个邮箱,actorref会往邮箱发送信息Actor System负责创建和管理Actor是单例的,而Actor是...
2020-01-18 16:41:37
321
原创 SparkToMysql分表推送
需求背景:线上千万级数据在离线批处理完成后,需要按指定字段分表推送方案思路:利用spark读取hive表数据,对数据按字段重分区,分区数据推送至不同的mysql表代码实现:1、// 解析配置文件,生成相关配置类2、spark部分```-------------------------spark-----------------------------val broad = sc.b...
2020-01-08 23:58:06
387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人