自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(201)
  • 资源 (5)
  • 收藏
  • 关注

原创 clickhouse安装

[root@hadoop102 clickhouse]# sudo rpm -ivh /media/psf/Home/Downloads/*.rpmPreparing… ################################# [100%]Updating / installing…1:clickhouse-server-commo...

2020-05-01 23:50:32 462

原创 Flink部署

1.Standalone 模式解压:tar -zxvf flink-1.7.2-bin-scala_2.11.tgz -C /opt/module/1)修改 flink/conf/flink-conf.yaml 文件:jobmanager.rpc.address: hadoop1022)修改 /conf/slave 文件:hadoop103hadoop104分发flink文件给另外...

2020-04-11 16:57:30 576

原创 HBase部署

HBase 一种是作为存储的分布式文件系统,另一种是作为数据处理模型的 MR 框架。因为日常开发人员比较熟练的是结构化的数据进行处理,但是在 HDFS 直接存储的文件往往不具有结构化,所以催生出了 HBase 在 HDFS 上的操作。如果需要查询数据,只需要通过键值便可以成功访问。前提准备1.Zookeeper 正常部署2.Hadoop 正常部署HBase部署HBase 的解压$ ta...

2020-03-19 16:04:47 495

原创 Zookeeper分布式安装部署使用

集群规划  在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。解压安装chmod u+x zookeeper-3.4.10.tar.gz1)解压zookeeper安装包到/opt/module/目录下[liucw@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/mod...

2020-03-19 16:02:59 518

原创 安装Elasticsearch

安装包下载Elasticsearch官网: https://www.elastic.co/products/elasticsearch  5.2.2的版本, jdk要1.8及以上  提前准备node.jsElasticsearch部署1)解压elasticsearch-5.2.2.tar.gz到/opt/module目录下[liucw@hadoop102]$ tar -zxvf ela...

2020-03-19 16:01:36 322

原创 Hive 部署

1)Hive官网地址:http://hive.apache.org/2)文档查看地址:https://cwiki.apache.org/confluence/display/Hive/GettingStarted3)下载地址:http://archive.apache.org/dist/hive/4)github地址:https://github.com/apache/hive前提1.h...

2020-03-19 15:58:39 277

原创 python命名规范

文件名、包名、模块名、局部变量名、函数&方法名   全小写+下划线式驼峰   example:this_is_var类   首字母大写式驼峰。如ClassName()。   内部类可以使用额外的前导下划线。    函数和方法的参数   类实例方法第一个参数使用self, 类方法第一个参数使用cls   如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪

2017-09-30 18:30:27 4913

原创 Protobuf基础知识

约定:为方便书写,ProtocolBuffers在下文中将已Protobuf代替。   1、什么是protocol buffers  Protocol buffers是一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议,与XML相比,Protocol buffers序列化后的码流更小、速度更快、操作更简单。你只需要将要被序列化的数据结构定义一次(译注:使用.proto文件定义),便可以使

2017-09-17 12:40:17 3010

原创 ConcurrentHashMap01--(Happens-Before规则)

ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get操

2017-09-03 19:19:28 843

原创 单例模式与多线程

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:   1.)某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。   2.)省去了new操作符,降低了系统内存的使用频率,减轻GC压力。   3.)有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比

2017-08-27 22:22:41 798

原创 多线程多个实例

顺序打印3次ABC  正常的情况下,线程在运行时多个线程之间执行任务的时机是无序的。可以通过改造代码的方式使它们运行具有有序性。public class MyThread extends Thread { private Object lock; private String showChar; private int showNumPosition; private

2017-08-27 21:22:47 852

原创 Java多线程之Lock的使用--重入锁(ReentrantLock)、Condition、公平锁和非公平锁、ReentrantReadWriteLock的使用(读写锁)

一、ReentrantLock的使用  在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JDK1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定、多路分支通知等功能,而且在使用上也比synchronized更加的灵活。    1、使用ReentrantLock实现同步    既然ReentrantL

2017-08-27 20:35:54 2390

原创 Java多线程之通过管道线程间通信(字节流、字符流),类ThreadLocal与类InheritableThreadLocal的使用

一、通过管道线程间通信(字节流、字符流)  在Java语言中提供了各种各样的输人/输出流Stream,使我们能够很方便地对数据进行操作,其中管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据。一个线程发送数据到输出管道,另一个线程从输人管道中读数据。通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西。   在Java的JDK中提供了4个类来使线程间可以进

2017-08-27 16:45:26 1920

原创 Java多线程之线程间通信--生产者/消费者模式

等待(wait)/通知(notify)模式最经典的案例就是“生产者/消费者”模式。虽然此模式在使用上有几种“变形”,还有一些小的注意事项,但原理都是基于wait/notify的。public class Storage { //仓库最大存储量 private final int MAX_SIZE = 10; // 仓库存储的载体 private LinkedList<

2017-08-27 16:01:52 547

原创 Java多线程之线程间通信--等待(wait)/通知(notify)机制,等待/通知之交叉备份实例

1、什么是等待/通知机制   等待/通知机制在生活中比比皆是,比如在就餐时就会出现,如图所示。      厨师和服务员之间的交互要在“菜品传递台”上,在这期间会有几个问题:   1).厨师做完一道菜的时间不确定,所以厨师将菜品放到‘菜品传递言,上的时间也不确定。   2).服务员取到菜的时间取决于厨师,所以服务员就有“等待”(wait)的状态。   3).服务员如何能取到菜呢?这又得取决

