- 博客(996)
- 资源 (17)
- 收藏
- 关注
JDK8中ArrayList的工作原理剖析
ArrayList也是在Java开发中使用频率非常高的一个类,内部是基于数组的动态管理的方式来实现的。数组在内存里面是一块连续的存储空间,其优势是基于下标的随机访问和遍历是非常高效的。JDK8源码中的ArrayList类结构定义如下:[code="java"]```` class ArrayList extends AbstractList impleme...
2018-02-25 21:57:23 169
原创 Java里面关于数组拷贝的几种方式
在java里面数组拷贝有几种方式:(1)clone(2)System.arraycopy(3)Arrays.copyOf(4)Arrays.copyOfRange下面分别介绍下他们的用法:(1)clone方法是从Object类继承过来的,基本数据类型(String,boolean,char,byte,short,float,double.long)都可以直接使用clone方法进行克隆,注意Stri...
2018-02-10 20:18:11 3093
Java里面关于数组拷贝的几种方式
在java里面数组拷贝有几种方式:(1)clone(2)System.arraycopy(3)Arrays.copyOf(4)Arrays.copyOfRange下面分别介绍下他们的用法:(1)clone方法是从Object类继承过来的,基本数据类型(String,boolean,char,byte,short,flo...
2018-02-10 20:03:45 285 2
原创 如何备份ElasticSearch索引数据到HDFS上
在ElasticSearch里面备份策略已经比较成熟了目前在ES5.x中备份支持的存储方式有如下几种:fs //本地挂载的盘url //网络协议存储支持http,https,ftprepository-s3 //亚马逊repository-hdfs //HDFSrepository-azure //微软repository-gcs //googl...
2018-02-09 18:33:23 3138
如何备份ElasticSearch索引数据到HDFS上
在ElasticSearch里面备份策略已经比较成熟了目前在ES5.x中备份支持的存储方式有如下几种:[code="java"]````fs //本地挂载的盘url //网络协议存储支持http,https,ftprepository-s3 //亚马逊repository-hdfs //HDFSrepository...
2018-02-09 18:19:47 557
Elasticsearch5.6.4集群搭建
本次搭建的是一个三节点的集群(一)es的安装(1)下载安装包[url]https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz[/url](2)解压到指定目录(3)进入根目录,修改config/elasticsearch.yml文件,清空内容,添加如...
2018-02-07 20:13:25 129
原创 Elasticsearch5.6.4集群搭建
本次搭建的是一个三节点的集群(一)es的安装(1)下载安装包https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz(2)解压到指定目录(3)进入根目录,修改config/elasticsearch.yml文件,清空内容,添加如下配置cluster.na
2018-02-07 20:11:18 2900
原创 数据结构的基本概念
(一)什么是数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。(二)为什么要了解数据结构程序的性能瓶颈往往都跟算法和数据结构有关系,简单的说,可以让你程序跑的更快(三)数据结构的逻辑结构逻辑结构是指
2018-02-01 20:18:12 270
数据结构的基本概念
(一)什么是数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。(二)为什么要了解数据结构 程序的性能瓶颈往往都跟算法和数据结构有关系,简单的说,可以让你程序跑的更快(三)数据结构的逻辑结...
2018-02-01 20:05:36 70
原创 使用位运算替代模运算
昨天的分析HashMap原理的文章里面提到,使用位运算替代取模运算效率高,但位运算只能在特定场景下才能替代%运算。正常情况下:a % b = a - (a / b)*b但如果b的值为2的n次方的时候(n为自然数),这时候就可以用位运算来替代模运算, 转化如下:a % b = a & (b-1)2的n次方的二进制如下:` 0001 2^0 1 0010
2018-01-30 21:15:11 4443
使用位运算替代模运算
昨天的分析HashMap原理的文章里面提到,使用位运算替代取模运算效率高,但位运算只能在特定场景下才能替代%运算。正常情况下:[code="java"]````a % b = a - (a / b)*b ````[/code]但如果b的值为2的n次方的时候(n为自然数),这时候就可以用位运算来替代模运算,转化如下:[code="java"]`...
2018-01-30 21:12:59 463
原创 JDK8中HashMap的工作原理剖析
在Java语言里,HashMap无疑是使用频率非常高的一个类,了解它的内部实现将有助于更好的使用它。在jdk8中的HashMap是由三种数据结构组成:数组 + ( 链表 or 红黑树 )图示如下:而在jdk8之前还只是数组+链表两种数据结构,在这里简单提下数组和链表的区别:数组优点:物理地址连续+按下标随机访问效率高O(1)缺点:插入,删除效
2018-01-29 21:59:44 1167
JDK8中HashMap的工作原理剖析
在Java语言里,HashMap无疑是使用频率非常高的一个类,了解它的内部实现将有助于更好的使用它。在jdk8中的HashMap是由三种数据结构组成:数组 + ( 链表 or 红黑树 )图示如下:[img]http://dl2.iteye.com/upload/attachment/0128/7314/a506a881-9a28-3957-a4b9-a3f60f...
2018-01-29 21:47:10 390
原创 理解Java中的hashCode 和 equals 方法
在Java里面所有的类都直接或者间接的继承了java.lang.Object类,Object类里面提供了11个方法,如下:1,clone()2,equals(Object obj)3,finalize()4,getClass()5,hashCode()6,notify()7,notifyAll()8,toString()9,wait()10,wait(long timeout
2018-01-26 19:16:16 719 1
理解Java中的hashCode和equals 方法
在Java里面所有的类都直接或者间接的继承了java.lang.Object类,Object类里面提供了11个方法,如下:[code="java"]````1,clone()2,equals(Object obj)3,finalize()4,getClass()5,hashCode()6,notify()7,notifyAll()8,toString...
2018-01-26 19:05:40 222
原创 Java程序排查问题利器之Btrace
(一)Btrace的介绍BTrace是Java的安全可靠的动态跟踪工具。 他的工作原理是通过 instrument + asm 来对正在运行的java程序中的class类进行动态增强,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、返回值、全局变量和堆栈信息等,并且做到最少的侵入,占用最少的系统资源。正如上面描述的一些特性,所以btrace一般是
2018-01-23 20:26:17 1154 1
Java程序排查问题利器之Btrace
(一)Btrace的介绍BTrace是Java的安全可靠的动态跟踪工具。 他的工作原理是通过 instrument + asm 来对正在运行的java程序中的class类进行动态增强,可以在不用重启的情况下监控系统运行情况,方便的获取程序运行时的数据信息,如方法参数、返回值、全局变量和堆栈信息等,并且做到最少的侵入,占用最少的系统资源。正如上面描述的一些特性,所以btr...
2018-01-23 20:13:25 155
原创 小知识之Linux系统中的最大进程数,最大文件描述,最大线程数
今天来了解一下linux里面的一些小知识:(一)Linux系统中最大可以起多少个进程?(1)32位系统中最多可以起32768个进程(2)64位系统中最多可以起2的22次方(4194304)约420万个如何查看linux系统默认的最大进程数,这里以centos7(x64)作为例子:[root@es1 ~]# cat /proc/sys/kernel/pid_max
2018-01-19 22:29:40 6059
小知识之Linux系统中的最大进程数,最大文件描述,最大线程数
今天来了解一下linux里面的一些小知识:(一)Linux系统中最大可以起多少个进程?(1)32位系统中最多可以起32768个进程(2)64位系统中最多可以起2的22次方(4194304)约420万个如何查看linux系统默认的最大进程数,这里以centos7(x64)作为例子:[code="java"]````[root@es1 ~...
2018-01-19 22:16:15 755
原创 理解Java里面的jvm,jre,jdk的区别和联系
有时候越是基础的问题,越是容易被我们忽视,比如标题上的问题,感觉挺简单,但真正让解释一下,未必能够说的很清楚,其实这个问题在Oracle官网的Java的文档里面解释的非常清晰,看官网下面的一张图:先解释下几个名词的意思:(一)JVM(Java Virtual Machine ):Java虚拟机主要负责将class文件也就是bytecode编码解释为机器能够识别的010101类似的编码,然后执行程序
2018-01-17 20:00:07 632
理解Java里面的jvm,jre,jdk的区别和联系
有时候越是基础的问题,越是容易被我们忽视,比如标题上的问题,感觉挺简单,但真正让解释一下,未必能够说的很清楚,其实这个问题在Oracle官网的Java的文档里面解释的非常清晰,看官网下面的一张图: [img]http://dl2.iteye.com/upload/attachment/0128/5786/1483e43a-3fec-390c-8ce3-c7ec0ed01054.jpg[...
2018-01-17 19:57:51 265
原创 Nginx配置的一些小功能
前面的文章,已经介绍了Nginx的作用以及Nginx的安装,本篇文章我们来看几个实际的小例子,来对Nginx进一步加深了解。(一)Nginx一些常用的配置介绍//nginx运行的用户,一般不要设置成rootuser nginx //工作进程,通常等于cpu的数量worker_processes 1;//全局错误日志定义类型,[ debug | info | notice
2018-01-12 21:30:05 351
Nginx配置的一些小功能
前面的文章,已经介绍了Nginx的作用以及Nginx的安装,本篇文章我们来看几个实际的小例子,来对Nginx进一步加深了解。(一)Nginx一些常用的配置介绍[code="java"]````//nginx运行的用户,一般不要设置成rootuser nginx //工作进程,通常等于cpu的数量worker_processes 1;//全局错...
2018-01-12 21:28:36 179
原创 Scala里面的排序函数的使用
排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是: sorted,sortBy ,sortWith分别介绍下他们的功能:(1)sorted对一个集合进行自然排序,通过传递隐式的Ordering(2)sortBy对一个属性或多个属性进行排序,通过它的类型。(3)sortWith基于函数的排序,通过一个comparator
2018-01-09 20:22:16 28900 3
Scala里面的排序函数的使用
排序方法在实际的应用场景中非常常见,Scala里面有三种排序方法,分别是:sorted,sortBy ,sortWith 分别介绍下他们的功能:(1)sorted对一个集合进行自然排序,通过传递隐式的Ordering(2)sortBy对一个属性或多个属性进行排序,通过它的类型。(3)sortWith基于函数的排序,通过一个comp...
2018-01-09 20:20:10 1502
原创 在Scala里面如何使用元组
元组在Scala语言中是一种十分重要的数据结构,类似数据库里面的一行记录(row),它可以将不同类型的值组合成一个对象,在实际应用中十分广泛。先来看一个简单的tuple定义:val tuple=("张三",25)//定义一个tupleval (name,age)=("张三",25)//变量绑定模式上面的第二种例子中,可以直接通过name和age来访问单个tuple的元素
2018-01-08 22:07:33 3684
在Scala里面如何使用元组
元组在Scala语言中是一种十分重要的数据结构,类似数据库里面的一行记录(row),它可以将不同类型的值组合成一个对象,在实际应用中十分广泛。先来看一个简单的tuple定义:[code="java"]```` val tuple=("张三",25)//定义一个tupleval (name,age)=("张三",25)//变量绑定模式````[/code]...
2018-01-08 22:05:41 1072
原创 Spark如何读取一些大数据集到本地机器上
最近在使用spark处理分析一些公司的埋点数据,埋点数据是json格式,现在要解析json取特定字段的数据,做一些统计分析,所以有时候需要把数据从集群上拉到driver节点做处理,这里面经常出现的一个问题就是,拉取结果集过大,而驱动节点内存不足,经常导致OOM,也就是我们常见的异常:java.lang.OutOfMemoryError: Java heap space这种写法的代码一般
2018-01-04 21:19:54 4872
Spark如何读取一些大数据集到本地机器上
最近在使用spark处理分析一些公司的埋点数据,埋点数据是json格式,现在要解析json取特定字段的数据,做一些统计分析,所以有时候需要把数据从集群上拉到driver节点做处理,这里面经常出现的一个问题就是,拉取结果集过大,而驱动节点内存不足,经常导致OOM,也就是我们常见的异常:[code="java"]```` java.lang.OutOfMemoryError: Ja...
2018-01-04 21:07:09 984 1
原创 使用Spark SQL的临时表解决一个小问题
最近在使用spark处理一个业务场景时,遇到一个小问题,我在scala代码里,使用spark sql访问hive的表,然后根据一批id把需要的数据过滤出来,本来是非常简单的需求直接使用下面的伪SQL即可:select * from table where id in (id1,id2,id3,id4,idn)但现在遇到的问题是id条件比较多,大概有几万个,这样量级的in是肯定会出错的
2017-12-28 18:29:24 13848 1
使用Spark SQL的临时表解决一个小问题
最近在使用spark处理一个业务场景时,遇到一个小问题,我在scala代码里,使用spark sql访问hive的表,然后根据一批id把需要的数据过滤出来,本来是非常简单的需求直接使用下面的伪SQL即可:[code="java"]````select * from table where id in (id1,id2,id3,id4,idn)````[/code]...
2017-12-28 18:27:59 2431
原创 Spark任务两个小问题笔记
今天在用spark处理数据的时候,遇到两个小问题,特此笔记一下。两个问题都与网络交互有关,大致处理场景是,在driver端会提前获取组装一批数据,然后把这些数据发送executor端进行后续处理。问题一:序列化异常driver有一个case class类需要封装一些数据发送到executor上,原来都是scala的类,直接发送到executor上执行没问题,而且也没加序列化
2017-12-26 19:53:47 3098
Spark任务两个小问题笔记
今天在用spark处理数据的时候,遇到两个小问题,特此笔记一下。两个问题都与网络交互有关,大致处理场景是,在driver端会提前获取组装一批数据,然后把这些数据发送executor端进行后续处理。问题一:序列化异常driver有一个case class类需要封装一些数据发送到executor上,原来都是scala的类,直接发送到executor上执行没问...
2017-12-26 19:52:55 178
原创 Spark中foreachPartition和mapPartitions的区别
spark的运算操作有两种类型:分别是Transformation和Action,区别如下:Transformation:代表的是转化操作就是我们的计算流程,返回是RDD[T],可以是一个链式的转化,并且是延迟触发的。Action:代表是一个具体的行为,返回的值非RDD类型,可以一个object,或者是一个数值,也可以为Unit代表无返回值,并且action会立即触发job的执行。
2017-12-25 21:31:58 20871 2
Spark中foreachPartition和mapPartitions的区别
spark的运算操作有两种类型:分别是Transformation和Action,区别如下:Transformation:代表的是转化操作就是我们的计算流程,返回是RDD[T],可以是一个链式的转化,并且是延迟触发的。Action:代表是一个具体的行为,返回的值非RDD类型,可以一个object,或者是一个数值,也可以为Unit代表无返回值,并且action会立...
2017-12-25 21:19:47 1284
原创 理解正常代理与反向代理的区别
我们介绍了Nginx主要用来做反向代理,可能有些朋友并不很清楚什么是反向代理,本篇文章会介绍下反向代理和正向代理的不同之处:(一)正向代理正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置
2017-12-21 10:08:11 1005
原创 理解正常代理与反向代理的区别
[url]http://blog.csdn.net/u010454030/article/details/78860412[/url]
2017-12-21 09:57:45 134
原创 Nginx入门介绍与安装
Nginx是什么?Nginx是俄罗斯人编写的十分轻量级的HTTP和反向代理服务器。发音:"engine X"Nginx能干什么?(1)Http反向代理Nginx 支持正则表达式以区分静态资源或者动态资源,提供性能稳定,并且能够提供配置灵活的转发功能。 ,其中动态资源可以进一步转发给后端的 Proxy Server, 而静态资源则可以在 Nginx 层面使用本地缓存策
2017-12-20 21:50:31 589
Nginx入门介绍与安装
### Nginx是什么?Nginx是俄罗斯人编写的十分轻量级的HTTP和反向代理服务器。发音:"engine X"### Nginx能干什么?#### (1)Http反向代理Nginx 支持正则表达式以区分静态资源或者动态资源,提供性能稳定,并且能够提供配置灵活的转发功能。,其中动态资源可以进一步转发给后端的 Proxy Server, 而静态资源则可...
2017-12-20 21:38:10 101
原创 给centos重新安装yum的base-repo源
如果自己的centos的系统yum源出现问题了,如何才能修复?方式一:使用国内的阿里云镜像(1)把/etc/yum.repos.d/下面所有的源给删除掉了(2)下载镜像# CentOS 5wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo# Ce
2017-12-14 21:19:19 45527 1
protobuf-2.5.0.tar.gz
2015-06-24
luke4.5的jar包
2013-10-29
lucene的索引工具
2013-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人