- 博客(150)
- 资源 (9)
- 收藏
- 关注
转载 hive中select排除某些列名
排除num列set hive.support.quoted.identifiers=none;select`(num)?+.+`from (select row_number() over (partition by uid order by pay_time asc) as num ,* from order) first_orderwhere num = 1;排除num和uid列set hive.support.quoted.identifiers=n...
2021-06-04 18:28:33 1989
转载 Flink 实时去重方案
转载自:https://gitbook.cn/books/5e4a6cc338499d0e64018856/index.html相关文章:https://www.it610.com/article/1289782251390836736.htm去重计算是数据分析业务里面常见的指标计算,例如网站一天的访问用户数、广告的点击用户数等等,离线计算是一个全量、一次性计算的过程通常可以通过 distinct 的方式得到去重结果,而实时计算是一种增量、长期计算过程,我们在面对不同的场景,例如数据量的大小、计算结
2020-12-17 12:00:31 2043
转载 真正让你明白Hive参数调优系列1:控制map个数与性能调优参数
转载自;https://blog.csdn.net/qq_26442553/article/details/99438121本系列几章系统地介绍了开发中Hive常见的用户配置属性(有时称为参数,变量或选项),并说明了哪些版本引入了哪些属性,常见有哪些属性的使用,哪些属性可以进行Hive调优,以及如何使用的问题。以及日常Hive开发中如何进行性能调优。1.Hive有哪些参数,如何查看这些参数Hive自带的配置属性列表封装在HiveConfJava类中,因此请参阅该HiveConf.java文件以获
2020-09-22 16:41:02 533
转载 Hive设置map和reduce的个数
一、控制hive任务中的map数: 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改); 举例: a) 假设input目录下有1个文件a,大小为780M,那么hadoop会将该文件a分隔成7个块(6个128m的块和1个12m的块),从而产生7个map数。 b) 假设in...
2020-08-11 10:19:58 1123
原创 java异步编程历史概述
1.Java5.0之前主要是通过Thread类,Runnable接口实现,主要的缺点是无法拿到异步线程的返回值,以及异常处理new Thread(()-> System.out.println("111111"),"java5").start();2.java5.0增加Future,Callable。主要缺点阻塞式编程,无法进行多个异步线程之间的操作,无法异常处理ExecutorService executorService = Executors.newSingleThreadExe
2020-05-26 15:39:24 222
转载 Flink Broadcast State实用指南
转载自:https://blog.csdn.net/wflh323/article/details/102918111https://yq.aliyun.com/articles/706760 使用过spark的人都知道广播变量这个概念。广播变量相当于一个共享变量,将一个小数据集复制分发到每个task,task直接从本地读取。flink中有两种广播变量,一种静态...
2020-03-23 15:53:44 538
转载 Flink on yarn应用部署
转载:https://blog.csdn.net/MrZhangBaby/article/details/87797333随着物联网lOT的到来,万物连接一切,使得各大企业的数据也会井喷的增加。传统的大数据处理架构已经无法满足当前企业的发展,这个时候流式架构的出现,让企业的数据能够在较短的时间内处理快速响应迭代,满足企业各种场景下的不同需求。Flink的到来,很好的解决了这种问题。Flink是...
2020-03-13 13:54:45 345
转载 快速排序(java实现)
高快省的排序算法有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放...
2019-11-04 14:50:52 140
原创 经典:计算第几日留存
需求一:计算新增用户的第1,2,3,4,5,6,7,14,30留存下面一个语句搞定:select datestr,project,owner,country,appvsn,mname,count(1) from (select project,substr(status['firstVisit'].value,0,8) datestr,date_diff(substr(s...
2019-11-04 14:29:28 250
转载 深入理解ReentrantLock与Condition
锁的概念从jdk发行1.5版本之后,在原来synchronize的基础上,增加了重入锁ReentrantLock。转载自:https://www.cnblogs.com/superfj/p/7543927.html本文就不介绍synchronize了,有兴趣的同学可以去了解一下,本文重点介绍ReentrantLock。锁是什么?并发编程的时候,比如说有一个业务是读写操作,那多个...
2019-08-23 13:33:10 351
原创 高并发架构演变历史
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。 Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服务...
2019-08-15 15:44:25 620
原创 分布式-微服务-集群的区别
1.分布式将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。注:分布式需要做好事务管理。分布式事务可参考:微服务架构的分布式事务解决方案2.集群模式集群模式是不同服务器部署同一套服...
2019-08-15 15:42:35 111
转载 Scala | 字符串揭秘
转载自:http://songkun.me/2018/05/14/scala-string-ops/String源码剖析Scala 中的String其实仅仅是java.lang.String的别名,在scala.Predef中可以找到其定义: 1 type String = java.lang.String 明明 Scala...
2019-07-25 11:40:29 759
转载 Hive sql exlain读取详解
参考:https://www.cnblogs.com/NightPxy/p/9230253.html1.hive 语句执行顺序from... where.... select...group by... having ... order by...执行计划Map Operator Tree:TableScan alias: 表名 -- 相当于 fr...
2019-07-04 20:21:45 408
原创 Spark参数调优
请带着下面的疑问读本博客,如果可以了解,请绕行别处!!!下面4个参数代表什么意思,相互之间什么关系?1.spark.executor.memory2.yarn.scheduler.maximum-allocation-mb3.spark.yarn.executor.memoryOverhead4.spark.executor.extraJavaOptions -XX:MaxDire...
2019-07-04 11:22:23 1531
转载 Spark性能优化:shuffle调优
转载自:https://blog.csdn.net/u012102306/article/details/51637732shuffle调优调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影...
2019-06-28 12:52:24 171
转载 Java垃圾回收机制
JVM好文章:https://www.infoq.cn/article/3WyReTKqrHIvtw4frmr3?utm_source=rss&utm_medium=articlehttps://blog.csdn.net/coderlius/article/details/79272773:https://www.javazhiyin.com/36101.html...
2019-06-21 18:58:05 190
转载 hive set 常用参数汇总
转载自:https://www.cnblogs.com/Allen-rg/p/10769924.htmlhttps://www.cnblogs.com/sandbank/p/6408762.html1、 set hive.auto.convert.join = true;mapJoin的主要意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的tabl...
2019-06-10 17:51:08 7231
转载 spark调优
转载自:https://blog.csdn.net/lw_ghy/article/details/52946136spark.driver.extraJavaOptions -XX:PermSize=128M -XX:MaxPermSize=256Mcluster模式:spark.driver.extraJavaOptions -XX:PermSize=1024M -XX:MaxPerm...
2019-06-10 15:50:18 403
转载 Hive之COUNT DISTINCT优化
问题描述COUNT(DISTINCT xxx)在hive中很容易造成数据倾斜。针对这一情况,网上已有很多优化方法,这里不再赘述。但有时,“数据倾斜”又几乎是必然的。我们来举个例子:假设表detail_sdk_session中记录了访问某网站M的客户端会话信息,即:如果用户A打开app客户端,则会产生一条会话信息记录在该表中,该表的粒度为“一次”会话,其中每次会话都记录了用户的唯一标示u...
2019-06-06 19:15:44 467
转载 spark sql执行计划分析(二)
本文所述内容均基于 2018年9月17日 Spark 最新 Release 2.3.1 版本。后续将持续更新Spark CBO 背景上文Spark SQL 内部原理中介绍的 Optimizer 属于 RBO,实现简单有效。它属于 LogicalPlan 的优化,所有优化均基于 LogicalPlan 本身的特点,未考虑数据本身的特点,也未考虑算子本身的代价。本文将介绍 CBO,它充...
2019-05-30 19:11:16 1559
转载 学习spark sql执行计划(一)
学习连接:https://blog.csdn.net/zyzzxycj/article/details/82704713http://www.jasongj.com/spark/rbo/本文所述内容均基于 2018年9月10日 Spark 最新 Release 2.3.1 版本。后续将持续更新Spark SQL 架构Spark SQL 的整体架构如下图所示从上图可...
2019-05-30 19:10:00 4024
转载 JDK8函数式接口Function、Consumer、Predicate、Supplier
转载自:https://blog.csdn.net/z834410038/article/details/77370785备注1:观察发现,函数式接口下共有1、三种方法1.1唯一的抽象方法1.2 使用default定义普通方法(默认方法),通过对象调用。实现接口后,因为默认方法不是抽象方法,所以可以不重写,但是如果开发需要,也可以重写 。当然如果接口中的默认方法不能满...
2019-05-24 21:37:59 138
原创 Json从入门到精通
1. json数据类型类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组 Object 对象 null 空值 (1)json中不区分整数、小数等类型,而统一使用Number来存储数字。(2)Array表示数组,以中括号"[]"括起来,元素之间以逗号分隔,元素可以为任意类型。...
2019-05-23 17:05:03 1462
转载 JDK1.8-Stream()使用详解
为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集...
2019-05-20 17:00:04 169
转载 JDK1.8中的Lambda表达式和Stream
Java8最值得学习的特性就是Lambda表达式和Stream API,如果有python或者javascript的语言基础,对理解Lambda表达式有很大帮助,因为Java正在将自己变的更高(Sha)级(Gua),更人性化。--------可以这么说lambda表达式其实就是实现SAM接口的语法糖。lambda写的好可以极大的减少代码冗余,同时可读性也好过冗长的内部类,匿名类。先列举...
2019-05-20 16:56:25 441
转载 设计模式之策略模式
转载自:https://blog.csdn.net/qdjdeveloper/article/details/73385636这里我们还是用《Head First》一书中的例子来进行讲解,一步步来引出策略模式,在前几篇文章中我们分别分享了设计模式入门和单例模式以及非常重要的观察者模式,如果需要大家可以去看看,今天我们来由浅入深的一起来看看策略模式,看看策略模式的定义,在实际编码的过程中能...
2019-05-17 19:29:01 110
转载 最详细的Log4J使用教程
转载自:https://blog.csdn.net/u013870094/article/details/79518028地址:http://www.codeceo.com/log4j-usage.html日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j...
2019-05-17 16:57:41 115
转载 初识Scala反射
我们知道,scala编译器会将scala代码编译成JVM字节码,编译过程中会擦除scala特有的一些类型信息,在scala-2.10以前,只能在scala中利用java的反射机制,但是通过java反射机制得到的是只是擦除后的类型信息,并不包括scala的一些特定类型信息。从scala-2.10起,scala实现了自己的反射机制,我们可以通过scala的反射机制得到scala的类型信息。scala反...
2019-05-14 17:52:30 223
转载 Java并发编程:Timer和TimerTask(转载)
下面内容转载自: http://blog.csdn.net/xieyuooo/article/details/8607220 其实就Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类,而具体的TimerTask需要由你自己来实现,例如这样: 1 2 3 4 5 6 Timer ti...
2019-05-13 17:29:10 93
转载 Java并发编程:Callable、Future和FutureTask
在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务...
2019-05-13 17:28:15 117
转载 Java并发编程:线程池的使用
在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? 在Java中可以通过线程池来达到这样的...
2019-05-13 17:27:21 150
转载 Java并发编程:阻塞队列
在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工具都为我们编写多线程程序提供了很大的方便。今天我们来讨论另外一类容器:阻塞队列。 在前面我们接触的队列都是非阻塞队列,比如PriorityQueue、LinkedList(LinkedList是双向链表,它实现了De...
2019-05-13 17:26:22 103
转载 ava并发编程:并发容器之ConcurrentHashMap(转载)
下面这部分内容转载自: http://www.haogongju.net/art/2350374 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价就是严重降低了并发性,当多个线程竞争容器时,吞吐量严重降低。因此Java5.0开始针对多线程并发...
2019-05-13 17:25:25 111
转载 Java并发编程:同步容器
为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。 以下是本文的目录大纲: 一.为什么会出现同步容器? 二.Java中的同步容器类 三.同步容器的缺陷 若有不正之处请多多谅解,并欢迎批评指正。 请尊重作者劳动成果,...
2019-05-13 17:24:06 101
转载 Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来...
2019-05-13 17:23:00 135
转载 Java并发编程:Lock
在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述。本文先从synchronize...
2019-05-13 17:21:15 88
转载 Java并发编程:synchronized
虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解决线程安全问题? 三.synchronized同步方法或者同步块 若有...
2019-05-13 17:00:30 80
转载 Java并发编程:Thread类的使用
以下是本文的目录大纲: 一.线程的状态 二.上下文切换 三.Thread类中的方法 若有不正之处,请多多谅解并欢迎批评指正。 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3920357.html一.线程的状态 在正式学习Thread类中的具体方法之前,我们先来了解一下线程有哪些状...
2019-05-13 16:40:14 97
转载 shell脚本利用mysqldump进行自动化导出指定表数据文件
转载自:https://blog.csdn.net/u013946356/article/details/84992288说明:前面博客写过利用into outfile和load data更新数据表数据的方法,有些朋友问了我关于本文讲的mysqldump和之前的into outfile和load data的区别,在这里也简单地说一下:mysqldump适应于将要导出整个数据库或者某一个数据...
2019-04-26 18:01:18 404
scikit-learn学习笔记
2017-05-12
Google-Guava-Collections-使用介绍
2017-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人