2017-08-27 15:45:21 1088

原创 Java多线程之同步锁定--volatile关键字、原子类

使用volatile关键字增加了实例变量在多个线程之间的可见性。但volatile关键字最致命的缺点是不支持原子性。   下面将关键字synchronized和volatile进行一下比较:   1.)关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随

2017-08-27 14:28:11 1358

原创 Java多线程之同步锁定--synchronized同步方法和同步块、脏读、锁重入、死琐

线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。一、同步注意事项1.1、方法内的变量为线程安全   “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题(这是方法内部的变量是私有的特性造成的,所得结果也就是“线程安全”的了,方法的变量存放在JVM里的虚拟机栈里)。2、实例变量非线程安全   如果多个线程共同访问1个对象中的实例变量,则可能

2017-08-27 12:09:59 2423

原创 停止线程

停止线程  停止线程是在多线程开发时很重要的技术点,掌握此技术可以对线程的停止进行有效的处理。停止线程在Java语言中并不像break语句那样干脆,需要一些技巧性的处理。   使用Java内置支持多线程的类设计多线程应用是很常见的事情,然而,多线程给开发人员带来了一些新的挑战,如果处理不好就会导致超出预期的行为并且难以定位错误。   停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是

2017-08-26 22:02:37 887

原创 java线程基础知识

一、java线程概念和原理1.1、操作系统中线程和进程的概念   现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。   进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。   线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程

2017-08-26 20:30:45 1021

原创 JDK8----集合之流式(Streams)操作

JDK8 —- 集合之流式(Streams)操作 为什么需要 Stream   Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合

2017-08-15 09:43:02 5001

原创 maven----pom.xml详解

什么是pom?   Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。<project> <modelVe

2017-08-06 21:09:20 777

原创 RabbitMQ基础知识

你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。   消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。   RPC(Remote

2017-08-06 19:08:22 471

原创 Java----JUC

1.Java JUC 简介  在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。 提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等.2.volatile 关键字 内存可见性2.1.内存可见性

2017-08-02 11:56:33 742

原创 深入理解Docker(镜像、容器、服务、swarm、stack)

菜鸟教程 官方文档 本文基本参考官方文档,有部分翻译直接用的原文1.什么是Docker  Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。   容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPho

2017-07-22 16:51:00 23188 2

原创 Netty----什么是Netty学习

什么Netty?  Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。   也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,

2017-07-16 20:03:56 4637

原创 java中IO、NIO、AIO(NIO2.0)

java中的IO传统的IO  我们通常所说的传统IO编程就是同步阻塞式的I/O编程,也就是一个Socket和一个Client的端到端的通信过程,我们启动Socket端的时候,Socket会调用accept()方法进行阻塞,等待Client端的请求,直到Client端发送请求过来,然后给于反馈。   后来发展出伪异步的I/O编程,也就是把IO编程里面加上一个自定义的线程池,这样就可以实现多个Clie

2017-07-16 13:09:02 916 1

原创 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)

总体来说设计模式分为三大类:   创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。   结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。   行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。   其实还有两类:并发

2017-06-18 23:29:48 3044

原创 23种设计模式--结构型模式(适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式)

总体来说设计模式分为三大类:   创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。   结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。   行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。   其实还有两类:并发

2017-06-18 17:49:53 1943

原创 23种设计模式----创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)

