自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ghost Stories

独立博客地址:http://wangnan.tech

  • 博客(139)
  • 收藏
  • 关注

原创 独立博客地址 http://wangnan.tech

 http://wangnan.tech

2018-02-08 10:52:59 2917

原创 《Hadoop权威指南》书摘-关于YARN

转载请注明出处 独立博客:http://wangnan.tech 简书:http://www.jianshu.com/u/244399b1d776** 知乎:https://zhuanlan.zhihu.com/c_121958856简介Apache YARN (Yet Another Resource Negotiaor的缩写)是Hadoop的集群资源管理系统,YARN被引入...

2018-07-27 15:46:13 359

原创 《Hadoop权威指南》书摘-HDFS概述

转载请注明出处 独立博客:http://wangnan.tech 简书:http://www.jianshu.com/u/244399b1d776** 知乎:https://zhuanlan.zhihu.com/c_121958856设计超大文件,已经有储存PB级数据的Hadoop集群了流式数据访问,一次写入,多次读取商用硬件 不需要运行在昂贵的硬件上低时间延迟的数据访...

2018-07-27 15:45:22 339

原创 《Hadoop权威指南》书摘-MapReduce概述

转载请注明出处 独立博客:http://wangnan.tech 简书:http://www.jianshu.com/u/244399b1d776** 知乎:https://zhuanlan.zhihu.com/c_121958856MapReduce是一种可用于数据处理的编程模型,MapReduce程序本质上是并行运行的,因此可以将大规模数据分析任务分发给任何一个拥有足够多机器的...

2018-07-27 15:44:34 1250

原创 《Hadoop权威指南》书摘-初识Hadoop

转载请注明出处 独立博客:http://wangnan.tech 简书:http://www.jianshu.com/u/244399b1d776** 知乎:https://zhuanlan.zhihu.com/c_121958856数据!数据!我们生活在一个数据爆炸的时代,我们必须想办法好好的的储存和分析这些数据数据储存和分析解决硬件故障:使用副本解决从无数个...

2018-07-27 15:43:31 281

原创 ES官方调优指南翻译

原文:https://www.elastic.co/guide/en/elasticsearch/reference/current/how-to.html转载请注明出处:http://wangnan.tech或简书:http://www.jianshu.com/u/244399b1d776ES发布时带有的默认值,可为es的开箱即用带来很好的体验。全文搜索、高亮、聚合、索引...

2018-02-08 11:40:49 4836 1

原创 Lucene学习笔记

概要: 1. 全文检索的原理和基本概念(铺垫) 2. Lucene简介,索引文档和检索文档的过程(主要) 3. Lucene 相似度评分算法(拓展)全文检索原理(铺垫)数据分类生活中的数据总体分为三种: - 结构化数据,固定格式和长度,如数据库数据,元数据等 - 非结构化数据,无固定格式和长度,如邮件,word文档,商品描述信息,非结构...

2018-02-08 11:39:29 495

原创 Elasticsearch性能优化

目录批量提交gateway集群状态维护缓存字段数据curatorprofiler批量提交在 CRUD 章节,我们已经知道 ES 的数据写入是如何操作的了。喜欢自己动手的读者可能已经迫不及待的自己写了程序开始往 ES 里写数据做测试。这时候大家会发现:程序的运行速度非常一般,即使 ES 服务运行在本机,一秒钟大概也就能写入几百条数据。这种速度显然不...

2018-02-08 11:38:46 1176

原创 Elasticsearch数据接口用例

目录增删改查搜索请求scriptreindex增删改查增删改查是数据库的基础操作方法。ES 虽然不是数据库,但是很多场合下,都被人们当做一个文档型 NoSQL 数据库在使用,原因自然是因为在接口和分布式架构层面的相似性。虽然在 Elastic Stack 场景下,数据的写入和查询,分别由 Logstash 和 Kibana 代劳,作为测试、调研和排错时的基...

2018-02-08 11:37:44 2953

原创 Elasticsearch架构原理

