-
[综合] Spring通知(前置通知,后置通知,返回通知,异常通知,环绕通知)
一、前置通知 --前置通知 : 在方法执行之前执行的通知 --前置通知使用 @Before 注解 , 并将切入点表达式的值作为注解值。 /** *声明该方法是一个前置通知:在目标方法开始之前执行 */ @Before ( "execution(publicintaop.Atithmeti...
77
热度 -
[综合] Spring切面优先级与重用切点表达式
一、切面优先级 @Order ( 1 ) @Aspect @Component publicclass LoggingAspect { } --在同一个连接点上应用不止一个切面,除非明确指定,否则它们的优先级是不确定的 --切面的优先级可以通过实现Ordered接口或者利用@Orde...
67
热度 -
[综合] SpringCloud学习笔记(一):微服务是什么?SpringCloud是什么?
一、什么是微服务 马丁福勒对微服务的概述:微服务架构一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协作、相互配合,为用户提供最终价值。服务之间采用轻量级的通讯机制互相沟通(通常是基于Http和RESfulAPI)。每个服务...
57
热度 -
[综合] 大数据(四):通过API和IO流控制HDFS
一、获取api和配置开发环境 准备jar包 解压hadoop-2.7.2.tar.gz到非中文目录 进入share文件夹,查找所有jar包,并把jar包拷贝到_lib文件夹下 在全部jar包中查找sources.jar,并剪切到_source文件夹 在全部jar包中查找tests.jar,并剪切...
26
热度 -
[综合] 大数据(十二):自定义OutputFormat与ReduceJoin合并(数据倾斜)
一、OutputFormat接口 OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。 1.文本输出TextOutPutFormat 默认的输出格式是TextOutputFormat,它把每条记录写为文本行。他的键和值可以是任意...
59
热度 -
[综合] 大数据(十三):MapJoin(DistributedCache分布式缓存)、数据清理实例与计数器应用
一、在map端表合并(DistributedCache分布式缓存) 1.适用场景 适合用于关联表中有小表的情形。 可以将小表分发到所有的map节点,这样,map节点就可以在本地对自己所读到的大表数据进行合并并输出最终结果,可以大大提高合并操作的并发速度,加快处理速度。 2.程序分析 加载缓存数据:...
79
热度 -
[综合] 大数据(十五):Hadoop数据压缩与压缩/解压缩实例
一、数据压缩 1.概论 压缩技术能够有效减少低层存储系统(HDFS)读写字节。压缩提高了网络带宽和磁盘空间的效率。在Hadoop下,尤其是数据规模很大和工作负载密集的情况下。使用数据压缩闲的非常重要。在这种情况下,I/O操作和网络数据传输要花大量的时间。还有,shuffle与merge过程同样也面临...
13
热度 -
[综合] 大数据(二十):hive分区表、修改表语句与数据的导入导出
一、分区表 分区表实际上就是对应一个HDFS文件系统上的一个独立的文件夹,该文件夹下是该分区所有的数据文件,hive中的分区就是分目录,把一个大的数据集更具业务需求分割成小的数据集。在查询时通过where子句中的表达式选择查询所需要的指定分区,这样查询效率会提高很多。 1.创建分区表 createt...
22
热度 -
[综合] J.U.C源码分析:CountDownLatch
CountDownLoad是在并发编程中使用较多的一个类,可以完成多个线程之间的相互等待和协作,源码内容不多但功能强大且使用场景复杂多样。 源码中对CountDownLoad功能的定义非常简单: Asynchronizationaidthatallowsoneormorethreadstowaitu...
103
热度 -
[综合] 大数据(二十一):hive查询语句
一、查询语句 1.基本语法 SELECT[ALL|DISTINCT]select_expr,select_expr,... FROMtable_reference [WHEREwhere_condition] [GROUPBYcol_list] [ORDERBYcol_list] [CLUSTERB...
8
热度 -
[综合] 大数据(二十四):数据倾斜优化、并行执行、严格模式、JVM重用、执行计划
一、数据倾斜优化 1.合理设置Map数量 1.通常情况下,作业会通过input的目录产生一个或者多个map任务 主要的决定因素有:input的文件总个数,input的文件大小,集群设置的文件块大小。 2.Map并非越多越好 如果一个任务有很多小文件,则每个小文件也会被当做一个块,用一个map任务来完...
20
热度 -
[综合] 大数据(二十六):Sqoop的import、export命令和命令脚本
一、sqoop导入命令(import) 在Sqoop中,“导入”概念指:从非大数据集群(RDBMS)向大数据集群(HDFS,HIVE,HBASE)中传输数据。 1.在MySql中新建一张表并插入一些数据 createdatabasecompany; createtablecompany.staff(...
86
热度 -
[综合] 大数据(二十七):Sqoop常用命令和公用参数
一、常用命令列举 命令 类 说明 import ImportTool 将数据导入到集群 export ExportTool 将集群数据导出 codegen CodeGenTool 获取数据库中某张表数据生成java并打包jar create-hive-table CreateH...
69
热度 -
[综合] 大数据(二十八):Sqoop命令参数
一、import 将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中,如果导入的是Hive,那么当Hive中没有对应表时,则自动创建。 1.命令: bin/sqoopimport\ --connectjdbc:mysql://linux01:3306/company\ --usern...
61
热度 -
[综合] 大数据(三十):zookeeper集群与kafka集群部署
一、安装Zookeeper 1.集群规划 在hadoop102、hadoop103和hadoop104三个节点上部署Zookeeper。 2.解压安装 1.解压zookeeper安装包到/usr/local/目录下 tar-zxvfzookeeper-3.4.10.tar.gz-C/usr/loca...
89
热度 -
[综合] 全网最细致的spring源码分析(二):spring在创建bean对象的之前的骚操作
一、回顾 上回说到Spring在获取单例Bean的时候,有一种情况会调用ObjectFactory下的createBean方法创建bean。 当然不可能指望在一个方法中就完成创建bean的复杂逻辑,而且跟踪如此之多的spring代码,多多少少也能发现一些规律,一层套一层的验证判断、各种类之间的协作,...
57
热度 -
[综合] 全网最细致的spring源码分析(四):spring创建一个bean对象的逻辑和源码解析
spring最为基础也是极为重要的一个元素单位便是bean,bean由开发者编写的普通java类经过spring按照开发者指定的规则生成而来,作为pojo的替代对象进行使用,之前的学习中已经知道spring通过doCreateBean(finalStringbeanName,finalRootBea...
69
热度 -
[综合] 设计模式思维智慧的结晶(一):导论
一、什么是设计模式 这里引用克里斯托弗·亚历山大(ChristopherAlexander)的一句话: “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。 这样,你就能一次又一次地使用该方案而不必做重复劳动“ 虽然克里斯托弗·亚历山大是一个建筑领域的专家,但这句话也能很...
98
热度 -
[综合] 全网最细致的spring源码分析(五):spring的带参实例化与通用实例化(autowireConstructor AND instantiateBean)
spring中实例化对象的情况,通常分为两种,一种是通用的实例化,另一种是带有参数的实例化。带参的实例化存在着不确定性,在判断对应参数上做了大量工作,同样的实例化过程也是相当复杂。 一、autowireConstructor autowireConstructor方法在ConstructorRes...
28
热度 -
[综合] 全网最细致的spring源码分析(六):spring实例化策略
上一章节,实例化过程中反复提到实例化策略,这到底是做什么的呢?事实上,在经过前面的分析,我们已经得到了足够用于实例化的所有信息,完全可以使用最简单的反射方式直接构建实例对象,但spring却不仅仅如此。 spring初始化策略主要使用SimpleInstantiationStrategy类下的ins...
47
热度