- 博客(80)
- 资源 (1)
- 收藏
- 关注
原创 安装clickhouse-mysql 报错 error: ‘for’ loop initial declarations are only allowed in C99 mode
安装clickhouse-mysql 报错 error: ‘for’ loop initial declarations are only allowed in C99 modeRunning setup.py install for mysqlclient … errorERROR: Command errored out with exit status 1:command: /data1/soft/clickhouse-mysql/cmvenv/bin/python3 -u -c ‘impo
2020-12-31 00:11:29
357
原创 spring cloud alibaba入门demo
一、搭建环境1.1 安装Nacos下载解压启动bin/startup.sh -m standalone访问ip:8848/nacos/#/login1.2 构建环境创建环境,引入依赖 <!-- 只声明依赖,不引入依赖 --> <dependencyManagement> <dependencies> <dependency> <group..
2020-08-07 11:09:14
3162
2
原创 【JVM调错】由于GC导致生产环境高CPU错误
在2020年3月时候突然接到用户反映产品很卡。作为一个开发兼运维(临时接管)的好处就凸显出来了,上来就干。首先查看内存和CPU发现CPU问题:在这里插入图片描述2.拉取 25376 的 stack 信息【保存状态】3、通过 top -Hp 命令发现有如下线程占用较高cpu4、根据线程占用率榜对应 栈信息发现:1)占用39.2%以上的线程号为 25378~25391(转换为16...
2020-04-10 01:01:02
505
原创 Hbase MapReduce 执行示例代码报错
问题公司同事在学习Hbase 视频中有一段是Hbase 使用MapReduce 的官方实例使用 RowCounter 计算表的行数。执行命令:/usr/bdapp/hadoop-2.7.7/bin/yarn jar /usr/bdapp/hbase-2.1.7/lib/hbase-server-2.1.7.jar RowCounter test:user抛出错误如下:Exceptio...
2020-03-22 20:51:44
869
原创 JDK 源码下载 快速
JDK 源码下载 快速搜索JDK 源码下载,一般大家看到的都是从 这里 http://hg.openjdk.java.net/ 下载,我尝试之后发现下载巨慢,而且还一直中断。那么有没有快速的下载方法呢?有的。github官方jdk 仓库: https://github.com/openjdk/jdk官方打包好的http://jdk7.java.net/source.html...
2020-03-06 17:08:55
275
原创 Spring Boot 入门
**一、**Spring Boot 入门1、Spring Boot 简介简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;2、环境准备环境约束–jdk1.8:Spring Boot 推荐jdk1.7及以上;java version “1.8.0_161”–maven3.x:maven 3.3以上版本;Apache Maven ...
2020-03-05 21:39:09
674
原创 切表之批量建表
DROP PROCEDURE IF EXISTS `create_tables`;DELIMITER //CREATE PROCEDURE `create_tables`()BEGINDECLARE i INT;SET i=0;WHILE i<6 DOSET @create_sql=CONCAT('create table t_system',i,'(like t_system...
2020-02-20 23:53:11
232
原创 线程池的创建
线程池的创建java 通过 Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性...
2019-09-15 22:27:43
307
原创 java线程池 实现原理
java线程池 实现原理线程池的好处:降低资源消耗提高响应速度提高线程的可管理性线程池的实现原理下图是提交一个新任务到线程时,线程池的处理流程!ThreadPoolExecutor执行execute方法分下面4种情况如果当前运行的线程少于corePoolSize,则创建新线程来执行任务(注意!执行该步骤需要获取全局锁)如果运行的线程等于或者多于corePoolSize ,...
2019-09-15 20:25:37
252
原创 ConcurrentHashMap(基于jdk1.8)
ConcurrentHashMap(基于jdk1.8)之前写过关于HashMap和HashTable的区别HashMap 无锁 ConcurrentHashMap是有锁的ConcurrentHashMap结构介绍/*Key-value entry. This class is never exported out as auser-mutable Map.Entry (i.e.,...
2019-09-15 17:39:51
217
原创 红黑树
红黑树 (别名平衡二叉B树)注意:红黑树非绝对平衡红黑树中最长支路的长度必然“不大于”最短者的2倍,所以不妨设Max者为H,Min者为h。则有:H<=2h1、首先是红黑树的特性节点是红色或者黑色根节点是黑色每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!]每个红色节点的两个子节点都是黑色(从叶子到根不能有连续的红色节点)从...
2019-09-08 23:25:23
245
原创 SSO 与 CAS
一、什么是单点登录?从以下几点谈起:1、为什么产生单点登录?在现在每个企业都有不同的产品,豆瓣读书、豆瓣电、豆瓣。。。影甚至同一个产品他的域名都是不同的,比如这些情况如果每次都登陆一次就会产生不便对于用户。2、什么是单点登录?举一个经典例子:非单点登录:我去迪斯尼去玩,玩一个项目就得买一张票。单点登录就是我买了一张通票去哪玩都是这张票。3、单点登录原理:推荐一篇帖子,讲的很好...
2019-08-07 09:42:51
495
原创 面试题(一)
面试题(一)一、中文问题jsp页面乱码问题1) 浏览器编码问题页面格式问题,jsp页面有一个标签 pageEncoding 是否是不支持中文的格式3)获取get的请求参数 乱码,tomcat 配置问题 结局方案:在tomcat的conf目录下找到server.xml配置 URIEncoding=“gb2312”4)post提交表单乱码 post请求默认格式为:ISO-...
2019-02-24 23:29:54
606
原创 SpringMVC Required request part 'file' is not present
Required request part ‘file’ is not present环境:springmvc-4.x tomcat7.9 idea 2017 jdk 1.8错误提示:Required request part ‘file’ is not present遇到这种问题一般情况下都是参数未对应...
2019-02-23 15:58:45
4016
1
原创 HashMap和Hashtable的区别
HashMap:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {Hashtablepublic class Hashtable<K,V> extends Dictionary<...
2019-01-24 17:00:24
359
原创 HashCode和equals的区别(二)
HashCode和equals的区别:String方法的equals方法和HashCode方法String的HashCode方法 /** Cache the hash code for the string */ private int hash; // Default to 0 /** The value is used for character storage. */ ...
2019-01-20 22:00:46
380
原创 HashCode和Equals的区别
我们首先来看一下HashCode的源码: /** * Returns a hash code value for the object. This method is * supported for the benefit of hash tables such as those provided by * {@link java.util.HashMap}...
2019-01-19 22:51:32
262
原创 解读StringBuffer、StringBuilder、String区别
源码级StringBuffer和StringBuilder以及String区别作为一个面试常问的问题:首先看一下源码:public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequencepublic final class ...
2019-01-17 16:48:15
292
原创 java同步线程(三)
java同步线程(三) 基本实现方式及同步原理释放同步监视器的锁定任何线程进入同步代码块之前,必须先获得对同步监视器的锁定,那么何时会释放监视器的锁定呢?1、当前线程的同步方法、同步代码块执行结束,当前线程即释放同步监视器。2、当前线程在同步代码块、同步方法中遇到break、return终止了该代码块、该方法的继续执行,当前线程会释放同步监视器。3、当前...
2019-01-16 22:00:36
220
原创 java同步线程(二)
java同步线程(二) 同步方法同步方法:使用synchronized关键字来修饰某个方法,则该方法称为同步方法。同步方法的同步监视器是this,也就是该对象本身。通过同步方法可以非常方便地实现线程安全的类,线程安全的类具有如下特征。1、该类的对象可以被多个线程安全地访问。2、每个线程调用该对象的任意方法之后都将得到正确结果。3、每个线程调用该对象的任意方法...
2019-01-15 22:25:06
231
2
原创 java同步线程(一)
java同步线程(一) 同步代码块线程安全问题,有一个经典的问题:银行取钱问题:1、账户类public class Account { //封装账户编号,账户余额两个Eield private String accountNo; private double balance; public Account(String accoun...
2019-01-14 21:58:10
240
2
原创 java控制线程(三)
java控制线程(三) sleep和yield线程睡眠:sleep如果需要让当前正在执行的线程暂停一段时间,并进入阻塞状态,则可以通过调用Thread()类的静态sleep()方法来实现。sleep()方法有两种重载形式。static void sleep(long millis):让当前正在执行的线程暂停millis毫秒,并进入阻塞状态,该方法受到系统计时器和...
2019-01-13 18:47:25
184
原创 java控制线程(二)
java控制线程(二) 控制线程-守护线程后台线程:what:有一种线程,它是在后台运行的,它的任务是为其他的线程提供服务,这种线程被称为“后台线程(Daemon Thread)”又称为"守护线程“或”精灵线程“。JVM的垃圾回收机制就是典型的后台线程。特征:如果所有的前台线程都死亡,后台线程会自动死亡。How:调用Thread对象的setDaemon...
2019-01-12 11:39:12
262
原创 java控制线程(一)
java控制线程(一) 控制线程-join方法java的线程支持提供了一些便捷的工具方法:join线程:Thread提供了让一个线程等待另一个线程完成的方法-join()方法。当某个程序执行流中调用其他线程的join()方法时,调用线程将被阻塞,直到被join()方法加入的join线程执行完为止。join()方法通常由使用线程的程序调用,以将大问题划分成许多小...
2019-01-10 22:14:39
639
原创 java网络编程(一)
java网络编程(一) RMI(远程方法调用)RMI概要:RMI 远程方法调用是计算机之间通过网络实现对象调用的一种通讯机制。过去,TCP/IP通讯是远程通讯的主要手段,面向过程的开发。而RPC使程序员更容易地调用远程程序,但在面对复杂的信息传讯时,RPC依然未能很好的支持,RMI被设计成面向对象开发模式,允许程序员使用远程对象来实现通信RMI远程调用步骤:1,客户调用客...
2019-01-09 22:35:23
203
原创 java多线程(七)
java多线程编程(七) 重排序对多线程的影响这一节,看一下重排序对多线程的影响。示例代码:class ReorderExample{ int a=0; boolean flag = false; public void writer(){ a=1; //1 flag=true; //2 } public void reader(){ if(flag){...
2019-01-08 22:00:47
186
原创 java多线程编程(六)
java多线程编程(六) 数据依赖性 如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分为下列3种类型,如下表所示。名称代码示例说明写后读a=1; b=a;写一个变量后,再读这个位置写后写a=1;a=2;写一个变量后,再写这个变量读后写a=b;b=1;读一个变量之后,再写这个变量...
2019-01-07 22:24:11
167
原创 java多线程编程(五)
java多线程编程(五) java内存模型分类使用写缓冲区临时保存向内存中写入数据。Why?提升效率:1)写缓冲区可以保证指令流水线持续运行,它可以避免由于处理器停顿下来等待向内存写入数据而产生的延迟2)通过以批处理的方式刷新写缓冲区,以及合并写缓冲区中对同一内存地址的多次写,减少对内存总线的占用。缺点:每个处理器上的写缓冲区,仅仅对它所在的处理器可见。这个特性会对内存...
2019-01-06 13:31:55
172
原创 java多线程编程(四)
java多线程编程(四) Java内存模型引言:内存模型的基础----内存模型相关的基本概念java内存模型中的顺序一致性–重排序与顺序一致性内存模型同步原语(synchronized、volatile和final)的内存语义及重排序规则在处理器中的实现java内存模型的设计,主要介绍java内存模型的设计原理,及其与处理器内存模型和顺序一致性内存模型的关系Java内存模...
2019-01-05 23:38:08
345
原创 java多线程编程(三)
java多线程编程(三) 原子操作的实现原理1.术语定义!(cpu术语定义.png)[]2.处理器如何实现原子操作(1)使用总线锁保证原子性第一个机制是通过总线锁保证原子性。如果多个处理器同时对共享变量进行读改写操作(i++就是经典的读改写操作),那么共享变量就会被多个处理器同时进行操作,这样读改写操作就不是原子的,操作完之后共享变量的值会和期望的不一致。举个例子,如果i...
2019-01-03 22:48:03
175
原创 java多线程编程(二)
java多线程编程(二) volatile、synchronized及锁对比volatile的使用优化1、追加字节能优化性能如果队列的头节点和尾节点都不足64字节的话,处理器会将他们都读到同一个高速缓存行中,在多处理器下每个处理器都会缓存同样的头、尾节点,当一个处理器试图修改头节点时,会将整个缓存行锁定,会导致其他处理器不能访问自己高速缓存中的尾节点。通过填充字节来填满高...
2019-01-02 22:52:20
200
原创 java多线程编程(一)
java多线程编程(一) 基本实现方式及同步原理三种实现方式:1、继承ThreadThraad 实现 Runable 源码中的表现:public Thread(Runnable target) { init(null, target, "Thread-" + nextThreadNum(), 0);}2、实现Runable这是Runable的...
2019-01-01 22:32:00
1709
原创 SparkStreaming 数据实时处理
SparkStreaming1、创建一个SparkConf()2、新建SparkContext3、新建StreamingContext(SparkContext,time间隔)4、 |->socketTextStream(“ip”,port)5、对Dstream进行操作6、启动Sparkstreaming程序.start7、等待优雅的退出8、ssc.awaitTermin...
2018-10-25 09:34:56
589
原创 转Parquet文件
介绍:Apache Parquet is a columnar storage format available to any project in the Hadoop ecosystem, regardless of the choice of data processing framework, data model or programming language.(Apache Par...
2018-10-25 09:28:36
1366
原创 JVM讲解-1
JVM JVM详解在最近学习了一下JVM的知识,现在将学到的做一个总结overview一、什么是JVM? 1、jvm的定义 2、jvm的位置 3、jvm的意义二、JVM的构造 1、类加载子系统与方法区 2、方法区 3、java堆 4、程序计数器 5、java栈 6、本地方法栈 7、直接内存...
2018-10-19 17:27:07
250
原创 Redis安装和使用
Redis安装单机版的Redis1、到官网下载Redis https://redis.io/2、将Redis上传到服务器 并且解压 tar -zxvf -C3、进入到源码包中,编译并安装rediscd /usr/local/src/redis-3.2.12/make && make install若报错:可能是缺少gcc依赖:yum -y install...
2018-10-18 09:54:32
179
原创 操作系统面试点
一、操作系统的基本特性1、并发:同一段时间内多个程序执行注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件2、共享:系统中的资源可以被内存中多个并发执行的进线程共同使用互斥访问:如打印机同时访问:只是看起来是同时的,其实底层不是同时的3、虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟 为多个4、异步:系统中的进程是以...
2018-10-17 23:39:12
237
原创 kafka的java api示例
kafka的javaAPI生产者示例:创建配置: 1、new Properties() 2、添加配置 metadata.broker.list serializer.class = kafka.serializer.StringEncoder 3、ProducerConfig() 4、创建Producer 5、发送示例代码: Properties prop...
2018-10-15 09:33:09
282
原创 kafka集群安装与使用
kafaka中的名词:Broker:安装kafka服务大那台机器就是一个broker (id要唯一)Producer:消息的生产者,负责将数据写入到broker中(push)Consumer:消息的消费者,负责从kafka中读取数据(pull),老版本的消费者依赖zk,新版本的不需要Topic:主题,相当于是数据的一个分类,不同topic存放不同的数据Consumer Group:消费...
2018-10-14 22:05:39
209
原创 SparkSQL对mysql的读写
SparkSQL JDBC数据源!:load这个方法不会真正读取mysql的数据//1、创建sparkSessionval sparkSession: SparkSession = SparkSession.builder().appName("JdbcDataSource").master("local[*]").getOrCreate() import sparkSession....
2018-10-11 16:17:59
597
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人