自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 MapReduce入门详解(三)

join操作左外连接(map)-JoinMapSideMR问题描述:将两个文件中每行的内容拼接到一个文件中思路分析:准备好两个map,firstMapper和joinMapper,firstMapper负责获取文件内容,joinMapper负责拼接文件内容。利用Job开启两个firstMapper任务,获取到两个文件的内容,然后再开启一个joinMapper任务负责拼接获取到的两个文...

2019-12-06 17:52:18 194

原创 MapReduce入门详解(二)

MapReduce实践攻略超详细入门级-WordCount问题描述:统计一个文件中,各种单词出现的次数思路分析:在map阶段,对每行数据调用一次map方法,对读取到的每行数据按空格进行切割,将分割得到的每个单词作为key,value的值给定为1传递给reduce 在reduce阶段,从map接收到传递过来的key和value,key值相同的为同一组,对每一组只调用一次reduce...

2019-12-06 17:51:09 589

转载 MapReduce入门详解(一)

简介Mapreduce是一个分布式运算程序的编程框架,是用户开发“基于hadoop的数据分析应用”的核心框架;Mapreduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。MapReduce框架的结构一个完整的mapreduce程序在分布式运行时有三类实例进程:MapReduceApplicationMaster...

2019-12-06 17:49:31 157

原创 hive 突破group_by限制,取某一列数据 不需要放在group by里面(Hive笔记之collect_list/collect_set(列转行))

Hive中collect相关的函数有collect_list和collect_set。它们都是将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重。select concat_ws(',',collect_list(event)) as connection ,user_id,rank from mds_user_growth_user_pat...

2019-10-11 15:10:15 2510

转载 Java中字符串存储在JVM的哪部分?

原文链接:https://www.cnblogs.com/holten/p/5782596.html现在总结一下:基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面,显式的String常量放在常量池,String对象放在堆中。常量池的说明常量池之前是放在方法区里面的,也就是在永久代里面的,从JDK7开始移到了堆里面。这一改变我们可以从oracle的release ver...

2019-06-27 15:14:07 4877 3

转载 查看linux目录剩余空间大小

df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式:df -hl 查看磁盘剩余空间df -h 查看每个根路径的分区大小du -sh [目录名] 返回该目录的大小du -sm [文件夹] 返回该文件夹总M数查看linux文件目录的大小和文件夹包含的文件数统计总数大小du -sh xmldb/du -sm * | sort ...

2019-05-07 10:56:09 671

原创 为什么volatile在并发下也是线程不安全的

volatile修饰的变量在各个线程的工作内存中不存在一致性的问题(在各个线程工作的内存中,volatile修饰的变量也会存在不一致的情况,但是由于每次使用之前都会先刷新主存中的数据到工作内存,执行引擎看不到不一致的情况,因此可以认为不存在不一致的问题),但是java的运算并非原子性的操作,导致volatile在并发下并非是线程安全的。最简单的例子就是多线程为一个变量连续赋值 每次做到 ...

2019-05-05 17:06:20 1929

转载 什么是CAS机制?

转载声明:无法找到原作者,查到后会添加声明我们先看一段代码:启动两个线程,每个线程中让静态变量count循环累加100次。最终输出的count结果一定是200吗?因为这段代码是非线程安全的,所以最终的自增结果很可能会小于200。我们再加上synchronized同步锁,再来看一下。加了同步锁之后,count自增的操作变成了原子性操作,所以最终输出一定是count=200,代...

2019-04-30 15:03:44 110

原创 leetCode 142 Linked List Cycle II (java版解析)

