自定义博客皮肤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

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

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

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

2015-03-30 16:43:43 5351

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

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

2015-03-29 19:43:12 1665

原创 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 1070

原创 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 2114

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

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

2015-03-28 12:37:11 1647

原创 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 2171

原创 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 2676

原创 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 4037 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 588

原创 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 873

转载 Hibernate缓存机制

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

2015-03-19 16:47:41 432

原创 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 513

原创 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 425

空空如也

空空如也

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

TA关注的人

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