- 博客(43)
- 资源 (7)
- 收藏
- 关注
原创 Java设计模式之观察者模式(发布/订阅模式)
1、概述观察者模式又称为发布/订阅(Publish/Subscribe)模式观察者设计模式涉及到两种角色:主题(Subject)和观察者(Observer)(1)Subject模块 Subjec模块有3个主要操作addObserver():注册添加观察者(申请订阅)deleteObserver():删除观察者(取消订阅)notifyObserver():主题状态发生变化时通...
2018-01-31 21:28:35 21415 4
原创 Eclipse导入Web项目 src、web、css、js等变成包解决办法
1.问题描述git克隆下来一个普通的Java web项目[root@hadron hadron]# git clone -b kylin git@192.168.1.2:hadron/web_store.git然后Eclipse导入该web项目产生异常,整个项目成为Java Resources的子目录,src变成了包,jsp web页面,css,javascript等也变成了包。
2018-01-29 15:06:48 5167
原创 简单理解Zookeeper的Leader选举
Leader选举是保证分布式数据一致性的关键所在。Leader选举分为Zookeeper集群初始化启动时选举和Zookeeper集群运行期间Leader重新选举两种情况。在讲解Leader选举前先了解一下Zookeeper节点4种可能状态和事务ID概念。1、Zookeeper节点状态LOOKING:寻找Leader状态,处于该状态需要进入选举流程LEADING:领导者状态,处于该状
2018-01-28 22:06:39 31510 21
原创 Zookeeper中的分布式一致性协议ZAB
1、Zab 协议在分布式系统中实现一致性是件困难的事。 Paxos 算法可以较好的解决分布式系统的一致性,但由于复杂,在实际工程上不是很合适。 ZAB(ZooKeeper Atomic Broadcast ) 协议借鉴了 Paxos 的思想,ZAB在Paxos算法上做了重要改造,和Paxos有着明显的不同,以满足工程上的实际需求。有序性是 Zab 协议与 Paxos 协议的一个核心区别
2018-01-28 21:15:38 1748
原创 ZooKeeper典型应用
参考了:https://www.jianshu.com/p/84ad63127cd11、CAP定理1.1 CAP定理分布式系统最多只能满足C(Consistency一致性)、A(Available可用性)、P(Partition tolerance分区容错性)三个特性中的两个,不能同时满足三个。1.2 最终一致性在目前的分布式系统中,P(分区容错性)是必须要实现
2018-01-28 17:32:23 592
原创 Java IO流处理 面试题汇总
说明:本节内容来源于网络汇总输入输出流是相对于内存而言的!1、面试题汇总(1)java中有几种类型的流?字符流和字节流。字节流继承inputStream和OutputStream,字符流继承自InputSteamReader和OutputStreamWriter。(2)谈谈Java IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞答:输入流就...
2018-01-27 22:17:36 107016 18
原创 基于Lock+Condition实现生产者消费者模式
package demo;import java.util.ArrayList;import java.util.List;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;...
2018-01-27 17:47:00 1066
原创 Java Lock机制解读
1、synchronizedsynchronized是Java语言内置的特性,用来实现对资源的同步访问以及用wait和notify来实现线程间通信。如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁。 存在问题:那么如果这个获取锁的线程由于要等待IO或者其他原因(比如调用sleep方法)被阻塞了,但是又没
2018-01-27 16:20:11 4420
原创 Java join线程最简单例子
1、普通多线程package demo;public class JoinThread extends Thread { public JoinThread(String name){ super(name); } @Override public void run(){ for(int i=0;i100;i++){
2018-01-27 11:22:06 358
原创 Java多线程3种实现方式
1、继承Thread类package demo;public class FirstThread extends Thread{ private String name; // 定义name属性 public FirstThread(String name) { this.name = name; } public void run()
2018-01-26 11:47:52 383
原创 Java HashSet源码分析
1、源码分析废话不多说,直接上代码,相关解释请参见注释package java.util;/** * * @param <E> the type of elements maintained by this set * * @see Collection * @see Set * @see TreeSet * @see Ha...
2018-01-26 10:37:34 429
转载 Hadoop Map中如何处理跨行Block和InputSplit
比如对于那么对于一个记录行形式的文本大于128M时,HDFS将会分成多块存储(block),同时分片并非到每行行尾。这样就会产生两个问题 1. Hadoop的一个Block默认是128M,那么对于一个记录行形式的文本,会不会造成一行记录被分到两个Block当中? 2. 在把文件从Block中读取出来进行切分时,会不会造成一行记录被分成两个InputSplit,如果被分成两个InputSplit...
2018-01-24 22:41:54 1474 2
转载 Kafka原理框架汇总
Kafka拓扑结构1.producer: 消息生产者,发布消息到 kafka 集群的终端或服务。 2.broker: kafka 集群中包含的服务器。 3.topic: 每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。 4.partition: partition 是物理上的概念,每个 topic 包含一个或多个 part...
2018-01-24 15:08:39 845
转载 Flume框架原理
Flume的架构主要有一下几个核心概念:Event:一个数据单元,带有一个可选的消息头 Flow:Event从源点到达目的点的迁移的抽象 Client:操作位于源点处的Event,将其发送到Flume Agent Agent:一个独立的Flume进程,包含组件Source、Channel、Sink Source:用来消费传递到该组件的Event Channel:中转Event的一个临
2018-01-24 14:37:50 861
原创 命令修改副本数:hadoop fs -setrep
1、hadoop fs -setrepsetrepUsage: hadoop fs -setrep [-R] [-w] Changes the replication factor of a file. If path is a directory then the command recursivelychanges the replication factor of all
2018-01-23 14:31:21 12205 3
原创 Linux safe-rm
1、下载(1)下载[root@node0 ~]# wget https://launchpad.net/safe-rm/trunk/0.12/+download/safe-rm-0.12.tar.gz(2)解压缩[root@node0 ~]# tar -zxvf safe-rm-0.12.tar.gz -C /optsafe-rm-0.12/safe-rm-0.12/INSTA
2018-01-23 11:19:05 1295 1
转载 HBase rowkey设计案例
hbase所谓的三维有序存储的三维是指:rowkey(行主键),column key(columnFamily+qualifier),timestamp(时间戳)三部分组成的三维有序存储。rowkey是行的主键,而且hbase只能用个rowkey,或者一个rowkey范围即scan来查找数据。所以 rowkey的设计是至关重要的,关系到你应用层的查询效率。rowkey是以字典顺序排序的,存...
2018-01-22 22:44:14 5027 2
原创 ElasticSearch 6.x 学习笔记:25.Java API之索引管理
25.1 判定索引是否存在package cn.hadron;import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse;import org.elasticsearch.client.IndicesAdminClient;import org.elasticsearch.cl
2018-01-21 23:02:20 6109 5
原创 ElasticSearch 6.x 学习笔记:24.Java API连接Elasticsearch
24.1 实例演示package cn.hadron;import java.net.InetAddress;import java.net.UnknownHostException;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.client.transport.TransportC
2018-01-20 22:51:39 10378 9
原创 ElasticSearch 6.x 学习笔记:23.Java API之Maven项目
23.1 创建maven项目(1)新建工程项目 (2)选择maven类型 (3)输入名称 (4)确认maven安装路径 (5)项目路径 (6)构建maven工程 (7)构建完成 23.2 编辑pom.xml参考官网,编写pom.xml https://www.elastic.co/guide/en/elasticsearch/client/j
2018-01-20 21:47:57 6941
原创 ElasticSearch 6.x 学习笔记:22.桶聚合
为了满足桶聚合多样性需求,修改文档如下。DELETE my-indexPUT my-indexPUT my-index/persion/1{ "name":"张三", "age":27, "gender":"男", "salary":15000, "dep":"bigdata"}PUT my-index/persion/2{ "name":"李四"
2018-01-19 23:16:51 6653
原创 ElasticSearch 6.x 学习笔记:21.指标聚合
https://www.elastic.co/guide/en/elasticsearch/reference/6.1/search-aggregations-metrics.html为了方便聚合统计,增加两条文档PUT my-index/persion/5{ "name":"程裕强", "age":28, "salary":10000}PUT my-index/pe
2018-01-19 14:57:13 2383
原创 ElasticSearch 6.x 学习笔记:20.搜索排序
20.1 按照文档添加顺序排序GET website/_searchGET website/_search{ "query": { "match_all": {} }}20.2 按照文档相关度评分排序GET website/_search{ "query": { "term": { "title": { "value
2018-01-19 14:31:01 4155
原创 ElasticSearch 6.x 学习笔记:19.搜索高亮
19.1 高亮概述参照官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/6.1/search-request-highlighting.htmlHighlighters enable you to get highlighted snippets from one or more fields in your sea
2018-01-19 10:41:05 8918 4
原创 ElasticSearch 6.x 学习笔记:18.复合查询
【这一节先占个坑,后面再更新】https://www.elastic.co/guide/en/elasticsearch/reference/6.1/compound-queries.htmlCompound queries wrap other compound or leaf queries, either to combine their results and scores, to
2018-01-18 22:13:06 3193 3
原创 ElasticSearch 6.x 学习笔记:17.词项查询
17.1 词项查询介绍词项查询官网: https://www.elastic.co/guide/en/elasticsearch/reference/6.1/term-level-queries.htmlWhile the full text queries will analyze the query string before executing, the term-level qu
2018-01-17 23:14:19 3061
原创 ElasticSearch 6.x 学习笔记:16.全文检索
ElasticSearch 6.x 全文检索相关内容官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/6.1/full-text-queries.htmlThe high-level full text queries are usually used for running full text queries on
2018-01-17 11:17:30 6397 4
原创 ElasticSearch 6.x 学习笔记:15.检索入门
15.1 准备数据[es@node1 ~]$ vi website.json [es@node1 ~]$ cat website.json{ "index":{ "_index": "website", "_type": "blog", "_id": "1" }}{ "title": "Ambari源码编译","author":"程裕强","postdate":"2016-12-2
2018-01-17 10:51:42 3682
原创 ElasticSearch 6.x 学习笔记:14.mapping参数
14.1 mapping参数概述官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/6.1/mapping-params.html ElasticSearch提供了丰富的映射参数对字段的映射进行参数设计,比如字段的分词器、字段权重、日期格式、检索模型等等。14.2 analyzerhttps://www.el
2018-01-14 22:33:25 6030 3
原创 ElasticSearch 6.x 学习笔记:13.mapping元字段
13.1 元数据概述mapping元字段官网文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-fields.html#_document_source_meta_fieldsmapping元字段是mapping映射中描述文档本身的字段,大致可以分为文档属性元数据、文档元数据、索引元数据、路
2018-01-13 22:25:47 5296 3
原创 ElasticSearch 6.x 学习笔记:12.字段类型
12.1 字段类型概述 一级分类 二级分类 具体类型 核心类型 字符串类型 string,text,keyword 整数类型 integer,long,short,byte 浮点类型 double,float,half_float,scaled_floa
2018-01-12 23:03:45 36941 1
原创 ElasticSearch 6.x 学习笔记:11.映射Mapping
11.1 Mapping概述前文已经把ElasticSearch的核心概念和关系数据库做了一个对比,索引(index)相当于数据库,类型(type)相当于数据表,映射(Mapping)相当于数据表的表结构。ElasticSearch中的映射(Mapping)用来定义一个文档,可以定义所包含的字段以及字段的类型、分词器及属性等等。映射可以分为动态映射和静态映射。 (1)动态映射 我们知道
2018-01-12 22:14:38 16473
原创 Linux系统下命令卸载删除vmware
(0)卸载命令直接执行命令:vmware-installer -u vmware-workstation[root@hadron ~]# vmware-installer -u vmware-workstation(1)关闭(2)是否删除配置(3)开始卸载(4)卸载完成
2018-01-12 15:15:45 23846 1
原创 快速排序及其改进算法Java实现
import java.util.Random;public class Main { //输出数组 public static void show(int[] a){ for(int i:a) System.out.print(i+" "); System.out.println(); } //交换元素
2018-01-10 22:33:20 647
原创 常见排序算法Java实现
package test;public class SortDemo { /** * 输出数组 * @param a */ public static void show(int[] a){ for(int i:a){ System.out.print(i+" "); } S
2018-01-10 11:34:40 373
原创 ElasticSearch 6.x 学习笔记:10.批量操作
10.1 Bulk API如果文档数量非常庞大,商业运维中都是海量数据,一个一个操作文档显然不合实际。幸运的是ElasticSearch提供了文档的批量操作机制。我们已经知道mget允许一次性检索多个文档,ElasticSearch提供了Bulk API,可以执行批量索引、批量删除、批量更新等操作,也就是说Bulk API允许使用在单个步骤中进行多次 create 、 index 、 update
2018-01-09 15:32:46 4184
原创 ElasticSearch 6.x 学习笔记:9.版本控制
9.1 冲突处理如果两个线程同时修改一个文档,这时就会发生冲突。比如某件商品存货100件,用户1下单买走1件,剩余99件;与此同时用户2也下单买走1件,但是用户2不知道用户1已经下单,看到剩余商品仍然是99件。这样造成系统中显示商品总数比实际数量要多,这种情况在商业系统中肯定是不能容忍的。 在数据库领域中,有两种方法通常被用来确保并发更新时变更不会丢失: 1、悲观并发控制 这种方法被关系型数据
2018-01-09 14:58:25 4594
原创 ElasticSearch 6.x 学习笔记:8.路由机制
PUT blog/csdn/3?routing=chengyuqiang{ "id":3, "title":"Java简介", "author":"chengyuqiang", "content":"Oracle Java"}{ "_index": "blog", "_type": "csdn", "_id": "3", "_version": 1, "res
2018-01-09 11:43:04 3606 1
原创 ElasticSearch 6.x 学习笔记:7.文档
7.1 新建文档index/type/id(1)一般格式PUT blog/csdn/1{ "id":1, "title":"Elasticsearch简介", "author":"chengyuqiang", "content":"Elasticsearch是一个基于Lucene的搜索引擎"}{ "_index": "blog", "_typ
2018-01-09 10:13:18 6111 5
原创 ElasticSearch 6.x 学习笔记:6.索引
6.1 创建索引(1)简单方式PUT test{ "acknowledged": true, "shards_acknowledged": true, "index": "test"}(2)索引名不能包含大些字母PUT Test (3)重复创建PUT test(4)指定参数PUT blog{ "settings": { "number_of_shards": 3,
2018-01-09 09:32:32 9451 2
小巧的屏幕调节软件flux
2019-08-10
基于elasticsearch 6.x的新闻搜索项目代码
2019-07-17
Xftp6官方个人版
2018-11-11
Xshell 6 官方个人版
2018-11-11
hibernate5+spring4+springmvc+maven基本框架整合样例代码
2018-07-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人