大致题意:如果单链表有环,找出环的入口节点(环的连接点)第一次相遇时slow走过的距离:a+b,fast走过的距离:a+b+c+b。因为fast的速度是slow的两倍,所以fast走的距离是slow的两倍,有 2(a+b) = a+b+c+b,可以得到a=c(这个结论很重要!)。public class ListNode(int x) {int data;ListNode...

2019-04-23 17:38:16 148

原创 java中for循环执行顺序

for(表达式1;表达式2;表达式3){//循环体}先执行“表达式1”,再进行“表达式2”的判断,判断为真则执行“循环体”,循环体执行完以后执行表达式3.例如for(int i=0;i<2;i++){//TODO}先执行 int i = 0;然后 判断 i<2然后执行函数体最后执行i++然后轮回到判断i<2...

2019-04-10 18:07:39 2086

转载 【Java】生产者消费者模式的三种实现

原文地址:https://blog.csdn.net/u010983881/article/details/78554671前言生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。wait/notif...

2019-03-25 14:37:03 396

转载 Java异常(exception)性能优化

在Java中,构造异常对象是”十分”耗时的,其原因是在默认情况下,创建异常对象时会调用父类Throwable的fillInStackTrace()方法生成栈追踪信息,JDK中的源码如下:public synchronized Throwable fillInStackTrace() { if (stackTrace != null || backtrace...

2019-01-24 14:15:14 1013

转载 java web 中两种跳转方式

java web 中两种跳转方式服务器端跳转与客户端跳转:首先我们需要理解什么是服务器端跳转,什么是客户端的跳转。简单理解所谓服务器端跳转就是指地址栏内容不变(客户端浏览器的地址栏不会显示目标地址的URL),而客户端跳转是指地址栏内容发生改变(客户端向服务器发请求,然后服务器再给客户端一个响应,然后客户端再根据服务器端给的响应中的URL再向服务器发送请求,所以是两次请求,因此地址栏改变了显示...

2019-01-24 14:11:26 1653

原创 【算法题】要求对数组中的元素进行重新排列,负数放到前面,不改变相对顺序

import java.util.Scanner;/** * 题目描述 给定一个未排序的整数数组,数组中的元素有正数也有负数,要求对数组中的元素进行重新排列,使得负数排在正数的前面,并且不改变原来正数和负数之间的相对顺序。例如,如果输入是{1,7,-5,9,-12,15},则输出是{-5,-12,1,7,9,15}。要求时间复杂度为O(n),空间复杂度为O(1)思路描述 由于不改变相...

2018-10-10 11:49:35 4787

原创 常用负载均衡算法+nginx负载均衡实现方法

1、轮询法  将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。2、随机法     通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。3、源地址哈希法     源地址哈希的...

2018-05-25 17:16:41 411

转载 Tomcat中JVM内存溢出及合理配置

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机。Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识进行详细介绍。一、Java JVM内存介绍JVM管理两种类型的内存,堆和非堆。按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚...

2018-05-10 11:30:02 123

原创 elasticsearch5.0安装及ik分词插件安装

先说一下踩的坑:su命令和su -命令最大的本质区别就是:前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd,所以从root切换到非root用户时启动Es时,要用su - 用户名ElastisSearch5.0 安装ik插件不需要再...

2018-03-29 15:50:51 186

转载 JVM调优总结 -Xms -Xmx -Xmn -Xss

堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m -Xmn2...

2018-03-27 18:21:07 145

转载 数据库事务的4种隔离级别

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工...

2018-03-26 14:33:07 283

转载 http与https协议的区别

感谢原作者,本文转载自http://www.mahaixiang.cn/internet/1233.html超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等

2017-12-05 15:19:22 278

转载 spring cloud 中的feign能做哪些操作

查了一下 spring cloud中的feign自带负载均衡?feignFeign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单。我们只需要使用Feign来创建一个接口并用注解来配置它既可完成。它具备可插拔的注解支持,包括Feign注解和JAX-RS注解。Feign也支持可插拔的编码器和解码器。Spring Cloud为Fei

2017-12-05 11:02:56 16345 1

转载 rabbitmq实现延迟队列

什么是延迟队列延迟队列存储的对象肯定是对应的延时消息,所谓”延时消息”是指当消息被发送以后,并不想让消费者立即拿到消息,而是等待指定时间后,消费者才拿到这个消息进行消费。场景一:在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行一场处理。这是就可以使用延时队列将订单信息发送到延时队列。场景二:用户希望通过手机远程遥控

2017-12-04 17:34:14 430

转载 Java分布式锁

为什么要使用分布式锁为了保证一个方法在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用Java并发处理相关的API(如ReentrantLcok或synchronized)进行互斥控制。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,为了解决

2017-11-21 14:54:52 258

转载 优化mysql查询的方法

优化mysql查询的方法1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is n

2017-11-07 18:33:43 134

转载 MySQL的btree索引和hash索引的区别

索引是帮助mysql获取数据的数据结构。最常见的索引是Btree索引和Hash索引。不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引;而Mermory默认的索引是Hash索引。Hash索引所谓Hash索引,当我们要给某张表某列增加索引时,将这张表的这一列进行哈希算法计算,得到哈希值,排序在哈希数组上。所以Has

2017-11-07 18:10:07 250

转载 Collections.sort()和Arrays.sort()排序算法选择

Collections.sort();和Arrays.sort();两个方法的排序算法实现,我只记得一个是快速排序一个是归并排序,但是刚刚看到没那么简单。Arrays.sort()先来看看Arrays.sort();,一点进这个方法会看到是这样子的public static void sort(int[] a) { DualPivotQuicksort.sort(a,

2017-11-02 12:11:13 663

原创 RandomAccessFile创建文件java.io.FileNotFoundException

今天突然发现经常用的一个下载文件的任务,测试那边环境报错。结果原因是: RandomAccessFile 不能创建多级目录,比如想要创建/data0/a/b.csv 必须先手动创建 /data0/a  文件夹.RandomAccessFile类的常用的操作方法1、public  RandomAccessFile(File file, String mod

2017-10-27 18:03:38 2577

翻译 java反序列化php序列化的对象

最近工作中遇到一个需要解析php序列化后存入DB的array,12a:4:{i:0;a:2:{s:11:"province";s:8:"0016";s:7:"img";s:49:"20150117105023_kk-1.jpg";}i:1;a:2:{s:11:"province";s:8:"0017";s:7:"img";s:

2017-10-18 14:59:41 1292

转载 常用Quartz定时任务触发的cron表达式

Cron表达式Quartz使用类似于Linux下的Cron表达式定义时间规则,Cron表达式由6或7个由空格分隔的时间字段组成。Cron表达式时间字段(从左到右依次为): 位置时间域名允许值允许的特殊字符1秒0-59, - * /2分钟0-59, - * /3小时0-23

2017-10-18 14:56:50 470

原创 简单的灰度测试,lua或者直接改nginx配置

配置过程:1.根据cookies特征值实现在做的过程中把login的操作给做了过滤。登录过程将cookie中设置了一个新的cookie值 GINA_gray_SESSIONID =gray这样在nginx配置中加入筛选Root不要配置在最前面而是配置在location中#过滤login  请求进来会优先判断 请求是不是/ gina-client/login  然后判断是

2017-09-21 17:06:28 1619

原创 Java 中 String的三种判断方式NotEmpty,NotNull和@NotBlank的区别

1.@NotNull:不能为null,但可以为empty(""," "," ") 2.@NotEmpty:不能为null,而且长度必须大于0(" "," ")3.@NotBlank:只能作用在String上,不能为null,而且调用trim()后,长度必须大于0("test") 即:必须有实际字符@NotNull: The CharSequence, Collecti

2017-06-14 13:07:17 14850

转载 Nginx正反向代理、负载均衡等功能实现配置

系统环境:VirtualBox ManagerCentos6.4nginx1.10.0IP对应的机器名:      IP                机器名               角色名10.0.0.139      [elk]                     client10.0.0.136      [

2017-05-11 16:10:10 450

空空如也

空空如也

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

TA关注的人

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