自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jonney's house

Step By Step

  • 博客(45)
  • 收藏
  • 关注

原创 Hive学习心得&Hive的UDF

一:Hive基本介绍Hive是建立在Hadoop上的数据仓库基础构架,它提供了一系列工具可以用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模的数据机制。使用语言:QL语言(类SQL查询语言)。能处理内建的mapper和reducer无法完成的复杂分析工作。1.Hive是SQL解析引擎,它将SQL语句转译成M/R Job然后再Hadoop执行。2

2015-02-16 10:29:24 1480

原创 Java多线程之可见性分析

可见性:一个线程对共享变量值的修改,能够及时地被其他线程看到。Java内存模型(JMM)描述了Java程序中各种变量(线程共享变量)的访问规则,以及在JVM中将变量存储到内存中和从内存中读取出变量这样的底层细节。多线程中所有的变量都存储在主内存中,每个线程都有自己的独立的工作内存,里面保存该线程使用的变量的副本(主内存中该变量的拷贝)。两种方式实现多线程的可见性synchronized实现可见性sy

2015-04-22 10:42:56 1093

原创 Spring中Bean的生命周期解读

Spring容器中的Bean拥有明确的生命周期,由多个特定的生命阶段组成,每个生命阶段都允许外界对Bean施加控制。在Spring中,我们从Bean的作用范围和实例化Bean时所经历的一系列阶段来描述Bean的生命周期:BeanFactory中的Bean的生命周期 简单可分为三类 1.Bean自身的方法 (调用Bean的构造函数实例化Bean,调用setter方法设置Bean的属性值,以及

2015-04-20 17:29:26 985

原创 Spring之IOC实现原理

前段时间写了篇关于Spring的AOP框架实现原理的文章,现在浅谈下Spring的另一大核心概念IOC的原理。 IOC:即控制反转。官方解释是让调用类对某一接口实现类的依赖关系由第三方注入,以转移调用类对某一接口实现类的依赖。 下面将举个现实例子加深理解: “剧本”要选定“角色”的“饰演者”,我们可以创建第三方“导演“来控制”剧本”,引入“导演”,“剧本”和“饰演者”将完全接偶。”导演“将

2015-04-20 16:28:17 2699

原创 Lucene实现SearchManager近实时搜索

lucene通过NRTManager这个类来实现近实时搜索,所谓近实时搜索即在索引发生改变时,通过线程跟踪,在相对很短的时间反映给给用户程序的调用NRTManager通过管理IndexWriter对象,并将IndexWriter的一些方法(增删改)例如addDocument,deleteDocument等方法暴露给客户调用,它的操作全部在内存里面,所以如果你不调用I

2015-04-13 10:24:09 2247

原创 Lucene实现自定义中文同义词分词器

----------------------------------------------------------lucene的分词_中文分词介绍----------------------------------------------------------Paoding:庖丁解牛分词器。已经没有更新了mmseg:使用搜狗的词库1.导入包(有两个包:1.带dic的,2

2015-04-08 10:08:04 3089

原创 Lucene分词原理与方式

--------------------------------------------------------lucene的分词_分词器的原理讲解--------------------------------------------------------几个默认分词SimpleAnalyzerStopAnalyzerWhitespaceAnalyzer(根据空格分

2015-04-08 09:56:37 2218

原创 Lucene查询方式总结

--------------------------------------------------IndexReader的设计--------------------------------------------------IndexReader的创建需要消耗大量内存空间,所以通过将IndexReader设计出属性值,进行一次创建整个项目周期就只有一个IndexRead

2015-04-04 14:37:56 1469

原创 Lucene索引创建方法和步骤

在全文索引工具中,都是由这样的三部分组成1.索引部分2.分词部分3.搜索部分----------------------------------索引创建域选项----------------------------------Field.Store.YES或者NO(存储域选项)YES:表示会把这个域中的内容完全存储到文件中,方便进行还原[对于主键,标题可以是这种方式

2015-04-01 15:58:57 1726

原创 MapReduce处理输出多文件格式(MultipleOutputs)

MultiPleOutputs原理MapReduce job中,可以使用FileInputFormat和FileOutputFormat来对输入路径和输出路径来进行设置。在输出目录中,框架自己会自动对输出文件进行命名和组织,如part-(m|r)-00000之类,但有时为了后续流程的方便,我们常需要对输出结果进行一定的分类和组织。以前常用的方法是在MR job运行之后,用脚本对目录下的数据

2015-03-30 16:43:43 5350

原创 MapReduce对输入多文件的处理2自定义FileInputFormat类

多种自定义文件格式的文件输入处理MultipleInputs可以让MR支持多种输入格式比如我们有两种文件格式,那么我们就要有两套Record Class,RecordReader和InputFormatInputFormat(extends FileInputFormat)--->RecordReader(extends RecordReader)--->RecordClass(imp

2015-03-29 19:43:12 1664

原创 MapReduce对输入多文件的处理

MultipleInputs类指定不同的输入文件路径以及输入文化格式 现有两份数据 phone 123,good number 124,common number 125,bad number user zhangsan,123 lisi,124 wangwu,125 现在需要把user和phone按照phone number连接起来。得到下面的结果 z

2015-03-29 15:28:16 5166

原创 MapReduce实现倒排索引

使用到Combiner编程(可插拔式)在map端对输出先做合并,最基本是实现本地key合并,具有本地reduce功能如果不用combiner,所有结果都是reduce完成,效率会底下Combiner的的输入输出类型应该完全一致(实现如累加,最大值等功能)job.setCombinerClass();倒排索引基本实现package cn.MapReduce.px;impo

2015-03-28 16:10:35 1068

原创 MapReduce处理表的自连接

原始数据/* * 原始数据 * 子    父 * Tom Lucy Tom Jack Jone Locy Jone Jack Lucy Mary Lucy Ben Jack Alice Jack Jesse TerryAlice TerryJesse PhilipAlma Mark Terry Mark Alma */要求通过

2015-03-28 12:59:05 2113

原创 MapReduce处理二次排序(分区-排序-分组)

MapReduce二次排序原理在map阶段,使用job.setInputFormatClass定义的InputFormat将输入的数据集分割成小数据块splites,同时InputFormat提供一个RecordReader的实现。本例子中使用的时TextInputFormat,他提供的RecordReader会将文本的字节偏移量作为key,这一行的文本作为value。这就是自定义Ma

2015-03-28 12:37:11 1643

原创 MapReduce的两表join操作优化

注:优化前的分析过程详见本博的上篇博文案例地址(Address)和人员(Person)的一对多关联 原始数据地址(Address)数据id AddreName1 beijing2 shanghai3 guangzhou人员(Person)数据1 zhangsan 12 lisi 23 wangwu 14 zhaoliu 35 maqi 3

2015-03-26 14:52:39 2170

原创 MapReduce的两表join一般操作

案例:(部门员工两表的join查询)原始数据员工表(emp): empno ename  job      mgr  hiredate   sal  comm deptno loc 7499  allen  salesman 7698 1981-02-20 1600 300  30 7782  clark  manager  7639 1981-06-09 2450     

2015-03-26 14:35:05 2967

原创 MapReduce处理数据平均值与数值大小排行比较

一:计算数据平均值在map中将名称作为key 数据为value写出去/* * 计算平均成绩 * 名字作为key 分数值为value写出去 */public class AverageMap extends Mapper { protected void map( LongWritable key, Text value, org.apache.hadoop.ma

2015-03-24 13:36:34 2670

原创 MapReduce处理数据去重与数据排序

一:MapReduce处理数据去重Map的key具有数据去重的功能/* * 去除数据中相同数据 * 数据去重问题 * 以整个数据作为key发送出去, value为null */public class DelsameMap extends Mapper { @Override protected void map(LongWritable key, Text value,

2015-03-24 11:23:21 4034 1

原创 Java算法解析3—————对字符串相关算法

一:根据某种规则缩短字符串/* * 根据规则缩短字符串 */public class Dome07 { public static void main(String[] args) { String str = "C:\\Windows\\Resources\\Themes\\aero"; while (true) { System.out.println(str);

2015-03-21 20:53:11 824

原创 Java算法分析2—————几种排序&汉诺塔算法

一:插入排序/* * 插入排序 *//* * 原序列 [12] 15 9 20 6 31 24 * 第0趟 [12 15] 9 20 6 31 24 * 第1趟 [9 12 15] 20 6 31 24 * 第2趟 [9 12 15 20] 6 31 24 * 第3趟 [6 9 12 15 20] 31 24 * n个数,一共需要多少趟?n个数,n-1趟 * 第

2015-03-21 18:55:54 586

原创 MySQL数据库触发器(trigger)

MySQL触发器(trigger):监视某种情况并触发某种操作 一:四要素触发时间:before/after 地点:table监视操作:insert/update/delete触发操作:insert/update/delete 二:创建触发器delimiter $     #将sql结束符改为$  方便写触发的sql语句create trigger tr

2015-03-19 17:04:56 869

转载 Hibernate缓存机制

Hibernate 缓存机制  一、why(为什么要用Hibernate缓存?)Hibernate是一个持久层框架,经常访问物理数据库。为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 二、what(Hibernate

2015-03-19 16:47:41 431

原创 Java算法分析1—————寻找数组相同元素

算法的两个评测指标:运行时间和内存消耗要么用时间换空间,要么用空间换时间 寻找数组相同元素测试一:0~99共100个元素各不相同,新加入一个0~99的元素不明确位置从101个元素数组中找出与0~99元素中重复的一个/* 找相同元素 * 0~99共100个元素各不相同 * 从101个元素数组中找出与0~99元素中重复的一个 */public class Dome01

2015-03-19 15:20:22 2705

原创 MySQL数据库优化总结

一:MySQL数据库优化考量标准1.数据库设计(表设计合理)三范式(规范的模式)   三范式包括:             第一范式:1NF是对属性的原子性的约束,要求属性具有原子性,不可再分解。(只要是关系型数据库都满足)             第二范式:2NF是记录的唯一性约束,要求记录有唯一标识,即实体的唯一性。(设立主键)             第三范式:3NF是对

2015-03-17 11:51:44 804

原创 实现类似Spring的可配置的AOP框架

可配置的AOP框架中两个重要的类:BeanFactory工厂类BeanFactory负责创建目标或代理类的实例对象,并通过配置文件进行切换,其getBean()方法根据参数字符串返回一个相应的实例对象,如果参数字符串在配置文件中对应的类名不是ProxyFactoryBean(根据本例子),则直接返回该类的实例对象,否则返回该类实例对象的getProxy()方法返回的对象。BeanFac

2015-03-15 12:10:26 1009

原创 AOP代理分析

一:代理代理类和目标类实现了相同的接口,相同的方法。如果采用工厂模式和配置文件的方式进行管理,则不需要修改客户端程序,在配置文件中配置使用目标类还是代理类,这样以后就很容易切换。(例如Spring框架的实现)AOP:AOP的目标就是要使交叉业务模块化,可以将切面代码移动到原始方法的范围。 二:动态代理JVM可以在运行期间动态生成出类的字节码,这种动态生成的类往往被用作代

2015-03-14 13:51:13 796

原创 Java类加载器原理分析

一:Java虚拟机中可以安装多个类加载器,系统默认是三个主要的类加载器:Bootstrap  ExtClassLoader  AppClassLoader类加载器也是Java类。因为其他Java类加载器本身也要被类加载器加载,显然必须有第一个类加载器不是Java类,这正是Bootstrap 二:Java虚拟机中的所有类加载器采用具有父子关系的树形结构,在实例化每个类加载器对象时,需

2015-03-12 16:17:27 594

原创 Java泛型

一:泛型指省去类型转换之苦。泛型集合:只能存储同一类型的对象Java的泛型只在编译前对集合类型进行规范,编译后将去“类型化”不再保留泛型的信息。 二:泛型规则1.参数化类型不等,不考虑类型参数的继承关系   Vector v=new Vector();    //错误    Vector v=new Vector();    //错误2.在创建数组实例时,数组的元素不能

2015-03-11 16:43:13 512

原创 Java注解

一:Java1.5起默认三个annotation类型:@override   覆盖父类方法的注解@SuppressWarning   忽略警告@Deprecated   标记方法过时二:注解的运用注解类@interface A{}应用了"注解类"的类@Aclass B{}对”应用了注解类的类"进行反射操作的类class C{   if(B

2015-03-10 10:55:28 648

原创 JavaBean的两种内省操作

反射技术实际是已经能够完全满足我们对javaBean的各种操作了,但是为了方便JDK还是为我们提供了一套操纵JavaBean的API,我们称这套API为内省操作(Introspector)下面介绍两种JavaBean的内省操作先定义个JavaBean类public class userbean { private int age; private String name; pu

2015-03-09 18:35:23 439

原创 ArrayList与HashSet比较及HashCode分析

ArrayList与HashSet比较              ArrayList是一种有顺序的集合          HashSet通过比较两个对象是否相等,相同则不加入HashSet集合,不允许重复。如何比较? HashSet集合对象中必须重写equals()方法和hashCode()方法          HashCode分析             目的提

2015-03-08 15:29:26 1064

原创 Java反射原理分析

一:Java的反射就是把Java类中的各种成分映射成相应的Java类。例如:一个Java类中用一个Class类的对象来表示此Java类中的组成部分:成员变量,方法,构造方法,包等信息也用一个个的Java类来表示。比如汽车是一个类,汽车中的发动机中的发动机,变速箱等一个一个个的类。二:一句话概括:反射就是把Java类中的各个成分映射成相应的Java类。三:反射的基石:Class类(J

2015-03-07 18:45:56 2293

原创 Java枚举分析

枚举的作用是在编译时阻止数据不合法,规范数据类型。一:用普通类模拟枚举实现原理在主类中public class Enum { public static void main(String[] args) {  // 定义的对象及为枚举对象的属性 每一个枚举都是一个对象  WeekDay1 weekday = WeekDay1.SUN;  System.out.print

2015-03-06 21:06:49 423

原创 HBase学习心得之HBase原理&Java接口操作增删改查

HBase之伟大(总结)  一:region是按大小分割的,每个表开始只有一个region。随着数据不断插入表,region会不断增大,增大到了某个阀值,HRegion就会等分成两个新的HRegion。  二:HRegion是Hbase中分布式存储和负载均衡的最小单位,最小单位就表示不同的HRegion能分布在不同的HRegion Server上,但一个HRegion是不能拆分到多个S

2015-02-10 11:23:03 778

原创 HBase学习心得

Hadoop Database简称HBase,是一个高可靠性、高性能、面向列,可伸缩的分布式存储系统。               利用HBase可在廉价的PC Server上搭建起大规模结构化存储集群。利用HDFS作为其文件存储系统、利用MapReduce处理HBase中海量数据、利用Zookeeper作为协调工具。 一:HBase主要包含三种属性:   主键:Row Key

2015-02-04 18:34:01 2414

原创 数据迁移sqoop学习心得

sqoop是Apache基金会下的数据迁移工具。主要功能是能将数据库中的数据导入到hdfs中,同时也能使hdfs中的数据导出至数据库中。sqoop的安装只需在hadoop集群中的任意一台机器上即可。因为sqoop自动配置了搜寻NameNode和ResourceManage的功能,运行时能访问到hadoop的core-site.xml,hdfs-site.xml,yarn-site.xml等配置

2015-02-03 10:51:39 1558

原创 ZooKeeper集群搭建

ZooKeeper是Hadoop的分布式协调服务。包含一个简单的原语集,分布式应用程序可以基于Zookeeper实现同步服务,配置维护和命名服务等。Zookeeper集群必须是奇数台。只要一半以上的机器运行,就能提供服务。 zookeeper的默认配置文件为zookeeper/conf/zoo_sample.cfg,需要将其修改为zoo.cfg。其中各配置项的含义,解释如下:1.t

2015-01-24 17:08:05 577

原创 hadoop远程调试

JDWP 设置JVM本身就支持远程调试,Eclipse也支持JDWP,只需要在各模块的JVM启动时加载以下参数:dt_socket表示使用套接字传输。address=8000JVM在8000端口上监听请求,这个设定为一个不冲突的端口即可。server=y y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。suspend=yy表示启动的JVM会暂停等

2015-01-20 13:04:43 477

原创 Linux下maven开发MapReduce

1.安装mvn 1.1上传安装包到linux 1.2解压maven安装包  mkdir /usr/maven  tar -zxvf apache-maven-3.2.1-bin.tar.gz -C /usr/maven 1.3添加maven到环境变量  vim /etc/profile  export JAVA_HOME=/usr/java/jdk1.7.0_5

2015-01-19 18:43:28 882

空空如也

空空如也

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

TA关注的人

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