自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Elasticsearch Mapping 学习笔记

简介Mapping就是ES数据字段的元数据,ES在创建索引的时候dynamic mapping会自动为不同的数据指定对应的 mapping , mapping 中包含了字段的类型、搜索方式(exact value或者full text)、分词器等。可以使用GET /index_name/_mappings查看一个索引的mapping。动态索引Dynamic mapping具有自动推导数据类型的能力,因为ES的mapping_type是有JSON分析器检测数据类型的,而JSON没有隐式类型转换(int-

2020-08-06 10:48:45 16

原创 _mget学习笔记

_mget可以全局范围内的所有索引中批量查询,使用方式为GET /_mget;也可以在指定索引下批量查询GET /<index>/_mget。基本用法如下:GET /_mget{ "docs": [ { "_index": "my-index", "_id": "1" }, { "_index": "my-index", "_id": "2" } ]}// 或者GET /my-index/_m

2020-08-06 10:46:38 8

原创 区分Dockerfile的ENTRYPOINT和CMD命令

Dockerfile的命令中包含ENTRYPOINT和CMD,使用ENTRYPOINT或者CMD,都可以达到让容器run起来的目的,但他们之间如何区分和选择呢?CMDCMD命令是一个容器的默认可执行体,也就是说容器启动之后默认会执行CMD的命令。我们在使用docker run时如果没有指定任何可执行命令并且Dockerfile里面业没有ENTRYPOINT,那么就会使用CMD指定的命令作为默认执行命令。CMD有以下三种使用凡事作为默认的执行命令的形式CMD ["program", "arg1"

2020-07-09 15:56:04 26

原创 docker run命令参数笔记

语法docker run [OPTIONS] IMAGE_NAME [COMMAND] [ARG...] --add-host list Add a custom host-to-IP mapping (host:ip)-a, --attach list 登录容器(必须是以docker run -d启动的容器) --blkio-weight uint16 Block IO (relative

2020-07-09 14:34:06 111

原创 部署单节点Elasticsearch 7.8

系统环境准备1. 上传elasticsearch安装包,并解压scp ~/Downloads/elasticsearch-7.8.0-linux-x86_64.tar.gz centos7.x:/usr/local/software/ssh centos7.xcd /usr/local/software/tar xf elasticsearch-7.8.0-linux-x86_64.tar.gz2. 创建运行elasticsearch的用户useradd ealsticsearch

2020-07-08 10:29:56 630

原创 根据URL路径访问不同的服务

URL例子http://www.zjwblog.cn/${module}/xxx/xx配置 upstreamupstream user { server 192.168.100.101 weight=30; server 192.168.100.102 weight=50; server 192.168.100.103 weight=20;}upstream order { server 192.168.100.111 weight=30; server 192.168.1

2020-06-30 18:35:42 45

原创 Linux date命令笔记

在日常操作Linux或者编写脚本时,需要使用到date来作为版本号,或者文件切割。很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。date的基本使用格式如下:date <option> <args>可用的选项选项描述-d <字符串>显示字符串所指的日期与时间。字符串前后必须加上双引号-s <字符串>根据字符串来设置日期与时间。字符串前后必须加

2020-06-29 11:13:21 40

转载 Linux常用命令推荐阅读收藏

https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md

2020-06-28 19:29:09 27

原创 Springboot将构建war运行到Tomcat

1. 构建一个普通的Maven项目2. 按如下修改pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mave

2020-06-28 15:43:58 19

原创 制作可运行Jar包,当存在依赖时的两种解决方法

1. 将Jar包方到libs下,并配置它<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <confi

2020-06-28 10:53:40 61

原创 Maven插件打包可运行jar

1. 写一个带main函数的类package com.zjw.test;/** * @author zjw <cn.zjwblog@gmail.com> 2020/6/24 */public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); }}2. 在pom.xml中加入插件,并指定可运行的类<build&gt

2020-06-28 10:06:21 56

原创 HBase读数据优化点

1. 调整scan缓存优化原理:在解释这个问题之前,首先需要解释什么是scan缓存,通常来讲一次scan会返回大量数据,因此客户端发起一次scan请求,实际并不会一次就将所有数据加载到本地,而是分成多次RPC请求进行加载,这样设计一方面是因为大量数据请求可能会导致网络带宽严重消耗进而影响其他业务,另一方面也有可能因为数据量太大导致本地客户端发生OOM。在这样的设计体系下用户会首先加载一部分数据到本地,然后遍历处理,再加载下一部分数据到本地处理,如此往复,直至所有数据都加载完成。数据加载到本地就存放在sca

2020-06-23 16:21:05 82

原创 hbase写数据优化点

1 是否需要写WAL,WAL是否需要同步写入优化原理:数据写入流程可以理解为一次顺序写WAL(HLog)加上一次写缓存(MemStore),通常情况下写缓存延迟很低,因此提升写性能就只能从WAL入手。WAL机制一方面是为了确保数据即使写入缓存丢失也可以恢复,另一方面是为了集群之间异步复制。默认WAL机制开启且使用同步机制写入WAL。首先考虑业务是否需要写WAL,通常情况下大多数业务都会开启WAL机制(默认),但是对于部分业务可能并不特别关心异常情况下部分数据的丢失,而更关心数据写入吞吐量,比如某些推荐业务