架构原理本书作为 Elastic Stack 指南,关注于 Elasticsearch 在日志和数据分析场景的应用,并不打算对底层的 Lucene 原理或者 Java 编程做详细的介绍,但是 Elasticsearch 层面上的一些架构设计,对我们做性能调优,故障处理,具有非常重要的影响。所以,作为 ES 部分的起始章节,先从数据流向和分布的层面,介绍一下 ES 的工作原理,以及相关的可控...

2018-02-08 11:36:53 39683 5

原创 logstash用kafka作为输入源

安装依赖:jdk7及以上版本 Logstash版本:2.3.4步骤: 1. 官网下载tar.gz包链接地址:链接 2. 扔到机器上解压tar zxvf logstash-2.3.4.tar.gz3.安装kafka input插件,顺便把output也安装了bin/logstash-plugin install logstash-outpu...

2018-02-08 11:35:26 5361

原创 Logstash输出到Elasticsearch笔记

output配置中elasticsearch配置actionindex 给一个文档建立索引delete 通过id值删除一个文档(这个action需要指定一个id值)create 插入一条文档信息,如果这条文档信息在索引中已经存在,那么本次插入工作失败update 通过id值更新一个文档。更新有个特殊的案例upsert,如果被更新的文档还不存在,那么就会用到...

2018-02-08 11:34:44 20220

原创 Logstash中的Grok正则捕获

