- 博客(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
540
原创 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
666
原创 HBase部署
HBase 一种是作为存储的分布式文件系统,另一种是作为数据处理模型的 MR 框架。因为日常开发人员比较熟练的是结构化的数据进行处理,但是在 HDFS 直接存储的文件往往不具有结构化,所以催生出了 HBase 在 HDFS 上的操作。如果需要查询数据,只需要通过键值便可以成功访问。前提准备1.Zookeeper 正常部署2.Hadoop 正常部署HBase部署HBase 的解压$ ta...
2020-03-19 16:04:47
588
原创 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
603
原创 安装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
448
原创 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
337
原创 python命名规范
文件名、包名、模块名、局部变量名、函数&方法名 全小写+下划线式驼峰 example:this_is_var类 首字母大写式驼峰。如ClassName()。 内部类可以使用额外的前导下划线。 函数和方法的参数 类实例方法第一个参数使用self, 类方法第一个参数使用cls 如果一个函数的参数名称和保留的关键字冲突,通常使用一个后缀下划线好于使用缩写或奇怪
2017-09-30 18:30:27
5140
原创 Protobuf基础知识
约定:为方便书写,ProtocolBuffers在下文中将已Protobuf代替。 1、什么是protocol buffers Protocol buffers是一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议,与XML相比,Protocol buffers序列化后的码流更小、速度更快、操作更简单。你只需要将要被序列化的数据结构定义一次(译注:使用.proto文件定义),便可以使
2017-09-17 12:40:17
3310
原创 ConcurrentHashMap01--(Happens-Before规则)
ConcurrentHashMap是Java5中新增加的一个线程安全的Map集合,可以用来替代HashTable。对于ConcurrentHashMap是如何提高其效率的,可能大多人只是知道它使用了多个锁代替HashTable中的单个锁,也就是锁分离技术(Lock Stripping)。实际上,ConcurrentHashMap对提高并发方面的优化,还有一些其它的技巧在里面(比如你是否知道在get操
2017-09-03 19:19:28
954
原创 单例模式与多线程
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处: 1.)某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2.)省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3.)有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比
2017-08-27 22:22:41
860
原创 多线程多个实例
顺序打印3次ABC 正常的情况下,线程在运行时多个线程之间执行任务的时机是无序的。可以通过改造代码的方式使它们运行具有有序性。public class MyThread extends Thread { private Object lock; private String showChar; private int showNumPosition; private
2017-08-27 21:22:47
945
原创 Java多线程之Lock的使用--重入锁(ReentrantLock)、Condition、公平锁和非公平锁、ReentrantReadWriteLock的使用(读写锁)
一、ReentrantLock的使用 在Java多线程中,可以使用synchronized关键字来实现线程之间同步互斥,但在JDK1.5中新增加了ReentrantLock类也能达到同样的效果,并且在扩展功能上也更加强大,比如具有嗅探锁定、多路分支通知等功能,而且在使用上也比synchronized更加的灵活。 1、使用ReentrantLock实现同步 既然ReentrantL
2017-08-27 20:35:54
2570
原创 Java多线程之通过管道线程间通信(字节流、字符流),类ThreadLocal与类InheritableThreadLocal的使用
一、通过管道线程间通信(字节流、字符流) 在Java语言中提供了各种各样的输人/输出流Stream,使我们能够很方便地对数据进行操作,其中管道流(pipeStream)是一种特殊的流,用于在不同线程间直接传送数据。一个线程发送数据到输出管道,另一个线程从输人管道中读数据。通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西。 在Java的JDK中提供了4个类来使线程间可以进
2017-08-27 16:45:26
2063
原创 Java多线程之线程间通信--生产者/消费者模式
等待(wait)/通知(notify)模式最经典的案例就是“生产者/消费者”模式。虽然此模式在使用上有几种“变形”,还有一些小的注意事项,但原理都是基于wait/notify的。public class Storage { //仓库最大存储量 private final int MAX_SIZE = 10; // 仓库存储的载体 private LinkedList<
2017-08-27 16:01:52
625
原创 Java多线程之线程间通信--等待(wait)/通知(notify)机制,等待/通知之交叉备份实例
1、什么是等待/通知机制 等待/通知机制在生活中比比皆是,比如在就餐时就会出现,如图所示。 厨师和服务员之间的交互要在“菜品传递台”上,在这期间会有几个问题: 1).厨师做完一道菜的时间不确定,所以厨师将菜品放到‘菜品传递言,上的时间也不确定。 2).服务员取到菜的时间取决于厨师,所以服务员就有“等待”(wait)的状态。 3).服务员如何能取到菜呢?这又得取决
2017-08-27 15:45:21
1174
原创 Java多线程之同步锁定--volatile关键字、原子类
使用volatile关键字增加了实例变量在多个线程之间的可见性。但volatile关键字最致命的缺点是不支持原子性。 下面将关键字synchronized和volatile进行一下比较: 1.)关键字volatile是线程同步的轻量级实现,所以volatile性能肯定比synchronized要好,并且volatile只能修饰于变量,而synchronized可以修饰方法,以及代码块。随
2017-08-27 14:28:11
1474
原创 Java多线程之同步锁定--synchronized同步方法和同步块、脏读、锁重入、死琐
线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。一、同步注意事项1.1、方法内的变量为线程安全 “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题(这是方法内部的变量是私有的特性造成的,所得结果也就是“线程安全”的了,方法的变量存放在JVM里的虚拟机栈里)。2、实例变量非线程安全 如果多个线程共同访问1个对象中的实例变量,则可能
2017-08-27 12:09:59
2629
原创 停止线程
停止线程 停止线程是在多线程开发时很重要的技术点,掌握此技术可以对线程的停止进行有效的处理。停止线程在Java语言中并不像break语句那样干脆,需要一些技巧性的处理。 使用Java内置支持多线程的类设计多线程应用是很常见的事情,然而,多线程给开发人员带来了一些新的挑战,如果处理不好就会导致超出预期的行为并且难以定位错误。 停止一个线程意味着在线程处理完任务之前停掉正在做的操作,也就是
2017-08-26 22:02:37
1097
原创 java线程基础知识
一、java线程概念和原理1.1、操作系统中线程和进程的概念 现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。 进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程
2017-08-26 20:30:45
1086
原创 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
5195
原创 maven----pom.xml详解
什么是pom? Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。<project> <modelVe
2017-08-06 21:09:20
884
原创 RabbitMQ基础知识
你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。 消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用(RPC)。本文将要介绍的RabbitMQ就是当前最主流的消息中间件之一。 RPC(Remote
2017-08-06 19:08:22
527
原创 Java----JUC
1.Java JUC 简介 在 Java 5.0 提供了 java.util.concurrent (简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步 IO 和轻量级任务框架。 提供可调的、灵活的线程池。还提供了设计用于多线程上下文中的 Collection 实现等.2.volatile 关键字 内存可见性2.1.内存可见性
2017-08-02 11:56:33
802
原创 深入理解Docker(镜像、容器、服务、swarm、stack)
菜鸟教程 官方文档 本文基本参考官方文档,有部分翻译直接用的原文1.什么是Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPho
2017-07-22 16:51:00
23576
1
原创 Netty----什么是Netty学习
什么Netty? Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Netty相当简化和流线化了网络应用的编程开发过程,
2017-07-16 20:03:56
4712
原创 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
981
1
原创 23种设计模式4--行为型模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发
2017-06-18 23:29:48
3958
原创 23种设计模式--结构型模式(适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式)
总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发
2017-06-18 17:49:53
2282
原创 23种设计模式----创建型模式(工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)
1.单例模式 单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自己实例化并向整个系统提供这个实例。 通用类图如下: 通用代码如下:public class Singleton { private static final Singleton singleton = new Singleton(); // 限制产生多个对象,如果该类是抽
2017-06-17 21:37:07
3320
原创 Java数据结构----栈(Stack)源码分析和用链表简单实现
一、Stack源码分析1.继承结构 栈是数据结构中一种很重要的数据结构类型,因为栈的后进先出功能是实际的开发中有很多的应用场景。Java API中提供了栈(Stacck)的实现。 Stack类继承了Vector类,而Vector类继承了AbstractList抽象类,实现了List接口,Cloneable接口,RandomAcces接口以及Serializable接口,需要指出的Vect
2017-06-04 16:11:35
2474
原创 九大排序
一、概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序(使用内存),而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 我们这里说说九大排序就是内部排序。 内部排序有可以分为以下几类: (1)、插入排序:直接插入排序、希尔排序、二分法插入排序。 (2)、选择排序:简单选择排序、堆排序。 (3)、交换排序:冒泡排序、快速排序
2017-06-03 20:46:36
1099
原创 设计模式的六大原则
1、单一职责原则 单一职责原则的定义是:应该有且仅有一个原因引起类的变更。当然最难划分的就是职责。单一职责适用于接口、类、方法。2、里氏替换原则 里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时
2017-05-24 20:58:25
718
原创 UML(用例图、状态图)
UML(Unified Modeling Language: 统一建模语言)分两类: 1).结构型的图 * 类图(Class Diagram) * 对象图(Object Diagram) * 构件图(Component Diagram) * 部署图(Deployment Diagram) * 包图(Package Diagram) 2).行为型的图 * 用例图
2017-05-23 14:18:06
9514
原创 UML类图关系(泛化 、实现、依赖、关联、聚合、组合)
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,
2017-05-22 10:10:51
9013
1
原创 计算机网络
1.路由控制的定义 1.1.IP地址与路由控制 互联网是由路由器连接的网络组合而成的。为了能让数据包正确地到达目标主机,路由器必须在途中进行正确地转发。这种向“正确的方法”转发数据所进行的处理就叫做路由控制或路由 路由器根据路由控制表(Routing Table)转发数据包。它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。因此,这个过程中路由控制表
2017-05-13 22:16:56
5539
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
6740
原创 Java嵌套类(nested class)----静态成员类、非静态成员类、匿名类和局部类
这四个修饰符的访问权限如下表: ----------------------------------------------- 类内部 package内 子类 其他 public 允许 允许 允许 允许 protec
2017-03-28 14:38:46
1611
原创 Spring源码分析
1、设计原理 在Spring的AOP模块中,一个主要的部分是代理对象的生成,而对于Spring应用,可以看到,是通过配置和调用Spring的ProxyFactoryBean来完成这个任务的。在ProxyFactoryBean中,封装了主要代理对象的生成过程。在这处过程中,可以使用JDK的Proxy和CGLIB两种生成方式。 以ProxyFactory的设计为中心,可以看到相关的
2017-02-26 23:40:37
2039
原创 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
2975
原创 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
86375
2
《Maven实战》完整高清版
2016-09-06
Java多线程编程核心技术_完整版
2016-07-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人