自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

转载 java高并发学习-死锁(一)

死锁发生的必要条件: 1、互斥条件 2、请求和保持条件 3、资源不剥夺条件 4、环路等待条件多线程的最佳并发实践; 1、 使用本地变量 2、使用不可变类 3、最小化锁的作用域范围 : S = 1/(1-a+a/n) (阿木达尔定律)其中,a为串行计算部分所占比例,n为并行处理结点个数。这样,当a=0时,最大加速比s...

2019-09-16 05:57:00 228

转载 AQS同步组件(二)

java中锁主要分为两类: 1、 synchronized 关键字修饰的锁 2、 在同步容器JUC中 ReentrantLock(可重入性) 关键字修饰的锁ReenTrantLock 和 synchronized 的区别: 1、可重入性 ,两者都是一样的,当有线程进入锁,计数器就加1,当计数器为0的时候,释放锁 2、 锁的实现 ,Synchronized...

2019-09-13 15:37:00 196

转载 java线程池学习(二)

new Thread 弊端: 1、每次new Thread 新建对象,性能差 2、线程缺乏统一管理,可能无限制的新建线程,相互竞争,可能占用过多的系统资源导致死机或者OOM 3、缺少更多的功能,如更多执行、线程中断等线程池--ThreadPoolExecutor corePoolSize: 核心线程数量 maxinumPool: 线...

2019-09-12 02:50:00 203

转载 AQS 同步组件学习(一)

CountDownLatch 实例代码:package com.mmall.concurrency.example.aqs;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService...

2019-09-12 02:02:00 143

转载 java 高并发知识点学习总结(一)

并发 : 同时拥有两个或多个线程,如果程序在单核处理器上运行,多个线程交替的换入或者换出内存,这些线程是同时存在的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行。为什么需要cpu cache: cpu 的频率太快,快到主存跟不上,这样在处理器始终周期内,CPU常常需要等待主存,浪费资源。所以cache得出现...

2019-09-11 07:17:00 173

转载 elasticsearch 面试总结(一)

es 读数据过程可以通过doc id来查询,会根据doc id进行 hash,判断出来当时把doc id分配到了哪个 shard 上面去,从那个 shard 去查询。客户端发送请求到任意一个 node,成为coordinate node。coordinate node对doc id进行哈希路由,将请求转发到对应的 node,此时会使用ro...

2019-09-02 21:02:00 156

转载 hive面试总结

metastore 安装方式有什么区别内嵌模式  内嵌模式使用的是内嵌的 Derby 数据库来存储元数据,也不需要额外起 Metastore 服务。这个是默认的,配置简单,但是一次只能一个客户端连接,适用于用来实验,不适用于生产环境。本地元存储  本地安装 mysql 替代 derby 存储元数据,这种安装方式和嵌入式的区别在于,不再使用内嵌的 Derby 作...

2019-08-30 16:02:00 410

转载 hive的优化

Hive优化1.我们知道大数据场景下不害怕数据量大,害怕的是数据倾斜,怎样避免数据倾斜,找到可能产生数据倾斜的函数尤为关键,数据量较大的情况下,慎用count(distinct),count(distinct)容易产生倾斜问题。2.设置合理的map reduce 的task数量map阶段优化mapred.min.split.size: 指的是数据的最小分割单元大小;min的默认值...

2019-08-30 14:30:00 119

转载 hive中几个排序方式的区别

hive中Sort By,Order By,Cluster By,Distribute By,Group By的区别order by:  hive中的order by 和传统sql中的order by 一样,对数据做全局排序,加上排序,会新启动一个job进行排序,会把所有数据放到同一个reduce中进行处理,不管数据多少,不管文件多少,都启用一个reduce进行处理。如果指定了...

2019-08-30 13:21:00 168

转载 单例模式学习(一)

什么是单例?为什么要用单例?一个类被设计出来,就代表它表示具有某种行为(方法),属性(成员变量),而一般情况下,当我们想使用这个类时,会使用new关键字,这时候jvm会帮我们构造一个该类的实例。而我们知道,对于new这个关键字以及该实例,相对而言是比较耗费资源的。所以如果我们能够想办法在jvm启动时就new好,或者在某一次实例new好以后,以后不再需要这样的动作,就能够节省很...

2019-08-25 17:06:00 73

转载 java线程池学习(一)

前言在实际工作中,线程是一个我们经常要打交道的角色,它可以帮我们灵活利用资源,提升程序运行效率。但是我们今天不是探讨线程!我们今天来聊聊另一个与线程息息相关的角色:线程池.本篇文章的目的就是全方位的解析线程池的作用,以及jdk中的接口,实现以及原理,另外对于某些重要概念,将从源码的角度探讨。tip:本文较长,建议先码后看。线程池介绍首先我们看一段创建线程并且运行的...

2019-08-25 16:58:00 100

转载 redis面试总结(二)

