<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[purisuit_knowledge的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/purisuit_knowledge</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; purisuit_knowledge]]></copyright><item><title><![CDATA[hive中select排除某些列名]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/117570464</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/117570464</guid><author>purisuit_knowledge</author><pubDate>Fri, 04 Jun 2021 18:28:33 +0800</pubDate><description><![CDATA[排除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_order
where num = 1;
排除num和uid列

set hive.support.quoted.identifiers=n...]]></description><category></category></item><item><title><![CDATA[Flink 实时去重方案]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/111312444</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/111312444</guid><author>purisuit_knowledge</author><pubDate>Thu, 17 Dec 2020 12:00:31 +0800</pubDate><description><![CDATA[转载自：https://gitbook.cn/books/5e4a6cc338499d0e64018856/index.html

相关文章：https://www.it610.com/article/1289782251390836736.htm

去重计算是数据分析业务里面常见的指标计算，例如网站一天的访问用户数、广告的点击用户数等等，离线计算是一个全量、一次性计算的过程通常可以通过 distinct 的方式得到去重结果，而实时计算是一种增量、长期计算过程，我们在面对不同的场景，例如数据量的大小、计算结]]></description><category></category></item><item><title><![CDATA[真正让你明白Hive参数调优系列1：控制map个数与性能调优参数]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/108735438</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/108735438</guid><author>purisuit_knowledge</author><pubDate>Tue, 22 Sep 2020 16:41:02 +0800</pubDate><description><![CDATA[转载自;https://blog.youkuaiyun.com/qq_26442553/article/details/99438121

本系列几章系统地介绍了开发中Hive常见的用户配置属性（有时称为参数，变量或选项），并说明了哪些版本引入了哪些属性，常见有哪些属性的使用，哪些属性可以进行Hive调优，以及如何使用的问题。以及日常Hive开发中如何进行性能调优。

1.Hive有哪些参数，如何查看这些参数

Hive自带的配置属性列表封装在HiveConfJava类中，因此请参阅该HiveConf.java文件以获]]></description><category></category></item><item><title><![CDATA[Hive设置map和reduce的个数]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/107929322</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/107929322</guid><author>purisuit_knowledge</author><pubDate>Tue, 11 Aug 2020 10:19:58 +0800</pubDate><description><![CDATA[一、控制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...]]></description><category></category></item><item><title><![CDATA[java异步编程历史概述]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/106357377</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/106357377</guid><author>purisuit_knowledge</author><pubDate>Tue, 26 May 2020 15:39:24 +0800</pubDate><description><![CDATA[1.Java5.0之前主要是通过Thread类,Runnable接口实现，主要的缺点是无法拿到异步线程的返回值，以及异常处理


new Thread(()-&gt; System.out.println("111111"),"java5").start();

2.java5.0增加Future，Callable。主要缺点阻塞式编程，无法进行多个异步线程之间的操作，无法异常处理


ExecutorService executorService = Executors.newSingleThreadExe]]></description><category></category></item><item><title><![CDATA[Flink Broadcast State实用指南]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/105050151</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/105050151</guid><author>purisuit_knowledge</author><pubDate>Mon, 23 Mar 2020 15:53:44 +0800</pubDate><description><![CDATA[转载自：

https://blog.youkuaiyun.com/wflh323/article/details/102918111

https://yq.aliyun.com/articles/706760  



  使用过spark的人都知道广播变量这个概念。广播变量相当于一个共享变量，将一个小数据集复制分发到每个task，task直接从本地读取。flink中有两种广播变量，一种静态...]]></description><category></category></item><item><title><![CDATA[Flink on yarn应用部署]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/104839658</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/104839658</guid><author>purisuit_knowledge</author><pubDate>Fri, 13 Mar 2020 13:54:45 +0800</pubDate><description><![CDATA[转载：https://blog.youkuaiyun.com/MrZhangBaby/article/details/87797333

随着物联网lOT的到来，万物连接一切，使得各大企业的数据也会井喷的增加。传统的大数据处理架构已经无法满足当前企业的发展，这个时候流式架构的出现，让企业的数据能够在较短的时间内处理快速响应迭代，满足企业各种场景下的不同需求。Flink的到来，很好的解决了这种问题。Flink是...]]></description><category></category></item><item><title><![CDATA[快速排序（java实现）]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/102896345</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/102896345</guid><author>purisuit_knowledge</author><pubDate>Mon, 04 Nov 2019 14:50:52 +0800</pubDate><description><![CDATA[高快省的排序算法

有没有既不浪费空间又可以快一点的排序算法呢？那就是“快速排序”啦！光听这个名字是不是就觉得很高端呢。

假设我们现在对“6 1 2 7 9 3 4 5 10 8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数（不要被这个名词吓到了，就是一个用来参照的数，待会你就知道它用来做啥的了）。为了方便，就让第一个数6作为基准数吧。接下来，需要将这个序列中所有比基准数大的数放...]]></description><category></category></item><item><title><![CDATA[经典：计算第几日留存]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/102824619</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/102824619</guid><author>purisuit_knowledge</author><pubDate>Mon, 04 Nov 2019 14:29:28 +0800</pubDate><description><![CDATA[需求一：计算新增用户的第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...]]></description><category></category></item><item><title><![CDATA[深入理解ReentrantLock与Condition]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/100036274</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/100036274</guid><author>purisuit_knowledge</author><pubDate>Fri, 23 Aug 2019 13:33:10 +0800</pubDate><description><![CDATA[锁的概念

从jdk发行1.5版本之后，在原来synchronize的基础上，增加了重入锁ReentrantLock。

转载自：https://www.cnblogs.com/superfj/p/7543927.html

本文就不介绍synchronize了，有兴趣的同学可以去了解一下，本文重点介绍ReentrantLock。

锁是什么？

并发编程的时候，比如说有一个业务是读写操作，那多个...]]></description><category></category></item><item><title><![CDATA[高并发架构演变历史]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/99639250</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/99639250</guid><author>purisuit_knowledge</author><pubDate>Thu, 15 Aug 2019 15:44:25 +0800</pubDate><description><![CDATA[当一个Web系统从日访问量10万逐步增长到1000万，甚至超过1亿的过程中，Web系统承受的压力会越来越大，在这个过程中，我们会遇到很多的问题。为了解决这些性能压力带来问题，我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段，我们会遇到不同的问题，通过搭建不同的服务和架构来解决。

　　Web负载均衡

　　Web负载均衡（Load Balancing），简单地说就是给我们的服务...]]></description><category></category></item><item><title><![CDATA[分布式-微服务-集群的区别]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/99639029</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/99639029</guid><author>purisuit_knowledge</author><pubDate>Thu, 15 Aug 2019 15:42:35 +0800</pubDate><description><![CDATA[1.分布式



将一个大的系统划分为多个业务模块，业务模块分别部署到不同的机器上，各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。

上面：service A、B、C、D 分别是业务组件，通过API Geteway进行业务访问。

注：分布式需要做好事务管理。

分布式事务可参考：微服务架构的分布式事务解决方案

2.集群模式



集群模式是不同服务器部署同一套服...]]></description><category></category></item><item><title><![CDATA[Scala | 字符串揭秘]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/97248738</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/97248738</guid><author>purisuit_knowledge</author><pubDate>Thu, 25 Jul 2019 11:40:29 +0800</pubDate><description><![CDATA[转载自：http://songkun.me/2018/05/14/scala-string-ops/

String源码剖析

Scala 中的String其实仅仅是java.lang.String的别名，在scala.Predef中可以找到其定义：


			
1

			
			
			
type String = java.lang.String

			
		明明 Scala...]]></description><category></category></item><item><title><![CDATA[Hive sql exlain读取详解]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/94650487</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/94650487</guid><author>purisuit_knowledge</author><pubDate>Thu, 04 Jul 2019 20:21:45 +0800</pubDate><description><![CDATA[参考：https://www.cnblogs.com/NightPxy/p/9230253.html

1.hive 语句执行顺序


from... where.... select...group by... having ... order by...

执行计划


Map Operator Tree:
TableScan
            alias: 表名   -- 相当于 fr...]]></description><category></category></item><item><title><![CDATA[Spark参数调优]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/94600468</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/94600468</guid><author>purisuit_knowledge</author><pubDate>Thu, 04 Jul 2019 11:22:23 +0800</pubDate><description><![CDATA[请带着下面的疑问读本博客，如果可以了解，请绕行别处！！！

下面4个参数代表什么意思，相互之间什么关系？

1.spark.executor.memory
2.yarn.scheduler.maximum-allocation-mb
3.spark.yarn.executor.memoryOverhead
4.spark.executor.extraJavaOptions -XX:MaxDire...]]></description><category></category></item><item><title><![CDATA[Spark性能优化：shuffle调优]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/93988334</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/93988334</guid><author>purisuit_knowledge</author><pubDate>Fri, 28 Jun 2019 12:52:24 +0800</pubDate><description><![CDATA[转载自：https://blog.youkuaiyun.com/u012102306/article/details/51637732



shuffle调优

调优概述

   大多数Spark作业的性能主要就是消耗在了shuffle环节，因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此，如果要让作业的性能更上一层楼，就有必要对shuffle过程进行调优。但是也必须提醒大家的是，影...]]></description><category></category></item><item><title><![CDATA[Java垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/93219012</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/93219012</guid><author>purisuit_knowledge</author><pubDate>Fri, 21 Jun 2019 18:58:05 +0800</pubDate><description><![CDATA[JVM好文章：https://www.infoq.cn/article/3WyReTKqrHIvtw4frmr3?utm_source=rss&amp;utm_medium=article

https://blog.youkuaiyun.com/coderlius/article/details/79272773

:https://www.javazhiyin.com/36101.html


...]]></description><category></category></item><item><title><![CDATA[hive set 常用参数汇总]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/91388488</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/91388488</guid><author>purisuit_knowledge</author><pubDate>Mon, 10 Jun 2019 17:51:08 +0800</pubDate><description><![CDATA[转载自：

https://www.cnblogs.com/Allen-rg/p/10769924.html

https://www.cnblogs.com/sandbank/p/6408762.html



1、 set hive.auto.convert.join = true;

mapJoin的主要意思就是，当链接的两个表是一个比较小的表和一个特别大的表的时候，我们把比较小的tabl...]]></description><category></category></item><item><title><![CDATA[spark调优]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/91380266</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/91380266</guid><author>purisuit_knowledge</author><pubDate>Mon, 10 Jun 2019 15:50:18 +0800</pubDate><description><![CDATA[转载自：https://blog.youkuaiyun.com/lw_ghy/article/details/52946136

spark.driver.extraJavaOptions -XX:PermSize=128M -XX:MaxPermSize=256M

cluster模式：
spark.driver.extraJavaOptions -XX:PermSize=1024M -XX:MaxPerm...]]></description><category></category></item><item><title><![CDATA[Hive之COUNT DISTINCT优化]]></title><link>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/91048703</link><guid>https://blog.youkuaiyun.com/purisuit_knowledge/article/details/91048703</guid><author>purisuit_knowledge</author><pubDate>Thu, 06 Jun 2019 19:15:44 +0800</pubDate><description><![CDATA[问题描述

COUNT(DISTINCT xxx)在hive中很容易造成数据倾斜。针对这一情况，网上已有很多优化方法，这里不再赘述。
但有时，“数据倾斜”又几乎是必然的。我们来举个例子：

假设表detail_sdk_session中记录了访问某网站M的客户端会话信息，即：如果用户A打开app客户端，则会产生一条会话信息记录在该表中，该表的粒度为“一次”会话，其中每次会话都记录了用户的唯一标示u...]]></description><category></category></item></channel></rss>