- 博客(135)
- 资源 (2)
- 收藏
- 关注
原创 elasticsearch 查询(match和term)
es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL)。由于DSL查询更为直观也更为简易,所以大都使用这种方式。DSL查询是POST过去一个json,由于post的请求是json格式的,所以存在很多灵活性,也有很多形式。这里有一个地方注意的是官方文档里面给的例子的json结构只是一部分,并不是可以直接黏贴复制进去使用的。一般要在外面加个que...
2016-06-28 16:45:19
315
原创 [Elasticsearch] 聚合中的重要概念 - Buckets(桶)及Metrics(指标)
本章翻译自Elasticsearch官方指南的Aggregations-High-level Concepts一章。 高层概念(High-Level Concepts) 和查询DSL一样,聚合(Aggregations)也拥有一种可组合(Composable)的语法:独立的功能单元可以被混合在一起来满足你的需求。这意味着需要学习的基本概念虽然不多,但是它们的组合方式是几近...
2016-06-28 16:14:38
304
原创 Maven实战——打包的技巧
“打包“这个词听起来比较土,比较正式的说法应该是”构建项目软件包“,具体说就是将项目中的各种文件,比如源代码、编译生成的字节码、配置文件、文档,按照规范的格式生成归档,最常见的当然就是JAR包和WAR包了,复杂点的例子是Maven官方下载页面的分发包, 它有自定义的格式,方便用户直接解压后就在命令行使用。作为一款”打包工具“,Maven自然有义务帮助用户创建各种各样的包,规范的JAR包和WAR包...
2016-06-24 14:52:37
232
原创 Hive SQL的优化(转)
本章只是从HQL层面介绍一下,日常开发HQL中需要注意的一些优化点,不涉及Hadoop层面的参数、配置等优化。其中大部分是我之前发过的博客文章,这里整理了下。11.1 使用分区剪裁、列剪裁在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT *。在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在Where后面,那么就会先全表关联,之后再过滤,比如:S...
2016-03-17 15:37:28
448
原创 Hive的元数据表结构详解(转自lxw1234)
本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。文章最后面,会以一个示例来全面了解一下,Hive的元数据是怎么生成和存储的。13.1 存储Hive版本的元数据表(VERSION)该表比较简单,但很重要。VER_IDSCHEMA_VERSIONVERSION_COMMENTID主键Hive版本版本说明10.13.0...
2016-03-15 18:16:38
443
原创 RDD详解
Job 逻辑执行图General logical plan典型的 Job 逻辑执行图如上所示,经过下面四个步骤可以得到最终执行结果:从数据源(可以是本地 file,内存数据结构, HDFS,HBase 等)读取数据创建最初的 RDD。上一章例子中的 parallelize() 相当于 createRDD()。对 RDD 进行一系列的 transformation() 操作...
2016-03-14 14:30:48
502
原创 数据仓库和数据集市的区别与联系(转)
企业从事数据仓库项目时,往往会遇到多个数据仓库软件供应商。各供应商除了推销相关的软件工具外,同时会向企业灌输许多概念,其中,数据仓库和数据集市是最常见的。由于术语定义不统一,另外各个供应商销售策略不一样,往往会给企业带来很大的混淆。最典型的问题是:到底是先上一个企业级的数据仓库呢?还是先上一个部门级的数据集市?本文试图说明这两个概念之间的区别和联系,以期对具体的数据仓库项目有所裨益。1.为什么会...
2015-11-19 10:44:37
833
原创 HBase的compact分析
HBase是基于LSM树存储模型的分布式NoSQL数据库。LSM树对比普遍的B+树来说,能够获得较高随机写性能的同时,也能保持可靠的随机读性能(可参考这里)。在进行读请求的时候,LSM树要把多个子树(类似B+树结构)进行归并查询,对于HBase来说,这些子树就是HFile(还包括内存上的树结构MemStore)。因此归并查询的子树数越少,查询的性能就越高。Compact的作用 ...
2015-11-19 10:41:31
187
原创 Linux下查看文件和文件夹大小
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 下面分别简要介绍 df命令可以显示目前所有文...
2015-08-27 17:16:00
135
原创 (转)Maven最佳实践:划分模块
“分天下为三十六郡,郡置守,尉,监” —— 《史记·秦始皇本纪》 所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml。它们之间通过继承和聚合(也称作多模块,multi-module)相互关联。那么,为什么要这么做呢?我们明明在开发一个项目,划分模块后,导入Eclipse变成了N个项目,这会带来复杂度,给开发带来不便。 为了解释原因,假设有这样一...
2015-08-26 09:55:02
124
原创 hive中order by,sort by, distribute by, cluster by作用以及用法
1. order by Hive中的order by跟传统的sql语言中的order by作用是一样的,会对查询的结果做一次全局排序,所以说,只有hive的sql中制定了order by所有的数据都会到同一个reducer进行处理(不管有多少map,也不管文件有多少的block只会启动一个reducer)。但是对于大量数据这将会消耗很长的时间去执行。 这里跟传统的sql还有一...
2015-08-10 16:27:06
125
原创 大数据性能调优之HBase的RowKey设计
1 概述HBase是一个分布式的、面向列的数据库,它和一般关系型数据库的最大区别是:HBase很适合于存储非结构化的数据,还有就是它基于列的而不是基于行的模式。既然HBase是采用KeyValue的列存储,那Rowkey就是KeyValue的Key了,表示唯一一行。Rowkey也是一段二进制码流,最大长度为64KB,内容可以由使用的用户自定义。数据加载时,一般也是根据Rowke...
2015-08-07 16:48:30
289
原创 (分析比较到位)NoSql 分析 hbase,mongodb,redis
hbase,mongodb,redis都属于nosql型存储方案。在实际的项目实践上看,他们的系统存储及处理的数量由大到小。HBase基于列存储,提供<key, family:qualifier, timestamp>三项坐标方式定位数据,由于其qualifier的动态可扩展型(无需schema设计,可存储任意多的qualifier),特别适合存储稀疏表结构的数据(比如互联网网页类)...
2015-07-16 18:15:55
315
原创 (转)MapReduce:详解Shuffle过程
Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job 性能调优的工作,需要深入代码研究MapReduce的运行机制,这才对Shuffle探了个究竟。考虑到之前我在看相关资料而看不懂时很恼火,所以...
2015-06-24 11:21:28
157
原创 (分享)数据库与数据仓库的区别
简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查...
2015-06-24 10:07:12
142
原创 数据仓库数据模型之:极限存储--历史拉链表
在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1. 数据量比较大;2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等;3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态, 比如,查看某一个用户在过去某一段时间内,更新过几次等等;4. 变化的比例和频率不是很大,比如,总共有1000万的会员,每天新增和发生...
2015-06-17 15:44:52
226
原创 map和reduce 个数的设定 (Hive优化)经典
一、 控制hive任务中的map数: 1. 通常情况下,作业会通过input的目录产生一个或者多个map任务。 主要的决定因素有: input的文件总个数,input的文件大小,集群设置的文件块大小(目前为128M, 可在hive中通过set dfs.block.size;命令查看到,该参数不能自定义修改);2. 举例: a) 假设input目录下有1个文件a,大小为78...
2015-06-17 14:34:09
1033
原创 数据库的范式及反范式
范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。数据库的设计范式是数据库设计所需要满足的规范。只有理解数据库的设计范式,才能设计出高效率、优雅的数据库,否则可能会设计出错误的数据库.目前有迹可寻的共有8种范式,依次是:...
2015-06-12 15:10:03
240
原创 Hive JOIN使用详解
Hive是基于Hadoop平台的,它提供了类似SQL一样的查询语言HQL。有了Hive,如果使用过SQL语言,并且不理解Hadoop MapReduce运行原理,也就无法通过编程来实现MR,但是你仍然可以很容易地编写出特定查询分析的HQL语句,通过使用类似SQL的语法,将HQL查询语句提交Hive系统执行查询分析,最终Hive会帮你转换成底层Hadoop能够理解的MR Job。对于最基本的HQ...
2015-06-11 18:27:48
129
原创 (转)Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。 第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通...
2015-06-04 16:49:30
134
原创 AWK处理两个文件公共字段
在文件score.txt中存有如下数据:(姓名 分数)lisi 88bokeyuan 97zhangsan 77wangwu 89hongliu 92zhanghua 97在文件student.txt中存有:zhangsanhongliu 使用awk, cut, grep, find等任意shell脚本,输出student.txt所有学生的分数,即输...
2015-06-03 16:36:19
744
原创 maven+springMVC+mybatis+junit详细搭建过程(转)
目录[-]springMVC+mybatis框架搭建1. 工程目录结构整理清楚2. 引入依赖包3. 配置数据库连接属性4. 配置spring配置文件5. java代码编写(model,dao,service层代码)6. mybatis配置7. junit测试插入功能8. springMVC模块搭建 9. log4j日志记录搭建...
2015-06-01 09:46:03
114
原创 hive大数据倾斜总结(转)
在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这些平均值能代表的价值降低。Hive的执行是分阶段的,map处理数据量的差异取决于上一个stage的reduce输出,所以如何将数据均匀...
2015-05-27 18:10:56
114
原创 mdrill sql使用手册
mdrill的分区 mdrill的设计默认是使用分区的,也是按照分区进行存储的,除非强制使用single类型的分区外,查询的时候必须指定分区。目前mdrill的分区字段为thedate,格式为yyyyMMdd在顶层SQL的where条件中必须有如下三种分区设定的一种1. thedate=’yyyyMMdd’ 直接指定某一个分区2. thedate in (yyyyMMdd, yyyyMMdd...
2015-05-27 15:16:33
225
原创 linux awk的使用详解(收藏)
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred A...
2014-09-03 16:04:17
117
原创 OpenSessionInViewFilter详解(转)
OpenSessionInViewFilter是Spring提供的一个针对Hibernate的一个支持类,其主要意思是在发起一个页面请求时打开Hibernate的Session,一直保持这个Session,直到这个请求结束,具体是通过一个Filter来实现的。 由于Hibernate引入了Lazy Load特性,使得脱离Hibernate的Session周期的对象如果再想通过getter方法取到...
2013-07-08 14:25:05
417
原创 【转】web后台线程中获取spring容器内的bean
有时候需要启动一个后台守护线程,做一些别的事情。这时候怎么获取spring里的Service、Dao、Action等对象?(注意自己new一个是不行的,因为脱离了spring的管理,其中IoC资源都没有被注入)。一个解决办法是,重新弄一个Spring: XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource(...
2013-05-16 14:59:27
230
原创 JSP中文乱码的产生原因及解决方案-转
JSP中文乱码的产生原因及解决方案在JSP的开发过程中,经常出现中文乱码的问题,可能一直困扰着大家,现在把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。首先需要了解一下Java中文问题的由来:Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和...
2013-05-15 17:33:36
327
原创 SAML介绍
工作了一段时间,接触到不少知识,好久没有进行总结了,总结总结哈。 其中在系统中用到单点登录的需求,此单点登录有些特殊需求,多个系统之间不存在公共的用户信息,而是自己维护自己的用户集,通过认证中心认证ticket的方式实现系统之间的无缝认证。经过查资料,接触到saml(安全断言标记语言)可以实现此需求,做了一个saml与spring security结合使用的demo...
2013-03-25 21:03:30
1331
原创 Cisco的MAC地址与IP绑定
在Cisco中有以下三种方案可供选择,方案1和方案2实现的功能是一样的,即在具体的交换机端口上绑定特定的主机的MAC地址(网卡硬件地址),方案3是在具体的交换机端口上同时绑定特定的主机的MAC地址(网卡硬件地址)和IP地址。 1.方案1——基于端口的MAC地址绑定 思科2950交换机为例,登录进入交换机,输入管理口令进入配置模式,敲入命令: ng=1 cellPadding=0 wid...
2012-08-23 17:16:12
263
原创 linux下通过JNI用C/C++中调用JAVA类
最近工作中完成了一个linux平台下利用jmx监控进程的资源状态,并在C++程序中调用的功能。现将C++利用JNI调用java方法的过程总结如下:实践后总结如下: 1. 安装 jdk2. 安装gcc(linux自带有的就无需安装了) 利用JNI(java native interface),来实现动态建立java runtime environment.第一,...
2012-07-20 16:15:15
397
原创 逆向工程中的问题:Hibernate project not selected 解决方式(转)
今天用myeclipse自动生成POJO类时一直找不到java src folder。后来通过下面的步骤解决了。按下面的做会生成一个HibernateSessionFactory类。这个不需要可以删除。问题 web 项目中 打开 hibernate.cfg.xml 文件时 提示:The project is not a myEclipse hibernate project。并且:在 db...
2012-03-14 10:43:43
210
原创 责任链模式(转)
责任链模式是一种对象的行为模式。 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使系统可以在不影响客户端的情况下动态的重新组织链和分配责任。一、责任链模式的结构1、责任链模式涉及的角色抽象处理者角色(Handle...
2011-11-22 21:38:31
99
原创 Java序列化与反序列化
基本概念:序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。昨天在一本书上看到了,好好实践了一下,序列化为一般文件,也序列化为XML文件(使用XStream)。用于序列化的实体类Person.java 代码如下(记得需要实现Serializable接口):import java.io.Se...
2011-11-08 23:38:26
98
原创 Spring Aspectj的使用
Applicationcontext.xml代码 xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spri...
2011-11-03 15:25:09
117
原创 JS中的原型方法prototype
JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式在.Net中可以使用clone()来实现原型法原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展。我们称B的原型为A。 2 javascript的方法可以分为三类:a 类方法b 对象方法c 原型方法例子:...
2011-11-01 11:03:12
126
原创 java动态代理--JDK
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种...
2011-10-30 18:04:05
99
原创 Linux环境变量的设置和查看方法
Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。在Windows下,查看环境变量的命令是:set,这个命令会输出系统当前的环境变量。Linux下Linux查看环境变量准确的说是REDHAT下应该如何查看呢,命令是:export如果你想查看某一个名称的环境变量,命令是:ech...
2011-10-23 21:40:13
148
原创 Hibernate更新某些字段的几种update方法
Hibernate 中如果直接使用Session.update(Object o);会把这个表中的所有字段更新一遍。比如:view plaincopy to clipboardprint?public class TeacherTest {@Testpublic void update(){Session session = HibernateUitl.getSessionFa...
2011-09-20 22:48:55
231
原创 Hibernate的merge与update方法的区别
今天做了个测试,写了个测试用例来看看merge与update时控制台打印出来的日志有什么不一样。实体bean很简单,就id和name两个字段,接下来分别给出以下几种测试情形的控制台日志内容:1. 数据库记录已存在,更改person的name为一个新的name。merge方法打印出的日志如下:Hibernate: select person0_.id as id0_0_, person0_.name...
2011-09-20 22:47:44
133
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人