自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Top5软件工程硕士,先后在京东、字节从事多年Java后端开发、实时和离线大数据开发

博文均为博主精心总结,从企业实战出发,提高开发中解决问题的能力

  • 博客(62)
  • 资源 (11)
  • 问答 (1)
  • 收藏
  • 关注

原创 mysql 不走索引的情况

1 or (待确认)、in(待确认)2 like '%abc' 或者 like‘%abc%’3 where num/2=100 或者 subString(a,1,3)='ab'4 where id !=2 或者 where id <> 25 where name is null6 复合索引a-b-c,a用到,b用不到,c用不到,ab有效,ba有效,a or b无效,...

2019-04-18 21:31:40 7975

转载 《effective java》68:executor和task优先于线程

java.util.concurrent 包里有一个Executor 框架基于接口的任务执行工具 只需要一行代码 提交一个runnable 方法 优雅的终止(必须做到,不然虚拟机可能不会退出) 对于负载不重的服务Executors.newCachedThreadPool 就能满足 不太适合大负载 因为被提交的任务没有排队,而是直接交给线程执行,没有空闲...

2019-04-28 20:43:00 246

原创 Hive lateral view 注意事项

1 如果指定字段名则需要把lateral view查询出的列写到select中,才能在结果中出现;如果直接是select * 则自动会把lateral view查询出的列追加在后面。2where 条件要写在lateral view 后面,不然报错详见:Hive lateral view ,get_json_object,json_tuple 用法Hive explode late...

2019-04-28 20:40:46 3194

原创 Hive lateral view ,get_json_object,json_tuple 用法

要确保被解析的字段是string类型才可以使用json解析.解析map类型不能使用json解析,解析map类型可以使用col_name['key']获取对应key的value.【Hive】解析json(get_json_object)https://blog.csdn.net/qq_34105362/article/details/80454697lateral view:如果指定字段名...

2019-04-28 20:39:57 10940

原创 Hive explode lateral view 用法

类似于SqlServer的游标,把字段的内容转换成行显示。lateral view UDTF(expression)tableAliasName as colAliasName其中UDTF(expression)表示表生成函数说白了就是行转列的函数,即一行变为多行的函数,比如explode,当然也可以通过UDF自定义函数把一行转为多行,或者UDF返回Array,再通过explode炸成多...

2019-04-28 20:39:30 4727

原创 Hive 导入array,map,要定义好分隔符,不用带双引号,

