自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (11)
  • 收藏
  • 关注

原创 Ntrip 1.0 协议

1.介绍Ntrip1.0 是基于http1.1 协议实现应用层协议,关于消息格式和状态代码,NtripClient NtripCaster通信是完全兼容的HTTP 1.1通信[1],其中Ntrip只使用无状态的连接。由Ntrip Server ,NtripCaster ,NtripClient 组成,Ntrip Caster 是一个真正的 http 服务端,Ntrip Client 和Ntrip Server 是http 客户端。NtripSource 用来产生差分数据,并把差分数

2020-06-22 11:51:26 1209

转载 I/O模型之二:Linux IO模式及 select、poll、epoll详解

同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一、 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O1.1、用户空间与内核空间现在操作系统都是采用虚拟...

2020-01-19 16:47:45 511

转载 I/O模型之一:Unix的五种I/O模型

Unix的五种I/O模型:阻塞I/O:应用程序调用一个IO函数,导致应用程序阻塞,如果数据已经准备好,从内核拷贝到用户空间,否则一直等待下去非阻塞I/O:I/O复用(select和poll)信号驱动I/O(SIGIO)异步I/O(Posix.1的aio_系列函数)Unix的一个输入操作一般有两个不同的阶段:1、等待数据准备好。2、从内核到进程拷贝数据。对于一个套接口上的输入操...

2020-01-19 14:43:11 455

原创 导入省市区数据到elasticsearch