概述Grok 是 Logstash 最重要的插件。你可以在 grok 里预定义好命名正则表达式Grok 支持把预定义的 grok 表达式 写入到文件中,官方提供的预定义 grok 表达式见:https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns。grok的语法格式为 %{...

2018-02-08 11:23:09 4041

原创 Logstash学习笔记

背景先介绍下ELK stackElasticsearch Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可用和管理便捷性而设计LogstashLogstash 是动态数据收集管道,拥有可扩展的插件生态系统,能够与 Elasticsearch 产生强大的协同作用。KibanaKibana 能够以图表的形式呈现数据...

2018-02-08 11:22:19 5605

原创 高并发系统限流设计

概述高并发系统时有三把利器用来保护系统:缓存、降级和限流,缓存的目的是提升系统访问速度和增大系统能处理的容量,降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开,而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限流...

2018-02-08 11:21:16 2136

原创 Git rebase详细解析

merge 和rebase什么关系git rebase 和git merge 做的事其实是一样的。它们都被设计来将一个分支的更改并入另一个分支,只不过方式有些不同。merge命令示例git checkout featuregit merge master这样feature 分支中新的合并提交(merge commit)将两个分支的历史连在了一起Me...

2018-02-08 11:20:37 47230 1

原创 企业级API网关的设计

背景是出现在系统边界上的一个面向API的、串行集中式的强管控服务API网关的流行,源于近几年来,移动应用与企业间互联需求的兴起。移动应用、企业互联,使得后台服务支持的对象,从以前单一的Web应用,扩展到多种使用场景,且每种使用场景对后台服务的要求都不尽相同。这不仅增加了后台服务的响应量,还增加了后台服务的复杂性。随着微服务架构概念的提出,API网关成为了微服务架构的一个标配...

2018-02-08 11:19:57 480

原创 为什么要用 HTTPS

前言HTTP 是一种超文本传输协议,它是无状态的、简单快速的、基于 TCP 的可靠传输协议。缺点: HTTP 是明文传输的,这就造成了很大的安全隐患让自己变得更安全,从源头来控制风险。这就诞生了 HTTPS 协议HTTP 三大风险:窃听风险(eavesdropping):第三方可以获知通信内容。篡改风险(tampering):第三方可以修改通信内容。...

2018-02-08 11:19:05 369

原创 ES中的分析器和IK分词器插件

一些概念Token(词元)全文搜索引擎会用某种算法对要建索引的文档进行分析, 从文档中提取出若干Tokenizer(分词器)Tokenizer(分词器)这些算法叫做Tokenizer(分词器)Token Filter(词元处理器)这些Token会被进一步处理, 比如转成小写等, 这些处理算法被称为TokenFilter(词元处理器)T...

2018-02-08 11:18:03 4428

原创 ES5.x部署遇到的问题汇总

问题一 can not run elasticsearch as root不能以root用户启动ES服务器非要以root用户运行,对于5.X,在config/jvm.options配置文件中,添加 -Des.insecure.allow.root=true问题二 max virtual memory areas vm.max_map_...

2018-02-08 11:16:47 926

原创 微服务架构解析(附思维导图)

思维导图 介绍微服务架构(Microservice Architecture)是一种架构概念旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。传统开发模式和微服务的区别优点开发简单,集中式管理基本不会重复开发功能都在本地,没有分布式的管理和调用消耗...

2018-02-08 11:16:00 6850

原创 JVM编译优化

在部分的商用虚拟机中,Java 程序最初是通过解释器(Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”。为了提高热点代码的执行效率,在运行时,即时编译器(Just In Time Compiler )会把这些代码编译成与本地平台相关的机器码,并进行各种层次的优化。HotSpot 内的即时编译器...

2018-02-08 11:13:45 301

原创 JVM垃圾回收器详解

说明针对jdk7关于垃圾回收可以查看我之前的博文: JVM内存管理-垃圾回收与内存分配垃圾收集器分类按线程数分可以分为串行垃圾回收器和并行垃圾回收器。串行垃圾回收器一次只使用一个线程进行垃圾回收;并行垃圾回收器一次将开启多个线程同时进行垃圾回收。在并行能力较强的 CPU 上,使用并行垃圾回收器可以缩短 GC 的停顿时间。按照工作模式分...

2018-02-08 11:10:52 198

原创 Elasticsearch5.5官方文档翻译-Zen Discovery

章节Modules » Discovery » Zen Discovery概述Zen Discovery是内置在elasticsearch的默认发现模块。它提供单播发现,但可扩展到支持云环境和其他形式的发现。禅发现集成了其它模块,例如,节点之间的所有通信是使用transport模块。它被分离成多个子模块,其解释如下:Ping 这是一个节点使用发现机制...

2018-02-08 11:09:39 479

原创 Elasticsearch5.5官方文档翻译-节点

概述章节:Moudles>>Node任何时候你启动Elasticsearch的实例时,你启动一个 节点。连接的节点的集合被称为一个 集群。如果您正在运行Elasticsearch的一个节点,那么你有一个包含一个节点的集群。集群中的每个节点都默认的可以处理HTTP和 Transport 流量。传输层专门用于节点们和JavaTransportClient的的通信...

2018-02-08 11:08:39 783

原创 JVM内存溢出详解(栈溢出,堆溢出,持久代溢出以及无法创建本地线程)

写在前面内存溢出和内存泄漏的区别:内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无...

2018-02-08 11:07:40 1727

原创 JVM内存管理-垃圾回收与内存分配

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。Java垃圾收集哪些内存需要回收?线程私有区的程序计数器、虚拟机栈和本地方法栈不需要,重点是共享数据区的堆和方法区部分的内存什么时候回收?判断对象是否存活的算法?引用计数法逻辑:给对象添加一个引用计数器,每当有一个地方引...

2018-02-08 11:06:35 204

原创 Java-ArrayList快速失败机制/CopyOnWriteArrayList/扩容

1.迭代ArrayList时做add或remove操作会发生什么?答案会抛出 java.util.ConcurrentModificationException 解决方法对JAVA集合进行遍历删除时务必要用迭代器使用CopyOnWriteArrayList总结:对于ArrayList,在使用Iterator遍历时,不能使用list.add()...

2018-02-08 11:03:59 947

原创 Java-LinkedHashMap与LRUcache整理

Table of ContentsLRU 缓存介绍实现代码LRU 缓存介绍我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求助电话本,但是,通过电话本查找还是很费时间的。但是,我们大脑能够记住的东西是一定的,我们只能记住自己最熟悉的,而

2017-09-08 15:26:56 409

原创 Java-HashSet/LinkedHashSet整理

Table of ContentsHashSet概述构造方法add方法contains方法remove方法clone方法注意LinkedHashSet概述构造方法总结HashSet概述HashSet 是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素所有放入 HashSet 中的集合元

2017-09-08 15:26:34 250

原创 Java-LinkedHashMap整理

Table of Contents概述例子HashMapLinkedHashMap实现成员变量初始化储存读取排序模式对比下几种MapHashMapHashtableLinkedHashMapTreeMap总结概述HashMap 是无序的,HashMap 在 put 的时候是根据 key 的 hashcode 进行 hash 然

2017-09-08 15:26:08 331

原创 TIME_WAIT和CLOSE_WAIT

Table of ContentsTIME_WAIT和CLOSE_WAIT如何解决存在大量TIME_WAIT和CLOSE_WAIT的问题减少TIME_WAIT状态减少CLOSE_WAIT状态TIME_WAIT和CLOSE_WAIT在服务器的日常维护过程中,会经常用到下面的命令:netstat -n | awk ‘/^tcp/ {++S[$NF]}

2017-09-08 15:25:15 363

原创 TCP协议三次握手四次挥手整理

Table of ContentsTCP协议中的三次握手直接上图解释来个更清晰的图为什么要三次握手SYN攻击TCP协议中的四次挥手直接上图解释(以客户端发起断开为例子)来个更清晰的图为什么要四次分手来个完整的图问题为什么连接的时候是三次握手,关闭的时候却是四次握手?为什么TIME_WAIT状态需要经过2MSL(最大报文段生存时间)才能返回到CLOSE状态?

2017-09-08 15:24:44 285

原创 网络分层、TCP、IP、Http、Socket整理

Table of Contents网络分层五层因特网协议栈(从上到下)五层因特网协议栈介绍应用层传输层网络层数据链路层物理层七层因特网协议栈(从上到下)和五层结构有什么区别7层因特网协议栈介绍一句话概述物理层数据链路层网络层传输层会话层表示层应用层总结图问题汇总常用的协议位于那一层TCP/IP和HTTP的关系SocketSocket和TCP/IP

2017-09-08 15:23:32 916

原创 Java-BIO/NIO/AIO整理

Table of Contents参考http://qindongliang.iteye.com/blog/2018539一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作。同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO。阻塞IO和非阻塞IO的区别在于第一步,发起IO请求是否会被阻塞,

2017-09-08 15:22:41 252

原创 JVM内存模型整理

Table of Contents内存模型图详细介绍程序计数器PC虚拟机栈本地方法栈方法区Java堆一般地大家讲到的Java内存其实就是Jvm内存Java代码是运行在Java虚拟机之上的,由Java虚拟机通过解释执行(解释器)或编译执行(即时编译器)来完成,故Java内存模型,也就是指Java虚拟机的运行时内存模型。内存模型图详细

2017-09-08 15:20:38 282

原创 Java-WeakHashMap整理

介绍以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除WeakHashMap 类的行为部分取决于垃圾回收器的动作。因为垃圾回收器在任何时候都可能丢弃键,WeakHashMap

2017-07-18 15:52:45 301

原创 《程序员健康指南》书摘

给自己称重,但不要执着于此。健康是个多面体,单单专注于其中的一面,无法给你的健康情况做出一个准确的描述。看看本章开头的问题清单,把答案写下来。时不时回顾答案,看看情况是否有改善。把车停在停车场最里边,这样就能多走一会儿路去办公室了。走楼梯,不坐电梯。玩电视游戏时,尽量选择需要四肢协作的游戏,而不是使用只需控制器的游戏。每两个星期测量一次静息心率。记录每天散步的步数,给自己设定一个目标。练习

2017-07-18 15:52:14 496

原创 Java引用类型

在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。强引用(StrongReference)强引用是使用最普遍的引用。如

2017-07-18 15:51:36 275

原创 Java-HashMap整理

参考:http://blog.csdn.net/vking_wang/article/details/14166593http://wiki.jikexueyuan.com/project/java-collection/hashmap.htmlHashMap数据结构数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);

2017-07-18 15:50:05 276

空空如也

空空如也

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

TA关注的人

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