自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lee_Suoer的博客

记录学习过程的点点滴滴

  • 博客(71)

原创 mybatis执行流程

mybatis执行流程前提:正文我们从一个简单的查询开始开始执行mapperMethod.executeexecuteForManyDefaultSqlSessionexecutor 的执行到此一次查询就结束了总结前提:本次讲解的环境是在spring与mybatis整合的情况下进行的源码分析,整合的部分就不细说了。正文我们从一个简单的查询开始可以看到,我们自己定义的接口其实最终成为了 ...

2019-09-01 12:31:35 114

原创 RPC - apache thrift

使用:先在官网下载对应的编译器,然后在项目里配置好依赖之后我们就可以编写我们的idl文件了namespace java thrift.generatedtypedef i16 shorttypedef i32 inttypedef i64 longtypedef bool booleantypedef string Stringstruct Person ...

2019-08-17 11:31:02 46

原创 elasticsearch 底层模块

shard allocation1、shard allocation的介绍两种node:master node,data nodemaster node的一个很重要的功能,比如说,你现在创建了一个索引,然后这个索引是不是有很多的shard,可能你自己指定了几个primary shard,每个primary shard还有一些replica shard。master node,其实就是决...

2019-08-17 10:23:18 168

原创 springboot 的启动流程(二)

