自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 一、 概念说明 在进行解释之前,首先要说明几个概念: - 用户空间和内核空间 - 进程切换 -...

2020-01-19 16:47:45 126 0

转载 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的一个输入...

2020-01-19 14:43:11 95 0

原创 导入省市区数据到elasticsearch

1.创建索引 PUT /province/_doc POST /province/_doc/mapping { "province" : { "mappings" : { "_doc" : { &...

2020-01-17 15:59:31 118 0

原创 Elasticsearch 杂项

1.elasticsearch 如何实现Master 选举 elasticsearch 选主是zenDiscovery模块负责,主要通过ping(节点之间的RPC来发现彼此)和Unicast(单播模块包含一个主机列表来控制那些节点需要ping通);对所有可以成为master的节点(node.mas...

2020-01-17 11:22:18 62 0

原创 zero-copy 原理

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

2020-01-10 14:28:34 61 0

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

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

2019-12-13 17:35:29 131 0

原创 Spark RDD

Spark RDD 1. 五大特性 1). 分区列表(a list of partitions) Spark RDD 是被分区的,每一个分区都会被一个计算任务(Task) 处理,分区数量决定了并行计算的数量,RDD 的并行度默认从父RDD 传递给子RDD。默认情况下,一个HDFS 上的数据分片就是...

2019-10-08 15:49:10 25 0

原创 Spark 算子调优

使用mapPartitions 或者 mapPartitionWithIndex 替换map 操作 在映射的过程中需要频繁创建额外对象的时候(数据库,网络TCP等IO连接,文件流 等) mapPartitions 按照分区创建额外的对象 map 按照元素创建额外对象 mapPartitionsW...

2019-08-16 14:52:41 69 0

转载 # Scala 函数

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

2019-08-15 16:27:33 46 0

原创 jvm 内存模型

2. jvm 内存模型划分 根据JVM规范,JVM 内存共分为虚拟机栈,堆,方法区,程序计数器,本地方法栈五个部分。 程序计数器(线程私有): 是当前线程锁执行字节码的行号治时期,每条线程都有一个独立的程序计数器,这类内存也称为“线程私有”的内存...

2019-08-15 14:28:51 18656 2

原创 # Synchronized 原理和优化

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

2019-08-15 11:13:23 56 0

原创 Spark数据倾斜解决方式

2019-08-12 11:24:46 37 0

原创 APM系统监控技术选型

APM技术选型对比 1.概览 Pinpoint SkyWalking Zipkin(Spring cloud 整合) Jaeger 所属公司/组织 韩国 Apache Twitter Uber 组件 collector+Web+ agent+存储 OAP+Web+ age...

2019-07-11 15:12:28 910 0

转载 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 76 0

原创 MapReduce 生成HFile导入Hbase

版本: hadoop 2.7.7 hbase 2.0.5 步骤一:编写Mapreduce 代码生成HFile 基于Gradle 构建 build.gradle plugins { id 'java' } group 'com.kteck' vers...

2019-05-31 16:59:24 177 0

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

节点规划 host 节点进程 node1 namenode,datanode,HRegionServer,NodeManager,DFSZKFailoverController node2 secondarynamenode,datanode,zookeeper,NodeMan...

2019-05-10 16:30:19 77 0

原创 flink教程

需要视频的添加QQ群 ps: 收费的哦

2019-05-08 16:59:02 137 0

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

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

2019-05-06 09:21:16 182 0

原创 Apache Kylin 优化指南

Apache Kylin 优化指南 一. 维度优化 为什么需要维度优化 如果不进行任何维度优化,直接将所有的维度放在一个聚集组里,Kylin将会计算所有的维度组合(cuboid)。比如,有12个维度,Kylin 就计算2的12次方即4096个cuboid,实际查询可能用不到cuboid 不到100...

2019-04-22 14:09:36 156 0

原创 hive调优一

hive优化1 . join 优化2 . order by 和sort by3 . 同一份数据多种处理4 . 本地模式5 . 并行执行6 . 严格模式7 . 调整mapper 和 reducer 个数8 . JVM 重用9 . 索引10 . 动态分区调整11 . 单个MapReduce 中多个Gr...

2019-04-03 17:36:13 55 0

转载 ORC File 文件格式

一、ORC File文件结构 ORC 的全称是(Optimied Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生在2013年初,最初产生自Apache Hive,用于降低Hadoop 数据存储空间的和加速Hive 查询速度。和Parquet 类似,它...

2019-03-21 16:15:26 252 0

原创 双亲委派模型

从java 虚拟机角度来讲,只存在俩种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;另外一种是所有其他的类加载器,这些类加载器由java 语言实现,独立于虚拟机外部,并且全部继承自抽象类java.lang.C...

2019-03-05 17:57:30 1317 0

原创 CMS 垃圾回收器

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集 器。目前很大一部分的Java应用集中在互联网站或者B/S系统的服务端上,这类应用尤其重 视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。CMS收集器就非常 符合这类应用的需求。 从名...

2019-03-05 17:36:07 219 0

原创 java GC Roots的对象

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

2019-03-05 17:05:23 76 0

原创 rabbitmq 3.6集群搭建

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

2019-02-21 17:07:04 147 0

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

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

2019-02-20 10:14:20 358 0

转载 ActiveMQ RabbitMQ Kafka 对比

1)TPS(事务数量/s)比较 Kafka 最高RabbitMq次之,ActiveMq 最差 2)吞吐量比较 Kafka 具有最高的吞吐量,内部采用消息批处理机制,zore-copy 机制,数据的存储和获取是本地磁盘的批量操作,具有O(1)的复杂度,消息处理效率很高。 RabbitMq 在...

2019-02-19 16:04:30 759 0

原创 我是一枚假的大数据开发工程师之:flink读取kafka 数据发送到opentsdb(不包含统计分析)

项目结构 build.gradle plugins { id 'java' } group 'com.kteckl' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 rep...

2019-01-31 13:36:03 513 0

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

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

2019-01-25 09:51:08 310 0

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

最近的项目在做爬虫,ip代理一直是一个很让人头疼的问题,看了python 开源版的爬虫代理池,修改起来也比较吃力。本着自己动手丰衣足食的理念还是用java 写个IP代理池的项目吧,解决IP代理的问题。源码地址https://github.com/zhiquanqiao/IPProxyPool。 ...

2019-01-03 17:39:58 1624 0

原创 一张图读懂java高并发

2018-12-26 10:43:24 68 0

原创 shell 脚本一

数学运算 #!/bin/bash no1=4 no2=5 let result=no1+no2 echo $result let no1++ let no1-- let no+=6 let no-=6 #其他方法 result=$[ no1 + no2] result=$[ $...

2018-12-17 18:05:44 45 0

转载 docker 命令

## List Docker CLI commands docker docker container --help ## Display Docker version and info docker --version docker version docker info ## Execu...

2018-12-14 14:37:45 62 0

转载 hashmap 扩容

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

2018-12-11 10:38:03 34 0

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

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

2018-12-06 16:18:37 200 0

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

jar { manifest { attributes("Main-Class": "com.thtf.forecast.GuangdongUploader", "Implementatio...

2018-12-05 15:56:42 2122 0

转载 Java 8 中的 Streams API 详解

Java 8 中的 Streams API 详解 Streams 的背景,以及 Java 8 中的使用详解 陈 争云, 占 宇剑, 和 司 磊 2014 年 9 月 11 日发布 为什么需要 Stream Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 Inpu...

2018-12-05 11:03:43 47 0

原创 shell 批量文件重命名

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

2018-12-05 09:57:52 238 0

原创 compareAndSet 最牛逼的解释

2018-11-28 10:37:47 1233 0

原创 简易版的shell 监控hbase

#/bin/bash while true do top -bn 1 -i -c &gt;&gt;./hbasemonitor/cpu.log free &gt;&gt; ./hbasemonitor/meomory.log ...

2018-11-27 16:45:43 105 0

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