7.redis 集群模式的工作原理能说一下么?在集群模式下,redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?考点分析在前几年,redis 如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有 codis,或者 twemproxy,都有。有一些 redis 中间件,你读写 redis 中间件,redis 中...

2019-08-25 16:45:00 102

转载 redis面试总结(一)

1.项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?面试题剖析为什么要用缓存?用缓存,主要有两个用途:高性能、高并发。高性能假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办?缓存...

2019-08-25 16:37:00 69

转载 spark 内存溢出处理

简介Spark中的OOM问题不外乎以下两种情况map执行中内存溢出shuffle后内存溢出map执行中内存溢出代表了所有map类型的操作。包括:flatMap,filter,mapPatitions等。 shuffle后内存溢出的shuffle操作包括join,reduceByKey,repartition等操作。 后面先总结一下我对Spark内存模型的理...

2019-08-25 12:57:00 828

转载 大数据面试总结(一)

一、如何检查namenode是否正常运行?重启namenode的命令是什么?  通过节点信息和浏览器查看,通过脚本监控  hadoop-daemon.sh start namenode  hdfs-daemon.sh start namenode  二、hdfs存储机制是怎样的?  1) client端发送写文件请求,namenode检查文件是否存在,如果已存在,直接返回错误信息,否则,...

2019-08-25 12:39:00 1111

转载 Spark 知识点总结--调优(一)

搭建集群: SPARK_WORKER-CORES : 当计算机是32核双线程的时候,需要指定SPARK_WORKER_CORES的个数为64个SPARK_WORKER_MEMORY :任务提交:./spark-submit --master node:port --executor-cores --class ..jar xxx--executor-cores: 指定每...

2019-08-24 08:36:00 154

转载 java 性能调优 (一)

1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:第一,控制资源的使用,通过线程同步来控制资源的并发访问;第二,控制实例的产生,以达到节约资源的目的;第三,控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。●2. 尽量避免随意使用静...

2019-08-07 07:38:00 216

转载 flink 学习总结(二)

flink wordcount 代码及相关知识点总结:package com.lw.myflinkproject;import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.common.functions.MapFunction;imp...

2019-08-06 11:59:00 170

转载 flink 学习总结(一)

flink程序开发流程:1、 set up the batch execution environment2、get date3、develop business logic4、executor program用flink实现githab上面的example :用批处理实现wordcount(java版本):import org.apache.fl...

2019-08-04 20:17:00 300

转载 kudu 学习知识点总结(二)

1、KUDU分区数必须预先预定 2、在内存中对每个Tablet分区维护一个MemRowSet来管理最新更新的数据,默认是1G刷新一次或者是2分钟。后Flush到磁盘上形成DiskRowSet, 多个DiskRowSet在适当的时候进行归并处理 3、和HBase采用的LSM(LogStructured Merge,很难对数据进行特殊编码,所以处理...

2019-07-31 07:13:00 861

转载 kudu 知识点学习(一)

Apache Kudu的基本思想、架构和与Impala实践Apache Kudu是一个为了Hadoop系统环境而打造的列存储管理器,与一般的Hadoop生态环境中的其他应用一样,具有能在通用硬件上运行、水平扩展性佳和支持高可用性操作等功能。在Kudu出现之前,Hadoop生态环境中的储存主要依赖HDFS和HBase,追求高吞吐批处理的用例中使用HDFS,追求低延时随机读取用例下用...

2019-07-31 06:46:00 203

转载 Druid 入门知识学习(一)

1.什么是Druid?Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。Druid采用的架构: shared-nothing架构与lambda架构Druid设计三个原则:1.快速查询(Fast ...

2019-07-31 06:18:00 186

转载 OLAP与OLTP的比较

OLTP与OLAP的介绍 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且...

2019-07-30 21:07:00 510

转载 storm知识点学习总结(一)

storm --流式处理框架 storm是个实时的、分布式以及具备高容错的计算系统 - storm 进程常驻内存 - storm 数据不经过磁盘,在内存中处理 Twitter开源的分布式实时大数据处理框架,最早开源于github storm 架构 -Nimbus -Supervisor -Worker 编程模型: - DAG -S...

2019-07-28 09:39:00 416

转载 JVM相关知识点学习(二)

一、程序计数器:程序计数器是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。程序计数器处于线程独占区如果线程执行的是java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的是native方法,这个计数器的值为undefined此区域是唯一一个在java虚拟机规范中没有规定任何OutOfMemoryError情况的区域java虚拟...

2019-07-26 17:05:00 79

转载 JDK1.8 新特性学习(一)

JDK1.8 引入了函数式编程lambda,使编程变得简洁.可以用lambda表达式替代匿名函数package javaJVM;import java.awt.Event;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.J...

2019-07-20 04:18:00 154

转载 jvm相关知识点学习(一)

1、Class loader类加载器: 负责加载class文件,class文件在文件开头有特定的文件标识,并且classLoader只负责class文件的加载,至于它是否可以运行,则由Execution English 决定 2、Native Interfice 本地接口的作用是融合不同的编程语言为java 所用,它的初衷是融合 c/c++...

2019-07-20 04:02:00 95

转载 azkaban知识点学习总结(一)

一 概述1.1为什么需要工作流调度系统1)一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序、hive脚本等2)各任务单元之间存在时间先后及前后依赖关系3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对...