2020-06-23 13:03:41 74

原创 HBase表设计及优化点

1 在创建表的时候指定分区​默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。实现方式是使用admin对象的切分策略byte[] startKey = ...; // your lowest keybyte[]

2020-06-23 10:40:34 54

原创 为Gradle配置http、https和socks代理的方式

背景近期由于公司内部环境改变,在公司内部局域网搭建了一个私仓,访问私仓需要挂一个代理,本地才能访问,而构建工具选用了Gradle,所以研究了一下Gradle通过代理方式下载包Socks5代理假设在已经在本地开启了一个代理,端口为1080,协议使用Socks5,则可以在home目录下的.gradle目录中新建一个gradle.properties文件,配置如下org.gradle.jvmargs=-Xmx2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encodin

2020-06-22 16:28:40 275

原创 HBase Shell 命令私藏

启动服务./bin/start-hbase.sh停止服务./bin/stop-hbase.sh进入命令行./bin/hbase shell创建表create 'student', 'cf'查看表的描述信息describe 'student'插入数据put 'student', 'row1', 'cf:sno', 's0001'put 'student', 'row1', 'cf:sname', 'zhangsan'put 'studnet', 'r.

2020-06-22 10:58:54 31

原创 HBase Minor Compaction和Major Compaction

背景HBase在将数据落盘到HDFS上之后,为了解决小文件并提高数据访问效率,定义了两种方式来合并HFile文件。1. Minor Compaction控制Minor Compaction的几个参数及说明:参数名默认值描述信息hbase.hstore.compaction.min3表示至少要有三个文件满足minor合并要求时才会启动minor合并hbase.hstore.compaction.mix10表示一次minor合并最多选择10个store file进行合

2020-06-22 10:28:45 86

原创 Delta Lake

Delta Lake 简介Delta Lake是一个可靠的开源存储层,它提供ACID事务,可伸缩的元数据处理,并支持流/批统一。Delta Lake可以运行在现有数据湖之上,并完全和Apache Spark APIs兼容Delta Lake 具体提供如下特性:Spark上的ACID事务:可序列化的隔离级别确保Reader永远看不到不一致的数据;可扩展的元数据处理:利用Spark的分...

2020-04-23 20:24:42 137

原创 导出Java程序的内存堆栈信息的集中方式

使用jmap导出jmap -dump:live,format=b,file=heap001 pid使用arthas导出使用arthas挂载到一个Java进程上,然后就可以arrhas的heapdump命令导出堆信息了在启动Java程序时指定参数在启动Java进程时指定参数-XX:+HeapDumpOnOutOfMemoryError和-XX:HeapDumpPath,则会在Java程...

2020-03-12 11:11:14 163

原创 CompletableFuture<T> 的正确打开方式