本文主要讲述 applicationcontext的refresh方法。在上一篇说了在applicationcontext的预处理阶段之后,开始对其进行刷新工作。这里把我们的applicationcontext转成了 AbstractApplicationContext ,并调用了其refresh方法。public void refresh(...

2019-07-28 12:48:25 53

原创 springboot 的启动流程(一)

1. main方法里直接调用了 SpringApplication.run(DemoApplication.class, args); 方法,并传入了这个当前类的class对象和参数(外部传入进来的)2. 这里使用了我们传入的class对象创建了一个springapplication对象,然后执行run方法,传入我们给定的参数。 (1) 创建spri...

2019-07-27 14:37:57 59

原创 Flink 的本地运行job流程

一个简单的wordcount demopublic class BatchWordCount { public static void main(String[] args) throws Exception { String inputPath = "D:\\outputDir\\file.txt"; String outPath = "D:\\ou...

2019-06-28 15:49:20 1142

原创 kafka

集群安装,先配置好 zk 集群,启动。解压 kafka,之后修改配置文件 修改 config 下的server.properties修改 log 存储位置修改broker的 id配置好外部的 zk 位置启动 kafka 集群 ./bin/kafka-server-start.sh ./config/server.properties 1>/dev/nu...

2019-04-29 13:27:53 36

原创 storm

解压 storm 修改配置文件 storm.yaml之后就可以到bin目录下启动了启动storm在nimbus主机上nohup ./storm nimbus 1>/dev/null 2>&1 &nohup ./storm ui 1>/dev/null 2>&1 &在supervisor主机上nohup ./s...

2019-04-26 14:47:08 313

原创 hbase HA

解压缩hbase的安装包,进入conf目录下。先将hadoop的hdfs-site.xml和core-site.xml 配置文件放到 conf目录下修改配置文件 hbase-env.sh要使用外部的zk配置java的路径修改hdfs-site.xml<configuration><property> <n...

2019-04-26 12:59:08 241

原创 hive

给hive配置mysql在 hive/conf 目录下hive-site.xml<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop01:3306/hive?createDatab...

2019-04-25 13:49:52 191

原创 hadoop HA搭建

一共七台服务器hadoop01 -- NameNode、DFSZKFailoverController(zkfc)hadoop02-- NameNode、DFSZKFailoverController(zkfc)hadoop03-- ResourceManagerhadoop02-- ResourceManagerhadoop02-- DataNode、NodeMana...

2019-04-23 17:59:12 80

原创 hadoop mr

先编写MapReduce程序(对文本数据统计)。//4个泛型中,前两个是指定mapper输入数据的类型,KEYIN是输入的key的类型,VALUEIN是输入的value的类型//map 和 reduce 的数据输入输出都是以 key-value对的形式封装的//默认情况下,框架传递给我们的mapper的输入数据中,key是要处理的文本中一行的起始偏移量,这一行的内容作为valuepub...

2019-04-20 14:40:33 144

原创 hadoop 单机

hadoop解压之后:修改hadoop/etc/hadoop 下的配置文件:修改hadoop-env.sh 添加JAVA_HOME 路径修改core-site.xml;<property> <name>fs.defaultFS</name> <value>hdfs://had...

2019-04-16 10:25:35 69

原创 elasticsearch 集群命令操作

如果关闭了一个索引之后,那么这个索引是不会带来任何的性能开销了,只要保留这个索引的元数据即可,然后对这个索引的读写操作都不会成功。一个关闭的索引可以接着再打开,打开以后会进行shard recovery过程。比如说你在做一些运维操作的时候,现在你要对某一个索引做一些配置,运维操作,修改一些设置,关闭索引,不允许写入,成功以后再打开索引压缩索引:...

2019-04-12 14:21:28 822

原创 elasticsearch hdfs 备份数据

首先创建好hdfs 集群,再修改一下hdfs-site.xml ,添加<property> <name>dfs.permissions</name> <value>false</value></property>因为我的hdfs是用root用户操作的,elasticsearch 是用 es 用户操作的,...

2019-04-11 15:58:46 248

原创 hdfs集群搭建

先安装好jdk,三台机器配置好无密登录, namenode机器还要配置自己对自己的无密登录,再在环境变量中添加配置:export HADOOP_PREFIX=/home/lishuo/app/hadoop-2.7.1export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbinexport HADOOP_COMMON_HOME=$HADO...

2019-04-11 11:24:23 137

原创 elasticsearch 集群搭建

es 不允许使用root用户启动,先创建es用户,配置好jdk1.8+,解压缩es安装包。对系统 /etc/security/limits.conf 文件进行修改设置对所有用户的文件描述符和线程处理数量* soft nofile 65536* hard nofile 65536* soft nproc 2048* hard nproc 4096针对es用户配置内存锁定,...

2019-04-10 14:23:03 128

原创 elasticsearch 集群配置

集群脑裂问题:discovery.zen.minimum_master_nodes参数对于集群的可靠性来说,是非常重要的。这个设置可以预防脑裂问题,也就是一个集群中存在两个master。如果因为网络的故障,导致一个集群被划分成了两片,每片都有多个node,以及一个master,那么集群中就出现了两个master了。但是因为master是集群中非常重要的一个角色,主宰了集群状态的维护,以及s...

2019-04-06 22:47:35 122

原创 elasticsearch centos集群

解压缩elasticsearch 包:最新es版本要求有JDK 8以上的版本bin:存放es的一些可执行脚本,比如用于启动进程的elasticsearch命令,以及用于安装插件的elasticsearch-plugin插件conf:用于存放es的配置文件,比如elasticsearch.ymldata:用于存放es的数据文件,就是每个索引的shard的数据文件logs:用于存放...

2019-04-03 22:42:42 45

原创 elasticsearch 高级

term vector介绍:获取document中的某个field内的各个term的统计信息term statistics: 设置term_statistics=true; total term frequency, 一个term在所有document中出现的频率; document frequency,有多少document包含这个termfield statistics: docu...

2019-04-02 22:49:19 338

原创 elasticsearch 数据建模

一对多数据关系映射:也可以分开来存放:第一次搜索,会得到很多个中间结果,之后再进行处理,这个时候的性能就不怎么好了。但是这两种方式各自有优缺点:数据不冗余,维护方便,应用层join,如果关联数据过多,导致查询过大,性能很差 反之亦然。一般来说,对于es这种NoSQL类型的数据存储来讲,都是冗余模式....对于文件系统的构造:path_hierarch...

2019-04-01 22:41:50 120

原创 elasticsearch 聚合搜索(2)

在200ms以内的,有百分之多少,在1000毫秒以内的有百分之多少如果想要percentile算法越精准,compression可以设置的越大如果的确不需要doc value,比如聚合等操作,那么可以禁用,减少磁盘空间占用如果要对分词的field执行聚合操作,必须将fielddata设置为true打开fielddata,然后将正排索引数据加载到内存中,才可以对分词的fi...

2019-03-30 10:45:29 337

原创 elasticsearch 聚合搜索

bucket:一个数据分组metric,就是对一个bucket执行的某种聚合分析的操作,比如说求平均值,求最大值,求最小值先准备一些数据:统计哪种颜色的电视销量最高size:只获取聚合结果,而不要执行聚合的原始数据aggs:固定语法,要对一份数据执行分组聚合操作popular_colors:就是对每个aggs,都要起一个名字,这个名字是随机的,你随便取什么都okterm...

2019-03-29 22:53:37 996

原创 elasticsearch Ik分词器

elasticsearch 配置ik分词器插件:将ik.zip复制到相应的文件夹下,解压。重启es两种analyzer,一般是选用ik_max_wordik_max_word: 会将文本做最细粒度的拆分ik_smart: 会做最粗粒度的拆分1、ik配置文件ik配置文件地址:es/plugins/ik/config目录IKAnalyzer.cf...

2019-03-28 22:33:10 55

原创 elasticsearch 深度搜索

match和phrase match(proximity match)区别:match:只要简单的匹配到了一个term,就可以理解将term对应的doc作为结果返回,扫描倒排索引,扫描到了就okphrase match:首先扫描到所有term的doc list; 找到包含所有term的doc list; 然后对每个doc都计算每个term的position,是否符合指定的范围; slop...

2019-03-27 22:40:01 423

原创 JDK Proxy类

Proxy为创建动态代理类和实例提供了一些静态方法,它也是通过这些方法所创建的所有类的父类。代理类在创建的时候实现了一系列接口(运行时的)。代理类实现了代理的接口。代理实例就是一个代理类的实例。每一个代理实例都关联一个实现invocation handler 对象。代理实例的方法调用会通过接口方法的分配到invocation handler的invoke方法调用。...

2019-03-19 11:13:31 101

原创 elasticsearch 搜索

首先,elasticsearch支持随时添加 field。对于type=text,默认会设置两个field,一个是field本身,比如articleID,就是分词的;还有一个的话,就是field.keyword,articleID.keyword,默认不分词,会最多保留256个字符对于term filter/query:对搜索文本不分词,直接拿去倒排索引中匹配。否则会对搜索条件分词...

2019-03-10 11:48:50 72

原创 elasticsearch javaapi

crud:public class EScrud { public static void main(String[] args) throws Exception { Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build(); ...

2019-03-03 11:14:36 96

原创 elasticsearch - 分词,优化,别名替换

filter,仅仅只是按照搜索条件过滤出需要的数据而已,不计算任何相关度分数,对相关度没有任何影响,不需要按照相关度分数进行排序,同时还有内置的自动cache最常使用filter的数据query,会去计算每个document相对于搜索条件的相关度,并按照相关度进行排序,而且无法cache结果 使用validate来对语句进行验证  如果对一个string field进...

2019-02-21 22:25:25 382

原创 jdk8 stream - collector类

 collect这个类提供了一个对于stream的可改变的精简操作,就是可以多个输入的元素累计到一个可变的结果容器内,当所有的元素都被处理过了之后还可以决定是否要将这个可变的容器转型到一个最终的容器中,这一步的操作可以做也可以不做。对stream的精简操作可以是串行化的也可以是并行化的。精简操作例如:将元素累计到一个容器内,将字符串拼接到一个StringBuilder里,计算元素的加减...

2019-02-18 16:04:35 571

原创 elasticsearch - 路由,mapping,分词

 一个index会被分成多个shard,每个document只会存在一个shard上,由hash算法决定shard = hash(routing) % number_of_primary_shards通常这个routing就是document的id值。也可以自己指定。根据name字段路由。 这也就是es 的 primary shard  的数量不可变的原因。 增...

2019-02-17 22:22:41 190

原创 elasticsearch - 集群,原理

 一般集群中会自动选出一个节点来作为master节点,它负责维护集群中的元数据信息,索引的创建和删除,节点的增加和移除一个index可能会被分成多个shard,primary shard的数量一旦确定就不会修改了,但是replica shard的数量会。primary shard不会和自己的replica shard存放在同一个机器上,但是可以和别的replica shard放在一起可...

2019-02-16 16:42:11 62

原创 elasticsearch - 概念,基操

elasticsearch的核心概念:   Near Realtime(NRT):近实时性,从写入数据到可以被搜索到会有一个小小的延迟   Cluster:集群,包含多个节点,每个节点属于哪个集群是通过配置节点的所属集群名称,默认是elasticsearch   Node:节点,每个节点也有一个名称,默认系统分配的,默认也会加入一个名为elasticsearch的集群中。   Do...

2019-02-16 13:06:15 120

原创 springcloud: Router and Filter: Zuul

zuul的最大连接数和每个路由的最大连接数默认分别是200和20Hystrix 的隔离模式是   SEMAPHOREribbon 的隔离模式可以被改为 thread如何引入:zuul作为一个代理来调用后台服务,不需要管理跨域和认证等其他的事情在主类上添加  @EnableZuulProxy  注解,这样本地的调用就可以重定向到其他的服务了。出于简便,例如   一个/...

2019-02-11 22:42:23 156

原创 redis 高可用集群 ruby

准备了6个redis节点,保证可以相互访问。准备ruby环境yum install rubyyum install rubygemsgem install redis解决ruby版本低的问题curl -L get.rvm.io | bash -s stablesource /usr/local/rvm/scripts/rvmrvm list known...

2019-01-14 15:20:07 83

原创 netty 的编解码器

ByteToMessageDecoder这是一个入栈处理器,可以将一个流式的字节码转换为bytebuf或者其他的消息格式。上图实例就是从一个输入的bytebuf中读取所有的字节并重新创建一个新的bytebuf一般情况下,这种处理器应该放在pipeline的前边,例如  DelimiterBasedFrameDecoder, FixedLengthFrameDecoder, Len...

2019-01-05 23:20:41 94

原创 springboot redis

package com.example.demo.config;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework...

2018-12-31 22:14:17 86

原创 pods

pod是kubernates最小的单元。集群中一个pod就是一个进程pod中封装了容器,存储的资源还有独立的ip,来支配container怎么运行。pod中可能有一个或者多个相互耦合container通常情况下pod都会有一个container,kubernates直接管理pod而不是container,也可能包含了一组共同协作的container可以运行多个pod,每个pod...

2018-12-28 23:30:00 156

原创 Containers --- Environment Variables

Kubernetes Container环境为容器提供了几个重要资源:文件系统,融合了image和一个或多个vulume。 有关Container本身的信息。 有关群集中其他对象的信息Container 的主机名是运行Container的Pod的名称。它可以通过 libc中的hostname命令或 gethostname函数调用获得Pod名称和命名空间可通过downloadAPI...

2018-12-27 22:38:09 58

原创 Containers --- images

你要先创建你的docker镜像然后把他推送到仓库后再从kubernates pod中引用container的image属性支持与docker命令相同的语法,包括私有注册表和标记。默认拉取策略是IfNotPresent,即如果已经存在镜像了那么kubelet就会跳过拉取镜像这一步。如果你想要每次总是拉取,你可以参考下面的某一个做法:将 container的imagePullPol...

2018-12-26 23:03:37 54

空空如也

空空如也

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