2019-07-19 07:46:00 137

转载 Oozie知识点学习总结(一)

Oozie知识框架: 理性认知: Oozie (驯象人)2、Oozie简介: 一个基于工作流引擎的开源框架,有Cloudera公司贡献给apache,提供对hadoop、Mapreduce、Pig jobs 的任务调度和协调 oozie需要部署到java servlet容器中运行3、oozie在集群中扮演的角色: 定时调度任务,多任务可以按照执行的逻辑...

2019-07-17 01:56:00 206

转载 MongoDB学习知识点总结(一)

json的两种格式:JSON对象 { }JSON数组【】MongoDB的数据模型是面向文档的,所谓文档是一种类似于LSON的结构,简单理解MongoDB这个数据库中存的是各种各样的json(BSON)三个概念:数据库(database) --数据库是一个仓库,在仓库中可以存放集合集合 (collection) --集合类似于数组,在集合中可以存放文档...

2019-07-16 00:06:00 92

转载 elasticsearch

elasticsearch安装及安装中遇到的坑:一、安装步骤:上传三个安装文件:elasticsearch-5.2.2.tar --elasticsearch的安装包elasticsearch-head-master --连接elasticsearch需要的插件安装包node-v6.9.2-linux-x64.tar --安装插件所需要的nodejs继承环境...

2019-07-15 00:08:00 75

转载 zookeeper学习(一)

zookeeper的特点:1、最终一致性: 为客户端展示同一个视图,这是zookeeper里面一个非常重要的功能2、可靠性 : 如果消息被一台服务器接收,那么他将被所有的服务器接收3、zookeeper不能保证两个客户端同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口4、独立性: 各个client之间互不干预5、原子性:更新只能成功或者失...

2019-07-07 10:56:00 177

转载 redis学习总结(二)

redis 持久化 交换什么是持久化: 将数据从掉电易失的内存存放到能够永久存储的设备上redis持久化方式:RDB(Redis DB) hdfs:fsimage(产生持久化镜像文件,以二进制格式文件的形式存储,对应reids的RDB文件) AOF(AppendOnlyFile) hdfs: edit logs 关闭 (以客户端向redis发送指令的形式来存储文件 ...

2019-07-06 18:50:00 77

转载 多线程学习(一)

简单多线程小程序代码实现:1、编写多线程合作逐个字母打印出“I am a programmer”的程序,该字符串有char类型的数组存储import static jodd.util.ThreadUtil.sleep;public class CharNum { static String str = "i am a programmer"; ...

2019-07-05 05:53:00 166

转载 redis学习总结(一)

一 、redis的安装1、查看是否有安装gcc tcl 编译环境Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接...

2019-07-05 04:20:00 79

转载 kafka学习知识点总结(四)

代码调试过程中遇到的错误总结: KafkaUtils.createDirectStream[String, String]( ssc, LocationStrategies.PreferConsistent, Subscribe[String, String](topics, kafkaParams) )在代码编写的...

2019-07-02 05:07:00 124

转载 kafka学习知识点总结(三)

KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言...

2019-06-28 13:27:00 709

转载 kafka学习知识点总结(二)

一、kafka配置文件中相关配置项说明(server.properties)#broker的全局唯一编号,不能重复broker.id=0#用来监听链接的端口,producer或consumer将在此端口建立连接port=9092#处理网络请求的线程数量num.network.threads=3#用来处理磁盘IO的现成数量num.io.thr...

2019-06-28 04:06:00 167

转载 kafka学习知识点总结(一)

kafka + sparkStreaming 有什么好处:1、解耦 2、缓冲 (系统之间解耦合、峰值压力缓冲、异步通信)kafka消息队列的特点:可靠性保证: 自己不丢数据,消费者不丢数据 消息系统的特点:生产者消费者模式 ,FIFO --partition内部是FIFO的,partition之间不是FIFO的,当然我们可以把一个topic设为...

2019-06-27 18:36:00 173

转载 Spark Streaming HA

Driver HA:1、在提交application的时候,添加 --supervise 选项,如果Driver挂掉,会自动启动一个Driver2、代码层面恢复Driver3、在恢复checkpoint中数据的时候,把旧的逻辑也一起给恢复了主要的作用就是当SparkStreaming 停机之后,下次启动的时候,让代码知道上一次停机的数据处理节点在什么地方,避免从头开...

2019-06-26 15:36:00 124

空空如也

空空如也

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

TA关注的人

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