1. runAsync 和 supplyAsync 方法CompletableFuture提供了四个静态方法public static CompletableFuture&lt;Void&gt; runAsync(Runnable runnable)public static CompletableFuture&lt;Void&gt; runAsync(Runnable runnabl...

2020-03-06 18:05:43 74

原创 使用ReetrantLock和Candition实现生产者消费者模型

package com.zjw;import java.util.LinkedList;import java.util.List;import java.util.Random;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Condition;import java.util.concu...

2020-03-05 12:37:11 52

原创 使用join和notifyAll实现经典的生产者消费者模型

package com.zjw;import java.util.LinkedList;import java.util.List;import java.util.Random;import java.util.concurrent.TimeUnit;/** * 生产者消费者问题 */public class JoinNotifyAllTest { static cl...

2020-03-05 12:34:57 35

原创 Apollo Java Client使用方式介绍

1. POM依赖&amp;amp;lt;dependency&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;com.ctrip.framework.apollo&amp;amp;lt;/groupId&amp;amp;gt; &amp;amp;lt;artifactId&amp;amp;gt;apollo-client&amp;amp;lt;/artifactId&amp;amp;gt; &amp;amp;lt;version&amp;amp

2019-01-21 15:07:26 1121

原创 Scala Zookeeper 访问 Demo

import scala.collection.mutable.ArrayBufferimport scala.collection.JavaConverters._import com.google.common.base.{Objects, Strings}import org.apache.commons.compress.utils.Charsetsimport org.apac...

2019-01-15 10:25:18 648

原创 Netty EchoServer 和 EchoClient 实现

EchoServer.javapublic class EchoServer { private final int port; public EchoServer(int port) { this.port = port; } public static void main(String[] args) throws Exception { if (arg...

2019-01-11 09:11:30 322

原创 BIO+线程池实现简单的Server

public class MyServer { public static void main(String[] args) throws Exception { ExecutorService executor = Executors.newFixedThreadPool(100); ServerSocket serverSocket = new ServerSocket(...

2019-01-11 08:54:13 240

原创 nexus3.x搭建私服并配置本地maven发布和依赖

1. 下载安装 nexus-3.14.04注意:nexus-3.14.04要求安装JDK1.8以上版本1.1 下载下载地址:点击下载1.2 在Linux(ubuntu-16.04.5_64bit)解压安装# tar xf nexus-3.14.0-04-unix.tar.gz -C /usr/local/software/# cd /usr/local/software/nexus...

2019-01-10 17:32:10 944

原创 Maven 原生 settings.xml 说明【翻译】

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&amp;lt;!--Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this wor...

2019-01-10 11:50:02 339 2

原创 SpringBoot-2.1.1.RELEASE官方参考指南(翻译)——002

Part II.开始使用(GettingStarted)如果您正开始使用SpringBoot,或者一般的Spring,请先阅读本部分。它回答了基本的“是什么?””、“如何?”和“为什么?”的问题。它包括对SpringBoot的介绍,以及安装说明。然后,我们将带您构建您的第一个SpringBoot应用程序,同时介绍一些核心概念。8.SpringBoot简介(IntroducingSpringBo...

2019-01-02 11:21:46 3902

原创 SpringBoot-2.1.1.RELEASE官方参考指南(翻译)——001

PartI.SpringBoot文档(SpringBootDocumentation)本节简要概述了SpringBoot参考文档。读者可以认为它是其余文档的一个索引。1.关于这篇文章(AbouttheDocumentation)SpringBoot的参考指南以一下三种方式提供【英文版】:HTMLPDFEPUB最新的参考指南地址:docs.spring.io/spring-boot...

2019-01-02 11:05:30 394

原创 Scala类型参数Demo代码

package com.zjw.ch18import scala.reflect.ClassTagobject Ch18Test extends App { /** * 泛型方法 */ def getMiddle[T](array: Array[T]): T = { array(array.length / 2) } println(getMiddle(...

2018-11-28 16:34:23 58

原创 JVM工具之jstat

jstat是jdk自带的一个小工具,位于${JAVA_HOME}的bin目录下,用于查看JVM中的各项监控数据,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对堆栈、GC等的监控。可见,jstat是非常轻量级的、专门针对JVM的工具。使用jstat -options查看当前JVM支持的选项说明:命令名称说明-class显示类加载器...

2018-10-08 15:19:57 108

原创 实现使用SpringBoot开发项目的两种方式

1. 采用继承方式&amp;amp;amp;lt;parent&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp;amp;amp;gt;org.springframework.boot&amp;amp;amp;lt;/groupId&amp;amp;amp;gt; &amp;amp;amp;lt;artifactId&amp;amp;amp;gt;spring-boot-starter-parent&amp;amp;amp;lt;/artifactId

2018-10-08 10:29:18 137

原创 SpringBoot项目启运行状态监控Actuator

1. 在项目pom中加入Actuator依赖&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot

2018-10-01 11:04:39 900

原创 SpringCloud项目github地址汇总

git clone https://github.com/spring-cloud/spring-cloud-gcp.gitgit clone https://github.com/spring-cloud/spring-cloud-netflix.gitgit clone https://github.com/spring-cloud/spring-cloud-aws.gitgit clo...

2018-09-30 09:29:44 11057

原创 SpringBoot 配置文件属性获取

1. 获取application.yml或者application.properties中的单个属性1.1 在application.yml中自定义属性spring: application: name: spring-boot-studyserver: port: 10000prop: name: z3 age: 211.2 在Controller中获取属性...

2018-09-29 14:33:34 4795

原创 快速构建 spring-boot 项目

1. 引入pom依赖&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;&amp;amp;lt;project xmlns=&amp;quot;http://maven.apache.org/POM/4.0.0&amp;quot; xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;

2018-09-29 10:35:13 63

原创 项目集成 log4j logback log4j2

log4j.rootLogger=ALL, stdout,log4j.rootLogger 输出到控制台=============================================================================================log4j.rootLogger=&amp;amp;amp;amp;lt;输出级别&amp;amp;amp;amp;gt;,[,[appenderName2,…]]FA...

2018-09-28 18:51:10 399 2

原创 Scala 操作 Redis-RedisUtil

package com.zjw.utilimport java.utilimport org.apache.commons.pool2.impl.GenericObjectPoolConfigimport org.apache.logging.log4j.scala.Loggingimport redis.clients.jedis.{Jedis, JedisPool, Respons...

2018-09-05 19:05:28 4472

原创 Yarn Label 调度

1. Yarn Label标签创建当重启ResourceManager时,可以保证Yarn Label标签在服务重启之后依然可用,需要在HDFS上指定 Yarn Label的存储路径,具体操作如下:在HDFS上创建目录,用于存放Yarn Label标签数据(注意创建的目录Yarn要可以访问),如下命令可能会被使用到hdfs dfs -mkdir -p /yarn/node-la...

2018-09-05 18:56:55 974

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