- 博客(36)
- 收藏
- 关注
转载 史上最详细的Hadoop环境搭建
前言Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技术道路上走多远。这是一篇入门文章,Hadoop的学习方法很多,网上也有很多学习路线图。本文的思路是:以安装部署Apache Hadoop2.x版本为主线,来介绍Hadoop2.x的架构组成、各模块协同工作原理、技术细节。安装不是目的,通过安装认识
2017-12-27 19:08:53 3077 4
转载 Spring源码深度解析总结(1)——XmlBeanFactory的结构组成
最近在读《Spring源码深度分析》这本书,虽然讲的是Spring3.0版本的东西,但是基本的思想还是相同的。所以我打算一边读一边做一些总结,一方面在看过一边之后再捋一遍整体的过程,另一方面也防止日后忘记某些东西无处可查。在开始源码阅读之前,我们首先要了解一下Spring中常用的一些类的名称和作用,不然很有可能到最后把自己绕晕了。以下大部分摘自书中的原话Spring获取bean一般使用Ap...
2018-08-29 19:52:35 174
原创 深入剖析TOMCAT
TOMCAT容器分类Engine:整个CatalinaServlet引擎Host:包含一个或者多个Context容器的虚拟主机Context:web应用容器,可以有多个wrapperWrapper:粒度最小的容器,没有子容器相关组件:载入器,管道,映射器等请求响应流程HttpConnector -->serverSocket.accept()-->...
2018-08-24 12:06:50 1089
原创 利用Mybatis 动态数据源实践
通过Mybatis的Interceptor拦截执行的SQL语句,判断SQL语句操作的表是否需要进行分库,若需要分库,则根据SQL语句的参数值和分库算法进行分库,分库核心使用Spring的AbstractRoutingDataSource进行数据源的动态切换,同时使用Spring的LazyConnectionDataSourceProxy代理AbstractRoutingDataSource,延迟获...
2018-08-14 10:41:53 1382
转载 延时队列设计
1 使用场景关闭空闲连接。服务器中,有很多客户端的连接,空闲一段时间之后需要关闭之。 清理过期数据业务上。比如缓存中的对象,超过了空闲时间,需要从缓存中移出。 任务超时处理。在网络协议滑动窗口请求应答式交互时,处理超时未响应的请求。 下单之后如果三十分钟之内没有付款就自动取消订单。 订餐通知:下单成功后60s之后给用户发送短信通知。 当订单一直处于未支付状态时,如何及时的关闭订单,并...
2018-08-03 18:10:31 316
转载 深入理解类加载机制
概述本文是我在学习jvm类加载机制的时候对网上的一些资料的整理和总结,后文会给出具体的参考地址。这里参考了很多的资料,从中总结了一个大致的流程并且丰富了很多概念细节的解释。关于 JVM类加载机制我准备分两篇文章来分别介绍,一片主要介绍jvm中类的生命周期,另一篇着重讲一下类加载器。单独讲解类加载器是因为 类加载这部分是唯一我们可以通过自己的代码程序进行干预的部分,而其他部分都是jvm内部直接完成的...
2018-06-11 21:19:21 124
原创 2018书单阅读计划 2018 05 23
Java并发编程的艺术Java虚拟机:JVM高级特性与最佳实践JavaEE开发的颠覆者 Spring Boot实战 Spring Cloud微服务实战亿级流量网站架构核心技术Netty实战
2018-05-23 15:53:27 290
转载 Java并发之AQS详解
一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch...。 以下是本文的目录大纲:概述框架...
2018-05-17 18:57:53 106
原创 Lock, AQS
AQS 队列同步器 同步器是实现锁(也可以是任意同步组件)的关键,在锁的实现中聚合同步器,利用同步器实现锁的语义。可以这样理解二者之间的关系:锁是面向使用者的,它定义了使用者与锁交互的接口(比如可以允许两个线程并行访问),隐藏了实现细节;同步器面向的是锁的实现者,它简化了锁的实现方式,屏蔽了同步状态管理、线程的排队、等待与唤醒等底层操作。锁和同步器很好地隔离了使用者和实现者所需关注...
2018-05-17 16:33:55 310
原创 面试总结
今天去深圳某金融公司总结一面 主要面基础stringbuffer和stringbuilder的区别wait sleep 区别arraylist linkedlist vector的区别hashmap concurrenthashmap hashset对象的四种引用类型你用到的设计模式动态代理(jdk cglb)你在项目中怎么使用springboot说说springcloud 各组件,及使用方法,...
2018-05-10 16:41:11 130
转载 JVM内部细节之一:synchronized关键字及实现细节(轻量级锁Lightweight Locking)
在C程序代码中我们可以利用操作系统提供的互斥锁来实现同步块的互斥访问及线程的阻塞及唤醒等工作。然而在Java中除了提供Lock API外还在语法层面上提供了synchronized关键字来实现互斥同步原语。那么到底在JVM内部是怎么实现synchronized关键子的呢? 一、synchronized的字节码表示: 在java语言中存在两种内建的synchronized语法:1、syn...
2018-04-25 15:18:29 120
原创 Spring Boot特性
摘要: 1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 SpringApplication.run 这个静态方法: public static void main(String...1. SpringApplicationSpringApplication 类是启动 S...
2018-04-23 16:22:22 145
原创 题目
基础篇一一.基础知识:1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);2)HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;4)HashTable和ConcurrentHashMap的区别;5)S...
2018-04-18 19:24:29 318
转载 Md5与对称非对称加密的比较区别
1.简介 因为本文比较简单就不举例代码实现,网上md5与加密的算法很多可以自己下载研究一下,本文只是大体说一下区别 md5是一种不可逆的加密,一定记住是不可逆的虽然现在很多算法也可以将md5解密出来但是md5还是具有很大程度上的不可逆,而且加大解密难道使用双重加密,很多登录的地方用到md5加密,那么有些人会问我用md5加密了服务器怎么解密呢,你要是这么想就错了登录时输入用户的密...
2018-04-18 15:54:44 1203
转载 http协议与https协议
1、前言在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容。TCP/IP协议是分层的,从底层至应用层分别为:物理层、链路层、网络层、传输层和应用层,如下图所示:2、http协议简介协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,HTTP协议是一种应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP可...
2018-04-18 15:53:54 488
转载 一致性哈希算法与Java实现
一致性哈希算法与Java实现========================================================一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了...
2018-03-22 09:42:56 162
转载 服务熔断、降级、限流、异步RPC -- HyStrix
在今天,基于SOA的架构已经大行其道。伴随着架构的SOA化,相关联的服务熔断、降级、限流等思想,也在各种技术讲座中频繁出现。本文将结合Netflix开源的Hystrix框架,对这些思想做一个梳理。背景伴随着业务复杂性的提高,系统的不断拆分,一个面向用户端的API,其内部的RPC调用层层嵌套,调用链条可能会非常长。这会造成以下几个问题:API接口可用性降低引用Hystrix官方的一个例子,假设tom...
2018-03-14 16:33:17 165
原创 AJAX
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="tes
2018-03-14 11:29:29 165
原创 类加载机制
类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示: 其中类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。在这五个阶段中,加载、验证、准备和初始化这四个阶段发生的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化阶段之后开始,这是为了支持Java语言的运行时绑...
2018-03-09 17:40:01 91
转载 面试题
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象。因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 Stri...
2018-02-09 16:55:39 219
原创 平衡二叉树、B树、B+树、B*树
1、平衡二叉树(1)由来:平衡二叉树是基于二分法的策略提高数据的查找速度的二叉树的数据结构;(2)特点:平衡二叉树是采用二分法思维把数据按规则组装成一个树形结构的数据,用这个树形结构的数据减少无关数据的检索,大大的提升了数据检索的速度;平衡二叉树的数据结构组装过程有以下规则:非叶子节点只能允许最多两个子节点存在,每一个非叶子节点数据分布规则为左边的子节点小当前节点的值,右边的子节点大于当前节点的值...
2018-02-09 16:37:57 716
转载 DB、ETL、DW、OLAP、DM、BI关系
DB、ETL、DW、OLAP、DM、BI关系结构图在此大概用口水话简单叙述一下他们几个概念:(1)DB/Database/数据库——这里一般指的就是OLTP数据库,在线事物数据库,用来支持生产的,比如超市的买卖系统。DB保留的是数据信息的最新状态,只有一个状态!比如,每天早上起床洗脸照镜子,看到的就是当时的状态,至于之前的每天的状态,不会出现的你的眼前,这个眼前就是db。(2)DW/Data Wa...
2018-02-09 10:00:06 1393
原创 Storm——可靠性(ACK原理)
转自:http://blog.csdn.net/xeseo/article/details/17754825对于Storm,它有一个很重要的特性:“Guarantee no data loss” ——可靠性很显然,要做到这个特性,必须要track每个data的去向和结果。Storm是如何做到的呢——acker机制。先概括下acker所参与的工作流程:1. Spout
2018-02-01 10:12:14 396
原创 Storm——Topology部署原理
Topology有两种大类提交部署方式:提交到本地模式,一般用于调试。该模式下由于是起在同一个JVM进程下,所以不要让其负载太高。提交到集群模式。提交到本地模式这个非常的简单。1. 编写代码[java] view plain copypublic class LocalRunningTopology ext
2018-01-30 14:41:00 340
转载 storm-1.1.0安装教程---分布式配置
1、安装环境:安装包:apache-storm-1.1.0.tar.gz集群主机IP:192.168.118.1,192.168.118.128,192.168.118.129集群主机名称:hzq,centos71,centos72集群主机用户:都是用hzq用户集群JDK环境:jdk-8u131-linux-x64.tar.gz(具体安装步骤见:《Linux安装JDK步骤》)集群主
2018-01-24 17:42:12 263
原创 Zookeeper介绍及安装部署
本节内容:Zookeeper介绍Zookeeper特点Zookeeper应用场景用到了Zookeeper的一些系统Zookeeper集群安装部署 一、Zookeeper介绍是一个针对大型分布式系统的可靠协调系统;提供的功能包括:配置维护、名字服务、分布式同步、组服务等;目标就是封装好复杂易出错的关键职务,将简单易用的接口和性能高效、功能稳定的系统提供给用户;Zookeeper已经成为Hadoop生...
2018-01-24 15:39:52 218
原创 OLTP与OLAP的区别
联机事务处理OLTP(on-line transaction processing) 主要是执行基本日常的事务处理,比如数据库记录的增删查改。比如在银行的一笔交易记录,就是一个典型的事务。 OLTP的特点一般有: 1.实时性要求高。我记得之前上大学的时候,银行异地汇款,要隔天才能到账,而现在是分分钟到账的节奏,说明现在银行的实时处理能力大大增强。 2.数据量不是很大,生产库上的数据量一
2018-01-22 09:43:06 142 1
原创 HBase环境搭建(单机)
引言在上一篇中搭建了Hadoop的单机环境,这一篇则搭建HBase的单机环境环境准备1,服务器选择阿里云服务器:入门型(按量付费)操作系统:linux CentOS 6.8Cpu:1核内存:1G硬盘:40G2,配置选择JDK:1.8 (jdk-8u144-linux-x64.tar.gz)Hadoop:2.8.2 (hadoop-2.8.2.tar.gz)HBase:1.6.2 (hbase-1....
2018-01-20 10:40:42 474 1
转载 Sqoop-1.4.6安装部署及详细
之所以选择Sqoop1是因为Sqoop2目前问题太多。无法正常使用,综合比较后选择Sqoop1。Sqoop1安装配置比较简单一、安装部署(1)、下载地址:http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.5.2.tar.gz解压到/opt/cdh5/sqoop(2)、拷贝mysql的jdbc驱动包
2018-01-16 19:36:31 410
转载 hive中控制map和reduce数量的简单实现方法
0、先说结论: 由于mapreduce中没有办法直接控制map数量,所以只能曲线救国,通过设置每个map中处理的数据量进行设置;reduce是可以直接设置的。 控制map和reduce的参数set mapred.max.split.size=256000000; -- 决定每个map处理的最大的文件大小,单位为Bset mapred.min.split.size.
2018-01-09 09:39:54 801
原创 Hive 安装
安装hive 之前,要保证hadoop安装成功,本教程对应的是hadoop版本为2.6.4,hive 版本为 2.1.1,默认情况下,Hive元数据保存在内嵌的 Derby 数据库中,只能允许一个会话连接,只适合简单的测试。为了支持多用户多会话,则需要一个独立的元数据库,我们使用 MySQL 作为元数据库一、下载Hive下载地址:https://mirrors.tuna.tsing
2018-01-06 16:10:28 235
转载 JAVA 并发包 Concurrent
ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲突,我说必须要加锁,我和面试官也因此发生了冲突,结果可想而知。还是闲话少说,通过仔细阅读源代码
2017-12-27 19:24:19 149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人