1.单例模式  单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自己实例化并向整个系统提供这个实例。   通用类图如下:      通用代码如下:public class Singleton { private static final Singleton singleton = new Singleton(); // 限制产生多个对象,如果该类是抽

2017-06-17 21:37:07 3095

原创 Java数据结构----栈(Stack)源码分析和用链表简单实现

一、Stack源码分析1.继承结构   栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景。Java API中提供了栈(Stacck)的实现。   Stack类继承了Vector类,而Vector类继承了AbstractList抽象类,实现了List接口,Cloneable接口,RandomAcces接口以及Serializable接口,需要指出的Vect

2017-06-04 16:11:35 2337

原创 九大排序

一、概述  排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序(使用内存),而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说九大排序就是内部排序。   内部排序有可以分为以下几类:   (1)、插入排序:直接插入排序、希尔排序、二分法插入排序。   (2)、选择排序:简单选择排序、堆排序。   (3)、交换排序:冒泡排序、快速排序

2017-06-03 20:46:36 1009

原创 设计模式的六大原则

1、单一职责原则  单一职责原则的定义是:应该有且仅有一个原因引起类的变更。当然最难划分的就是职责。单一职责适用于接口、类、方法。2、里氏替换原则  里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时

2017-05-24 20:58:25 635

原创 UML(用例图、状态图)

UML(Unified Modeling Language: 统一建模语言)分两类: 1).结构型的图   * 类图(Class Diagram)   * 对象图(Object Diagram)   * 构件图(Component Diagram)   * 部署图(Deployment Diagram)   * 包图(Package Diagram) 2).行为型的图   * 用例图

2017-05-23 14:18:06 9211 1

原创 UML类图关系(泛化 、实现、依赖、关联、聚合、组合)

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)泛化(Generalization)   【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,

2017-05-22 10:10:51 8721 1

原创 计算机网络

1.路由控制的定义 1.1.IP地址与路由控制   互联网是由路由器连接的网络组合而成的。为了能让数据包正确地到达目标主机,路由器必须在途中进行正确地转发。这种向“正确的方法”转发数据所进行的处理就叫做路由控制或路由   路由器根据路由控制表(Routing Table)转发数据包。它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。因此,这个过程中路由控制表

2017-05-13 22:16:56 5445 2

原创 Redis基础学习----管道命令和xargs的区别及redis批量删除命令

管道是实现“将前面的标准输出作为后面的标准输入”xargs是实现“将标准输入作为命令的参数”你可以试试运行:echo "--help"|cat--helpecho "--help"|xargs catcat: illegal option -- -usage: cat [-benstuv] [file ...]由于redis的del命令不运行正则表达式,所以可以如

2017-04-18 16:27:04 6544

原创 Java嵌套类(nested class)----静态成员类、非静态成员类、匿名类和局部类

这四个修饰符的访问权限如下表: -----------------------------------------------                       类内部     package内       子类         其他 public             允许         允许                 允许         允许 protec

2017-03-28 14:38:46 1497

原创 Spring源码分析

1、设计原理    在Spring的AOP模块中,一个主要的部分是代理对象的生成,而对于Spring应用,可以看到,是通过配置和调用Spring的ProxyFactoryBean来完成这个任务的。在ProxyFactoryBean中,封装了主要代理对象的生成过程。在这处过程中,可以使用JDK的Proxy和CGLIB两种生成方式。    以ProxyFactory的设计为中心,可以看到相关的

2017-02-26 23:40:37 1990

原创 Integer与int的区别

Java 为每个原始类型提供了包装类型:  - 原始类型: boolean,char,byte,short,int,long,float,double  - 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,DoubleInteger与int的区别最基本的是:Ingeter是int的包装类,int的初值为0,Ingeter的初值为

2017-01-16 18:04:39 2913

原创 Java:String和Date、Timestamp之间的转换

一、String与Date(java.util.Date)互转 // 1.1、String -> Date @org.junit.Test public void testStringToDate() throws ParseException { String dateStr = "2010-05-04 12:34:23"; //注意f

2017-01-15 21:36:33 83554 2

《Maven实战》完整高清版

2016-09-06

Java多线程编程核心技术_完整版

2016-07-07

SQL实验数据

该文件里面有sql的各种语法和相关数据结果

2015-08-06

JSP环境配置_搭建JDK_Tomcat_Eclipse图解说明

JSP环境配置_搭建JDK_Tomcat_Eclipse图解说明

2015-08-06

空空如也

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

TA关注的人

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