建表语句:指定array元素分隔符,map keys分隔符很重要!!create table sales_info_new(sku_id string comment '商品id',sku_name string comment '商品名称',state_map map<string,string> comment '商品状态信息',id_array array<s...

2019-04-28 20:39:04 2505

原创 Hive ,At least 1 group must only depend on input columns. Also check for circular dependencies.

使用rank()排序报错:2019-04-28 09:35:08,100 FAILED: SemanticException Failed to breakup Windowing invocations into Groups. At least 1 group must only depend on input columns. Also check for circular depend...

2019-04-28 11:47:01 12045 1

原创 Hive,分组后前几,Top N,记录

select * from sales_info where dt = '2019-04-26';查询每个分类下,GMV(销售额)前三的商品明细:select a.* FROM( select sku_id,sku_name,category_id3,sales_count,price,sales_count*price, row_number() over...

2019-04-28 11:44:10 2952 1

原创 Hive ,开窗函数,sum,row_number,dense_rank,percent_rank

1 排序:row_number(),dense_rank()select sku_id,sku_name,category_id3,sales_count,price,sales_count*price as s1,dense_rank() over(partition by category_id3 order by s1 desc) as r2 -- Invalid table...

2019-04-28 11:40:29 1567 1

原创 hive order by 后跟 别名,HIve只能用聚合函数的别名排序,不可以用聚合函数的表达式排序

建表语句:CREATE TABLE `sales_info`(`sku_id` string COMMENT '商品id', `sku_name` string COMMENT '商品名称', `category_id3` string COMMENT '三级分类id', `price` double COMMENT '销售价格', `sales_count` bigint COM...

2019-04-27 20:00:39 2573 2

转载 Hive四种数据导入方式

总结为四种:从本地文件系统中导入数据到Hive表; 从HDFS上导入数据到Hive表; 从别的表中查询出相应的数据并导入到Hive表中; 在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中。我会对每一种数据的导入进行实际的操作,因为纯粹的文字让人看起来很枯燥,而且学起来也很抽象。好了,开始操作!一、从本地文件系统中导入数据到Hive表二、HDFS上导入数据到Hive...

2019-04-27 19:24:39 1338

原创 hive 新建表,写入查询结果

hive> create table sales_info_new_new > as > select sku_id,sku_name,category_id3,price,sales_count,dt > from sales_info where dt = '2019-04-26';原表DDL:CREATE TABLE `sale...

2019-04-27 19:16:29 4568

原创 hive,查询后写入表中

hive> insert overwrite table sales_info_new partition(dt='2019-04-26') > select sku_id,sku_name,category_id3,price,sales_count > from sales_info where dt = '2019-04-26';目的表,建表语句:...

2019-04-27 19:00:51 2272

原创 hive ,从hdfs把数据文件load导入到表

hive> load data inpath 'hdfs://ns1/abc/sales_info/hello/sales_info.txt' overwrite into table sales_info partition(dt = '2019-04-26');1原数据文件(已经不存在了,是从原路径移动到了新路径下):如果从本地导入后本地的原数据文件依然存在,相当于复制过去;...

2019-04-27 18:48:21 22524

原创 hive把本地的数据文件load导入到表

以下实例都是从本地导入:hive> load data local inpath 'sales_info.txt' overwrite into table sales_info partition(dt='2019-04-26');导入后本地的原数据文件依然存在,相当于复制过去;如果是从hdfs导入,则原数据文件不存在,相当于剪切过去。实例1:建表语句(不带分区字段,用逗号...

2019-04-27 18:18:48 22816 1

原创 hive 常用命令,清空表、查询显示字段名

1清空表,hive> truncate table sales_info;hive> select * from sales_info ;OK123 华为Mate10 31 999.0 20Time taken: 0.039 seconds, Fetched: 1 row(s)hive> truncate table sales_info;OKTime ta...

2019-04-27 17:32:33 726

转载 Vim没有任何反应了怎么办?ctrl+q即可解除!

vim中挂死问题的解决(按任何键都没有反应了!懵逼啊!)ctrl+q 按此下此快捷键即可解除!意思是”恢复向终端输出”。原因:ctrl+s 是”阻断向终端输出”,误按此键即进入挂死状态!此键是windows的文档保存快捷键,windows转来的程序员会很容易就被触发此键!---------------------原文:https://blog.csdn.net/ycjnx/artic...

2019-04-27 15:25:05 4134 4

原创 Mysql,order by 后跟 别名 表达式 均可,Mysql可以用聚合函数的别名排序,也可以用聚合函数的表达式排序

select id2,sum(num1) from table1where id1 = '123'group by id2order by sum(num1) select id2,sum(num1) as sum_num1 from table1where id1 = '123'group by id2order by sum_num1select ...

2019-04-27 14:25:48 6546

原创 Mysql,varchar内容含有数字,查询

`union_id` varchar(50) DEFAULT NULL COMMENT '联合id,形如123_45_897',select * from table1where union_id = 123 -- rows:4086 所有 union_id 以 123开头的记录select * from table1where union_id like ...

2019-04-27 14:22:18 1980 1

原创 《effective java》 第46条:for-each循环优先于传统的for循环

enum NUMS {ONE, TWO, THREE, FOUR, FIVE, SIX} enum NUMS2 {ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN} public static void main(String[] args) { Collection<NUMS&...

2019-04-23 15:06:53 212

转载 java编译异常,运行异常的区别(二)

public class Test15 {/* public static void main(String[] args) {//运行时异常不用主动捕获或者抛出 Test15 test15 = new Test15(); test15.doSomething(); } public void doSomething() throws ...

2019-04-23 11:58:54 1398

转载 ActiveMQ消息接收模式

消息接收模式消息都是从Broker传输到Client,默认情况下Broker会主动将消息PUSH至Client,当然也可以通过配置改为Client主动从Broker PULL消息,参考: http://activemq.apache.org/slow-consumer-handling.htmlPUSH模式默认情况下,Broker会主动将消息PUSH至Client,这样做的目的是为了让消...

2019-04-20 20:54:22 2122

转载 一致性hash算法--负载均衡

有没有好奇过redis、memcache等是怎么实现集群负载均衡的呢?其实他们都是通过一致性hash算法实现节点调度的。讲一致性hash算法前,先简述一下求余hash算法:hash(object)%N一个缓存服务器宕机了,这样所有映射到这台服务器的对象都会失效,我们需要把属于该服务器中的缓存移除,这时候缓存服务器是 N-1 台,映射公式变成了 hash(object)%(N-1) ...

2019-04-20 17:42:25 562

转载 什么是 RPC

RPC:远程调用。通过RPC框架,使得我们可以像调用本地方法一样地调用远程机器上的方法:1、本地调用某个函数方法2、本地机器的RPC框架把这个调用信息封装起来(调用的函数、入参等),序列化(json、xml等)后,通过网络传输发送给远程服务器3、远程服务器收到调用请求后,远程机器的RPC框架反序列化获得调用信息,并根据调用信息定位到实际要执行的方法,执行完这个方法后,序列化执行结果,通...

2019-04-20 16:44:12 2628 2

转载 NIO是什么

为了实现Selector管理多个SocketChannel,必须将具体的SocketChannel对象注册到Selector,并声明需要监听的事件(这样Selector才知道需要记录什么数据),一共有4种事件:1、connect:客户端连接服务端事件,对应值为SelectionKey.OPCONNECT(8)2、accept:服务端接收客户端连接事件,对应值为SelectionKey.OPA...

2019-04-20 12:37:55 1979

转载 Dubbo架构中Zookeeper担任注册中心

Zookeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心。服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后进行订阅,再去调用服务生产者的服务。如下图所示,在 Dubbo架构中 Zookeeper 就担任了注册中心这一角色。转自:https://segment...

2019-04-20 10:30:37 266

原创 Redis、MemCache、JBossCache、ehcache缓存主从同步

1 像MySQL一样,Redis是支持主从同步的,而且也支持一主多从以及多级从结构。2MemCache虽然被称为"分布式缓存",但是MemCache本身完全不具备分布式的功能,MemCache集群之间不会相互通信(与之形成对比的,比如JBoss Cache,某台服务器有缓存数据更新时,会通知集群中其他机器更新缓存或清除缓存数据)3 ehcache支持缓存服务器之间数据复制(EhCache...

2019-04-20 10:19:38 820

原创 web服务器集群的session如何同步和共享

在访问量上去以后,很多人会采用web集群的方式在满足逐渐增长的用户量。这时候就不得不面对一个问题,那就是在多个服务器下,每次请求都会因为负载均衡而分配到不同的服务器上。用户在登录服务器后,下一次请求被分配到另一个服务器上,这时候session不同步,用户就无法继续使用原先的session。下面我就聊聊如何解决这个问题。一、利用Mysql数据库共享Session数据的方式使用一个mysql服...

2019-04-20 10:00:54 571

转载 关于Session过期/失效的理解,session与cookie的交互

一直好奇关于Session的过期,一种说法是关闭浏览器即Session失效,另一种说法是可以设置Session的过期时间,时间到了自动过期。这两种说法到底是怎么回事?Session过期跟Cookie过期又有什么关系?网上搜了几篇相关文章:http://www.cnblogs.com/Vae1990Silence/p/4630392.html http://blog.csdn.net/...

2019-04-20 09:51:05 17115

转载 负载均衡的几种实现方式

1 轮询,依次请求列表中的服务器ip地址(不能保持session一直有效)2 权重,比如ip1访问权重是70%,比如ip2访问权重是30%(不能保持session一直有效)3 ip哈希,使用ip的hash值决定访问哪个ip(能保持session一直有效)4 url哈希,使用url的hash值决定访问哪个ip5按后端服务器的响应时间来分配请求,响应时间短的优先分配。6一致性h...

2019-04-19 17:42:42 467

转载 正向代理与反向代理

1、前言最近工作中用到反向代理,发现网络代理的玩法还真不少,网络背后有很多需要去学习。而在此之前仅仅使用了过代理软件,曾经为了访问google,使用了代理软件,需要在浏览器中配置代理的地址。我只知道有代理这个概念,并不清楚代理还有正向和反向之分,于是赶紧学习一下,补充一下知识。首先弄清楚什么是正向代理,什么是反向代理,然后是二者在实际使用中展示的方式是什么样的,最后总结一下正向代理用来做什么,...

2019-04-19 16:36:25 128

转载 分布式锁的几种使用方式(数据库、redis、zookeeper)

一、基于数据库实现的分布式锁基于表实现的分布式锁 -- 字段使用唯一索引基于排他锁实现的分布式锁 -- 使用for update加排它锁二、基于缓存的分布式锁使用redis,jetcache等--不能重复创建key-value三、基于Zookeeper实现的分布式锁使用临时有序结点--同一路径下的节点名称不能重复https://blog.csdn.net/u0109...

2019-04-19 15:29:35 345

转载 Zookeeper理解

Zookeeper中ZNode的节点创建时候是可以指定类型的,主要有下面几种类型。PERSISTENT:持久化ZNode节点,一旦创建这个ZNode点存储的数据不会主动消失,除非是客户端主动的delete。EPHEMERAL:临时ZNode节点,Client连接到Zookeeper Service的时候会建立一个Session,之后用这个Zookeeper连接实例创建该类型的znode,一...

2019-04-19 15:26:36 306

原创 布隆过滤器原理

布隆过滤器(Bloom Filter)的核心实现是一个超大的位数组和几个哈希函数。假设位数组的长度为m,哈希函数的个数为k以上图为例,具体的操作流程:假设集合里面有3个元素{x, y, z},哈希函数的个数为3。首先将位数组进行初始化,将里面每个位都设置位0。对于集合里面的每一个元素,将元素依次通过3个哈希函数进行映射,每次映射都会产生一个哈希值,这个值对应位数组上面的一个点,然后将位数组...

2019-04-18 18:51:56 231

转载 jvm四种引用

Java中的引用一共有四种,它们分别是强引用、软引用、弱引用和虚引用,下面我们来分别介绍。1 首先来说说强引用,强引用就是我们平常用的类似于“Object obj = new Object()”的引用,只要obj的生命周期没结束,或者没有显示地把obj指向为null,那么JVM永远不会回收这种对象。2 软引用相对强引用来说就要脆弱一点,JVM正常运行时,软引用和强引用没什么区别,但是当内存...

2019-04-17 21:05:06 1574

转载 jvm如何判断对象是否可以回收或存活

众所周知,Java将程序员从内存管理中解放出来,使得我们在编写代码的时候不用手动的分配和释放内存,内存管理的任务由JVM承担起来。本文就将讲解JVM在回收对象之前,如何判断一个对象是否应该被回收。在此之前,我们先来复习一个和Java对象回收有关的知识,那便是finalize方法,这是一个在Object类中定义的方法,如果我们重写了finalize方法,那么在对象被回收之前将会调用finaliz...

2019-04-17 20:58:31 992

转载 深入理解JVM--分代收集算法

为什么把这一算法单独拿出来说呢?原因就是分代收集算法是现在的jvm采用的算法。对象分类这种算法并不是一种新的算法,而是根据对象的存活周期的不同而将内存分为几块,分别为新生代、老年代和永久代。新生代:朝生夕灭的对象(例如:方法的局部变量等)。老年代:存活得比较久,但还是要死的对象(例如:缓存对象、单例对象等)。永...

2019-04-16 22:15:01 377

转载 ConcurrentHashMap JDK1.8 源码

put:检查key或value是否为空,如果key或value为空,则抛异常,反之进入for死循环, 检查table是否初始化了,如果没有,则进行初始化(初始化完成后进行下一次循环),如果已经初始化则根据key找到hash表中索引位置table[i], 如果没有发生碰撞,则利用CAS操作直接存储在table[i],如果成功则退出循环,反之进行下一次循环 如...

2019-04-16 21:57:48 295

原创 HashMap putIfAbsent作用

如果key不存在或者key已存在但是值为null,才put进去。put进去时返回null,不put进去时返回原值。 HashMap<String, Integer> map = new HashMap<>(); System.out.println(map.put("a", 1));//null System.out.pri...

2019-04-15 21:35:07 2107

原创 hive 读取 map的value

table1中的c1字段是map类型,内容如下:{ "id1": "11111", "id2": "22222", "id3": "33333", "id4": "44444",} select c1['id1'],c1['id2'],c1['id3'],c1['id4'] from table1 limit 1;结果会把11111,22222,33333,44444作...

2019-04-15 21:17:09 21126

split_csv.sh

v6.csv有200多万行,excel的一个sheet最多显示104万行左右,显示不全,那么如何切分呢? 亲测可用

2020-03-21

htmlunit-2.31.jar

htmlunit-2.31,亲测可用!能很好的完成抓取需求,能够模拟输入、点击按钮、解析结果

2018-06-10

mhd raw metaimage java读取类

亲测可用,mhd raw metaimage java读取类。mhd raw metaimage java读取类。mhd raw metaimage java读取类。

2017-10-18

quartz定时任务

不用集成Spring,代码简洁,亲测可用

2017-05-20

Struts2登录实例--亲测可用

Struts2登录实例--亲测可用,拦截器,Action,值栈......都用到了

2017-05-17

joda-time-2.3.jar

DateTime类型,方便使用

2016-11-17

commons-lang-2.5.jar

解决..java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils问题

2016-07-08

commons-configuration-1.6.jar

解决..java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration, 亲测可用

2016-07-08

android通过servlet与服务器验证用户信息

成功返回success,失败返回failed 1注意manifext.xml的权限 2 servlet project的类一定要extends httpservlet 3 servlet project中,com是包名,所以Tomcat是...classes/com/xxx.class 4 192.168.0.107是电脑的IP,需要手机电脑连接的是同一个wifi,电脑的防火墙一定要关闭

2016-03-26

全国省市县区域名称

省市县区域名称,例如: ................. 240: 云南省:昆明市 240864: 云南省 昆明市 东川区 240865: 云南省 昆明市 五华区 240866: 云南省 昆明市 呈贡县 240867: 云南省 昆明市 安宁市 ............

2015-11-17

拼图游戏C语言

拼图游戏开发,使用语言为C语言类,游戏开发,

2013-05-24

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

TA关注的人

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