1.创建索引PUT /province/_docPOST /province/_doc/mapping{ "province" : { "mappings" : { "_doc" : { "properties" : { "city" : { "type" : "nested", "...

2020-01-17 15:59:31 870

原创 Elasticsearch 杂项

1.elasticsearch 如何实现Master 选举elasticsearch 选主是zenDiscovery模块负责,主要通过ping(节点之间的RPC来发现彼此)和Unicast(单播模块包含一个主机列表来控制那些节点需要ping通);对所有可以成为master的节点(node.master:true)根据nodeId字典排序,每次选举都把自己所知道的节点排一次序,然后选出第一个(第0...

2020-01-17 11:22:18 176

原创 zero-copy 原理

1. 传统模型要想了解zero-copy 我们需要知道该技术的应用场景,网络传输中一个基本的场景是:通过网络传输一个文件。代码如下read(file,tmp_buf,len);write(socket,tmp_buf,len);在这个场景中,至少出现4次数据拷贝和3次的内核态和用户态的切换。看下图,上面的部分显示的是上下文切换的过程,下部分展示的是数据拷贝的过程。第一步: 读取文件的...

2020-01-10 14:28:34 343

原创 如何彻底删除git记录(git push -f 的妙用)

查看历史记录: git log找到head 记录: aaaaaaa本地分支: git reset -hard aaaaaaa推送远程分支: git push -f

2019-12-13 17:35:29 934

原创 Spark 算子调优

使用mapPartitions 或者 mapPartitionWithIndex 替换map 操作在映射的过程中需要频繁创建额外对象的时候(数据库,网络TCP等IO连接,文件流 等)mapPartitions 按照分区创建额外的对象map 按照元素创建额外对象mapPartitionsWithIndex 与mapPartitions基本相同,只是处理参数是一个二元组,元组的第一个元素是当...

2019-08-16 14:52:41 219

转载 # Scala 函数

Scala 函数传名调用(call-by-name)Scala的解释器在解析函数参数(function arguments)时有两种方式:传值调用(call-by-value):先计算参数表达式的值,再应用到函数内部;传名调用(call-by-name):将未计算的参数表达式直接应用到函数内部在进入函数内部前,传值调用方式就已经将参数表达式的值计算完毕,而传名调用是在函数内部进行参数表...

2019-08-15 16:27:33 161

原创 # Synchronized 原理和优化

synchronized 原理和优化synchronized 是java 中解决并发问题最常用的方法,也是最简单的一种方法。Synchronized 的主要作用是确保线程互斥访问同步代码保证共享变量的修改能及时可见有效解决重排问题Synchronized 原理反编译下面代码看看Synchronized 是如何实现代码同步的public class Demo{ public vo...

2019-08-15 11:13:23 165

原创 Spark数据倾斜解决方式

2019-08-12 11:24:46 107

原创 APM系统监控技术选型

APM技术选型对比1.概览PinpointSkyWalkingZipkin(Spring cloud 整合)Jaeger所属公司/组织韩国ApacheTwitterUber组件collector+Web+ agent+存储OAP+Web+ agent+存储+zkCollector+Web+ Api+存储client +agent +colle...

2019-07-11 15:12:28 3475

转载 Dapper,大规模分布式系统的跟踪系统

作者:Benjamin H. Sigelman, Luiz Andr´e Barroso, Mike Burrows, Pat Stephenson, Manoj Plakal, Donald Beaver, Saul Jaspan, Chandan Shanbhag概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由...

2019-07-10 10:16:20 249

原创 MapReduce 生成HFile导入Hbase

版本: hadoop 2.7.7 hbase 2.0.5步骤一:编写Mapreduce 代码生成HFile基于Gradle 构建build.gradleplugins { id 'java'}group 'com.kteck'version '1.0-SNAPSHOT'sourceCompatibility = 1.8jar { manifest { ...

2019-05-31 16:59:24 546

原创 5节点Hadoop,Hive,HBase HA 集群搭建

节点规划host节点进程node1namenode,datanode,HRegionServer,NodeManager,DFSZKFailoverControllernode2secondarynamenode,datanode,zookeeper,NodeManager,JournalNode,ResourceManagernode3namenode,d...

2019-05-10 16:30:19 372

原创 maven推荐仓库,ps 阿里云仓库是一坨*

最近在搭建hive dev环境遇到很多包down 不下来,阿里云真是一点儿用都没有。从https://mvnrepository.com/repos/sonatype-releases扒了扒他们的仓库地址,配置到maven 的setting.xml 中,真心好用。 <mirrors> <mirror> <id> Central Reposi...

2019-05-06 09:21:16 476

原创 Apache Kylin 优化指南

Apache Kylin 优化指南一. 维度优化为什么需要维度优化如果不进行任何维度优化,直接将所有的维度放在一个聚集组里,Kylin将会计算所有的维度组合(cuboid)。比如,有12个维度,Kylin 就计算2的12次方即4096个cuboid,实际查询可能用不到cuboid 不到1000个,甚至更少。如果进行围堵优化,会造成集群计算和存储资源的浪费,也会影响cube的build和查询性...

2019-04-22 14:09:36 323

原创 hive调优一

hive优化1 . join 优化2 . order by 和sort by3 . 同一份数据多种处理4 . 本地模式5 . 并行执行6 . 严格模式7 . 调整mapper 和 reducer 个数8 . JVM 重用9 . 索引10 . 动态分区调整11 . 单个MapReduce 中多个Group By1 . join 优化当对多个表进行join时,如果每个on子句都使用相同的连接键,...

2019-04-03 17:36:13 248

转载 ORC File 文件格式

一、ORC File文件结构ORC 的全称是(Optimied Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生在2013年初,最初产生自Apache Hive,用于降低Hadoop 数据存储空间的和加速Hive 查询速度。和Parquet 类似,它并不是一个单纯的列式存储格式,任然是首先根据行分割整个表,在每一行组内进行按列压缩存储。ORC 文件是...

2019-03-21 16:15:26 949

原创 双亲委派模型

从java 虚拟机角度来讲,只存在俩种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;另外一种是所有其他的类加载器,这些类加载器由java 语言实现,独立于虚拟机外部,并且全部继承自抽象类java.lang.ClassLoader。从Java开发人员的角度来看,类加载器还可以划分得更细致一些,绝大部分Java...

2019-03-05 17:57:30 3716

原创 CMS 垃圾回收器

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。目前很大一部分的Java应用集中在互联网站或者B/S系统的服务端上,这类应用尤其重视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。CMS收集器就非常符合这类应用的需求。从名字(包含“Mark Sweep”)上就可以看出,CMS收集器是基于“标记—清除”算法实现的,它的运作...

2019-03-05 17:36:07 377

原创 java GC Roots的对象

虚拟机栈 (栈帧中本地变量)中引用的对象方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNI 引用的对象

2019-03-05 17:05:23 230

原创 rabbitmq 3.6集群搭建

0. 绪论最近项目在做mq的技术选型,最终确定采用rabbitMq。需要对rabbitMq进行基准测试,所以在服务器上划出3个虚拟机节点。用这三台虚拟机做基准测试。(ps 以下命令都是用root 用户执行,如果不是root 用户那么命令前加sudo)1. 集群规划虚拟机操作系统采用的是centos 7.X节点ip主机名称192.168.234.220node11...

2019-02-21 17:07:04 457

转载 服务发现的基本原理与比较: Eureka,Consul,zookeeper

前言:在云计算和容器化技术发展火热的当下,对于微服务架构,服务注册于发下组件时必不可少的。在传统的服务架构中,服务的规模处于运维人员可控范围内。当部署服务的多个节点时,一般使用静态配置信息设定。在微服务应用中,服务实例的数量和乌昂罗地址都是动态变化的,这对系统运维提出了巨大的挑战。因此动态的的服务注册与发现显得尤其重要。解决的问题在一个分布式系统中,服务注册发现逐渐主要解决俩个问题:服...

2019-02-20 10:14:20 926

转载 ActiveMQ RabbitMQ Kafka 对比

1)TPS(事务数量/s)比较Kafka 最高RabbitMq次之,ActiveMq 最差2)吞吐量比较Kafka 具有最高的吞吐量,内部采用消息批处理机制,zore-copy 机制,数据的存储和获取是本地磁盘的批量操作,具有O(1)的复杂度,消息处理效率很高。RabbitMq 在吞吐量方面逊于Kafka,他们的出发点不一样,RabbitMq支持对消息的可靠传递,支持事务,不支持批...

2019-02-19 16:04:30 1237

原创 docker 制作支持cron 调度 python image 遇坑全记录

一:需求项目中需要用到docker,本次是为实时数据爬取做的定时调度docker image。但是python 开发工程师做的爬虫调度是依赖于操作系统的定时调度的,暂时也用不到像xxl-job 之类的定时调度框架。只能用操作系统的调度了。所以需求如下:1.能有定时调度2.支持python 环境二:image 制作v1 imageFROM ubuntu:18.04RUN...

2019-01-25 09:51:08 945

原创 java 手写IP代理池 (开放源代码)

最近的项目在做爬虫,ip代理一直是一个很让人头疼的问题,看了python 开源版的爬虫代理池,修改起来也比较吃力。本着自己动手丰衣足食的理念还是用java 写个IP代理池的项目吧,解决IP代理的问题。源码地址https://github.com/zhiquanqiao/IPProxyPool。需要手动维护被爬网站的信息和代理网站信息,维护好以后就可以通过接口获取对应的被爬网站的IP代理信息。...

2019-01-03 17:39:58 3251

原创 一张图读懂java高并发

2018-12-26 10:43:24 163

原创 shell 脚本一

数学运算#!/bin/bashno1=4no2=5let result=no1+no2echo $resultlet no1++let no1--let no+=6let no-=6#其他方法result=$[ no1 + no2]result=$[ $no1 + 5]# bc 是一个用于数学运算的高级工具echo "4 * 0.56” | bc...

2018-12-17 18:05:44 91

转载 docker 命令

## List Docker CLI commandsdockerdocker container --help## Display Docker version and infodocker --versiondocker versiondocker info## Execute Docker imagedocker run hello-world## List Doc...

2018-12-14 14:37:45 150

转载 hashmap 扩容

final Node&lt;K,V&gt;[] resize() { Node&lt;K,V&gt;[] oldTab = table;//oldTab指向hash桶数组 int oldCap = (oldTab == null) ? 0 : oldTab.length; int oldThr = threshold; int newCap, newThr = 0...

2018-12-11 10:38:03 218

原创 java 多进程任务调度核心代码

本来打算自己写个分布式任务调度框架的,公司要求看XXL-JOB,自己写太费力了。看了XXL-JOB 的核心代码后觉得,作者的能力远胜于。细节之处处理的尤为巧妙。分布式调度的本质就是多进程的执行。我把核心的进程控制代码贴出来。​ @Override public ReturnT&lt;String&gt; execute(String param) throws Except...

2018-12-06 16:18:37 534

原创 gradle 打jar包 第三方依赖放入lib 目录

jar { manifest { attributes("Main-Class": "com.thtf.forecast.GuangdongUploader", "Implementation-Title": "Gradle") } into('lib') { from configurations.runt...

2018-12-05 15:56:42 5782

转载 Java 8 中的 Streams API 详解

Java 8 中的 Streams API 详解Streams 的背景,以及 Java 8 中的使用详解陈 争云, 占 宇剑, 和 司 磊2014 年 9 月 11 日发布为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析...

2018-12-05 11:03:43 104

原创 shell 批量文件重命名

#!/bin/bashcd /home/ad/source/for files in `ls`do mv $files "${files:0:0-5}"_SQ.txt done 

2018-12-05 09:57:52 501

原创 compareAndSet 最牛逼的解释

2018-11-28 10:37:47 4394

原创 简易版的shell 监控hbase

#/bin/bashwhile truedo top -bn 1 -i -c &gt;&gt;./hbasemonitor/cpu.log free &gt;&gt; ./hbasemonitor/meomory.log HMasterPid=`pgrep -f HMaster` HRegrionServerPid=`pgre...

2018-11-27 16:45:43 214

原创 CRSF 的防御

(1)将cookie 设置为HttpOnlyCRSF攻击很大程度上是利用了浏览器的cookie,为了防止站内的XSS漏洞盗取cookie,需要在cookie中设置HttpOnly属性。这样通过程序就读取cookie信息。(2)增加token系统开发人员在HTTP请求中以参数的形式加入一个随机的token,并在服务端进行校验。如果没有token或者是token 不正确,则拒绝请求。...

2018-11-27 14:59:28 523

原创 Java httpClient 使用连接池支持多线程高并发

当采用HttpClient httpClient = HttpClients.createDefault() 实例化的时候。会导致Address already in use的异常。信息: I/O exception (java.net.BindException) caught when processing request to {}-&gt;http://**.**.**.** Add...

2018-11-22 17:20:46 13755 4

原创 maven打可执行的jar包

本来打算使用maven-assembly-plugin 打包,但是阿里云插件各种jar包找不到,google 到使用maven-shade-plugin打包jar包 &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plu...

2018-11-22 16:47:38 117

漫谈大数据和数据挖掘.pdf

漫谈大数据和数据挖掘.pdf

2021-06-17

Garbage-First LSM 论文

Garbage-First is a server-style garbage collector, targeted for multi-processors with large memories, that meets a soft real-time goal with high probability, while achieving high throughput. Whole-heap operations, such as global mark- ing, are performed concurrently with mutation, to prevent interruptions proportional to heap or live-data size. Concur- rent marking both provides collection "completeness" and identies regions ripe for reclamation via compacting evac- uation. This evacuation is performed in parallel on multi- processors, to increase throughput.

2019-06-13

rabbit in action

rabbitmq in action 中文版英文版压缩包,解压密码是123456

2019-02-19

java 并发编程实战

java 并发编程实战 中文版 英文版 读书的思维导图 Advance praise for Java Concurrency in Practice

2018-12-26

spring 5 , Spring Boot 2.0,Spring cloud

spring 5 in action pdf ,Learning Spring Boot 2.0 pdf,Spring Microservices in Action-Manning.pdf

2018-12-05

Linux Shell脚本攻略(第2版)

如果你是一位初中级用户,希望通过掌握快速编写脚本的技巧来完成各类事务处理,而又不 愿去逐页翻阅手册,那么本书就是写给你的。你不用了解任何shell脚本或Linux的工作原理,只 需要参照书中类似的例子和描述就可以动手了。对于中高级用户以及系统管理员或程序员而言, 本书则是在编码过程中寻求问题解决之道的一份绝佳参考资料。

2018-11-13

kafka-definitive-guide pdf

As we mentioned in the previous section about committing offsets, a consumer will want to do some cleanup work before exiting and also before partition rebalancing. If you know your consumer is about to lose ownership of a partition, you will want to commit offsets of the last event you’ve processed

2018-11-13

java语言规范.pdf

java语言规范英文原版

2017-01-19

JVM7规范.pdf

英文版的JVM规范

2017-01-19

hadoop in Action

hadoop in Action

2017-01-16

office android

可以打开Android office的源代码程序欢迎下载!

2015-01-11

空空如也

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

TA关注的人

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