- 博客(153)
- 收藏
- 关注
Hadoop学习四十四:某项目技术小结概述
一.对源代码的改造 改造MultipleInputs:能够做到HBase文件或者HDFS文件的混合输入改造JobControl和ControlledJob:能够做到一个Job运行完后,先执行扩展类,再运行下一个Job 改造HFileOutputFormat和PutSortReducer:有一种业务场景是新来的一批数据里包含了少量要删除的数据。改造后配合Mapper对这些删除数据的标...
2014-12-15 15:49:52 219
Hadoop学习四十三:MapReduce的二次排序
一.概述 关于二次排序的文章,网上很多,比喻http://www.cnblogs.com/xuxm2007/archive/2011/09/03/2165805.html就写的不错。在此文基础上补充几点。 二.job.setPartitionerClass在什么地方被用到 mapper里每一次write,都会调用到collector.collect(...
2014-11-02 19:10:08 278
Hadoop学习四十二:HBase 过滤器
一.概述客户端创建包含过滤器Filter的Scan。Scan通过RPC被发送给RegionServer,在服务器端执行过滤操作。Scan的作用域是region,所以一个RegionServer有多个region的话,Scan将被发送到每个region。 二.Filter工作流程 你必须知道的是,HBase里的一行数据对应一或者多个KeyValue。再...
2014-07-04 09:49:56 292
Hadoop学习四十一:HBase基础
一.概述 再次学习HBase实战和HBase权威指南时,对HBase了解又深了许多。本文列出一些值得关注的点。 二.HBase物理和逻辑存储结构 user表包含两个列族info activity,为此表预分区[1,3) [3,正无穷),此时user表在HBase里的物理和逻辑存储结构如上图。一个user表的数据存储在两个region上,这...
2014-07-02 15:53:33 192
Hadoop学习四十:Phoenix二级索引浅谈
一.概述Hadoop2.2.0 Hbase0.96.1.1 Phoenix-2.2.0-SNAPSHOTPhoenix官网上提供了三个与Hbase兼容的版本,分别为Phoenix2.X-Hbase0.94.X ,Phoenix3.X-Hbase0.94.X,Phoenix4.X-Hbase0.98.1+,没有与Hbase0.96兼容的版本。幸运的是git上有Phoenix Hb...
2014-06-30 09:34:54 412
Hadoop学习三十九:HBase与MapReduce集成
一.概述 HBase与MapReduce集成时,有以下三种情形HBase作为数据流向。HBase作为数据源。HBase作为数据源和数据流向。 阅读本文前,最好先了解http://zy19982004.iteye.com/blog/2068112 二.HBase作为数据流向 HBase作为数据流向时,如从Hdfs里向HBase...
2014-05-19 14:09:39 219
Hadoop学习三十八:MapReduce job.setNumReduceTasks(0)思考
一.概述 在http://zy19982004.iteye.com/blog/2037549的最后曾经提到过,这里再详细探讨一下。 二.job.setNumReduceTasks(0)唯一影响的是map结果的输出方式 当job.setNumReduceTasks(0)时,即没有reduce阶段,此时唯一影响的就是map结果的输出方式如果有reduce...
2014-05-19 11:01:16 427
Hadoop学习三十七:HBase比较负数
一.HBase存储 HBase存储的都是字节码。我们也知道,计算机系统里,数值一律采用补码来表示和存储(http://zy19982004.iteye.com/blog/1706138)。 那么Integer(-1)在HBase里将被存储为\xFF\xFF\xFF\xFF,Integer(1)在Hbase里将被存储为\x00\x00\x00\x01。 再来看...
2014-05-16 11:10:42 229
Hadoop学习三十六:使用BulkLoad时Bulk load operation did not find any files
一.错误 使用BulkLoad向Hbase导入数据时出现了错误2014-04-04 15:39:08,521 WARN org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles - Bulk load operation did not find any files to load in directory hdfs://...
2014-04-05 20:24:14 991
Hadoop学习三十五:Hadoop-MapReduce MapTask and ReduceTask
一.上文 http://zy19982004.iteye.com/blog/2037549从整体上描述了Job执行的过程,大致分为三步准备数据map reduce清理 其中最主要的当然是map reduce的过程,map由MapTask主导完成,reduce由ReduceTask主导完成。先看看官方给的一个图 二.MapTask ...
2014-03-28 11:27:18 126
Hadoop学习三十四:Hadoop-MapReduce Job本地运行流程
一. 版本环境 以前工作的过程中,陆陆续续看过一些Hadoop1.0 MapReduce的源码,但没有形成体系。现在再次来看,顺便记录。此次学习版本的是Hadoop2.2.0 MapReduce。环境为直接在Win7下Local模式调试。MapReduce。 二. Job提交流程 从Job waitForCompletion开始1 Job submit1...
2014-03-27 15:40:38 304
Hadoop学习三十三:Hadoop-HBase Bulk Load使用翻译
一. 地址 http://hbase.apache.org/book.html#arch.bulk.load 写道9.8. Bulk Loading 9.8.1. Overview HBase includes several methods of loading data into tables. The most straightforward method...
2014-03-18 14:20:39 160
Hadoop学习三十二:Win7下无法提交MapReduce Job到集群环境
一. 对hadoop eclipse plugin认识不足 http://zy19982004.iteye.com/blog/2024467曾经说到我最hadoop eclipse plugin作用的认识。但事实上我犯了一个错误,Win7 Eclipse里的MyWordCount程序一直在本地运行,没有提交到集群环境上运行(查看192.168.1.200:50030)没有这个Jo...
2014-03-14 15:27:40 314
Hadoop学习三十一:Win7下HBase与MapReduce集成时XXX.jar is not a valid DFS filename
一. 代码 Hbase In Action(HBase实战)和Hbase:The Definitive Guide(HBase权威指南)两本书中,有很多入门级的代码,可以选择自己感兴趣的check out。地址分别为https://github.com/HBaseinaction https://github.com/larsgeorge/hbase-book。在Win7下运...
2014-03-12 09:48:04 1348
Hadoop学习三十:Win7 Eclipse调试Centos Hadoop2.2-Mapreduce
一. 自己搭建开发环境 今天自己搭建了一套Centos5.3 + Hadoop2.2 + Hbase0.96.1.1的开发环境,Win7 Eclipse调试MapReduce成功。可能是版本比较高的原因,出了问题,网上找不到完整解决方案,只能靠自己。 二. Hadoop安装 这个就不啰嗦了,网上大把文章。我下载的是hadoop-2.2.0.tar.gz。...
2014-03-01 20:01:58 147
Java日志学习六:各种日志系统间的桥接
一.四种日志系统JCL http://zy19982004.iteye.com/blog/1991328Apache Log4j http://zy19982004.iteye.com/blog/1992939Slf4j http://zy19982004.iteye.com/blog/1993059JDK Logger http://zy19982004.iteye....
2013-12-21 22:33:28 305 1
原创 Java日志学习五:JDK Logger源码
一.JDK Logger JDK从1.4版本开始有了自己的日志系统,相比log4j slf4j jcl,JDK Logger显得简单明了,它没有像其它几个框架,都想去做门面,它只是简单的做了自己的事情。下一篇文章将详细比较这四个日志以及相互之间的桥接。在此不啰嗦。 二.JDK Logger核心类Logger:日志类。LogManager:日志管理类,读取配置文件,...
2013-12-21 01:27:01 220
原创 Java日志学习四:Simple Logging Facade for Java (SLF4J)源码浅析
一.SLF4J http://www.slf4j.org/ 二.SLF4J核心类 Logger:日志类。LoggerFactory:负责查找系统里日志的实现,负责创建日志。类似JCL的LogFactory,类似log4j的LogManager。ILoggerFactory:该接口只有一个getLogger(name)方法。类似log4j的LoggerRepos...
2013-12-20 22:15:31 242
原创 Java日志学习三:Apache Log4j源码浅析
一.Apache Log4jhttp://logging.apache.org/log4j/2.x/本文只讲初始化Logger的过程。二.Apache Log4j里的几个核心类Logger:日志类。getLogger()交给LogManager去实现。Level:八个级别。 #OFF,FATAL,ERROR,WARN,INFO,DEBUG,TRACE,ALL。Lo...
2013-12-20 20:22:01 209
Java日志学习二:Apache Commons Logging (JCL)源码
一.Apache Commons Logging http://zy19982004.iteye.com/blog/1867448里提到了commons-logging的工作方式,本文将看下代码怎么实现这一工作方式。 二.Apache Commons Logging类结构 就这么简单,一个接口包,一个实现包。 三.类说明Log:A simple...
2013-12-18 15:02:52 172
Java ClassLoader学习四:ContextClassLoader
一.ContextClassLoaderContextClassLoader只是一个逻辑上的概念,在Java Api里并没有一个叫ContextClassLoader的类。JVM默认类加载体系已经能满足大部分情况的使用了,那为什么还需要ContextClassLoader呢。但有时候这样的加载体系并不能满足要求,比喻需要动态加载应用程序开发人员提供的资源时。考虑JDBC的实现,J...
2013-12-01 15:23:09 200
Java ClassLoader学习三:自定义ClassLoader
一.自定义ClassLoader关键是继承ClassLoader还是继承URLClassLoader。如果你的class文件存放于一个JAR文件里,同时你需要一些自己的load策略,可以考虑继承URLClassLoader。如果你的class文件位于其它地方,继承ClassLoader。比喻位于普通文件夹里,可以自定义一个JyzClassLoader;如果位于网络上,可以定义一...
2013-11-30 17:26:07 107
Java ClassLoader学习二:ClassLader源码
一.ClassLoader源码继承图 SecureClassLoader:这个类我没做深入研究,你把它当成一个增强版的ClassLoader,增强了从何地load class,增强了能不能load这些代码权限。 二.源码 public abstract class ClassLoader { // 父ClassLoader private Cla...
2013-11-30 17:05:33 128
Java ClassLoader学习一:Launcher源码
一.Launcher 我们习以为常的ClassLoader.getSystemClassLoader()来获得系统类加载器,有没有考虑过到底是怎么得到的呢?阅读完Launcher的源码,就清楚了。 二.源码public class Launcher { private static URLStreamHandlerFactory factory = new F...
2013-11-30 16:39:42 408
原创 Java注解学习四:@Inherited的使用
一.@Inherited @Inherited:允许子类继承父类的注解。 二.代码@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Inheritedpublic @interface DBTable { public String name() default ""; }...
2013-11-22 16:53:25 211
Java注解学习三:package-info.java的使用
一.引入 上文http://zy19982004.iteye.com/blog/1979208中,提到了注解类JyzTargetPackage可以定义为@Target(ElementType.PACKAGE),可是在被注解类里我无论怎么加,编译器都报错,于是引入了package-info.java这个文件。 二.创建package-info.java"I found...
2013-11-22 10:53:49 330
Java注解学习二:自定义注解
一.注解术语 http://zy19982004.iteye.com/blog/1979039里把注解里的术语罗列了一遍,未做深入解读。本文用一个例子来强化注解术语。 二.代码 package com.jyz.study.jdk.annotation;import java.lang.annotation.Documented;import java...
2013-11-22 10:05:18 100
Java注解学习一:注解术语
一.元注解@Target:表示该注解可以用于什么地方。可选的ElementType参数包括:TYPE:类,接口(包括注解类型),enum的声明。FIELD:域的声明(包括enum实例)。METHOD:方法的声明。PARAMETER:参数的声明。CONSTRUCTOR:构造器的声明。LOCAL_VARIABLE:局部变量的声明。ANNOTATION_TYPE:...
2013-11-21 20:23:26 196
Java泛型学习四:泛型其它知识点
一.开篇 在学习泛型的过程中,有许多零零碎碎的知识点,它们并不好用单独一篇文章来说,遂罗列如此。 二.泛型异常catch语句不能捕获泛型类型的异常,因为在编译器和运行期间都必须知道异常的确切类型。泛型类不能直接或间接继承Throwable,这并不是说泛型形式类型参数不能继承Throwable。package com.jyz.study.jdk.generic;...
2013-11-21 09:33:12 115
Java泛型学习三:泛型的表现形态
一.类型参数形态 按照泛型类型参数的表现形态,先列出所有可能出现的,再来归纳,以List为例:Holder:原生态类型Holder<T>:最简单的泛型形态。Holder<T extends Number>:有限制形式类型参数。Holder<T super Number>:有限制形式类型参数。可惜的是没有这种语法。Holder...
2013-11-20 16:36:13 117
原创 Java泛型学习二:擦除
一.开篇 上文http://zy19982004.iteye.com/blog/1976993中提到“NewCollections.map() return Map<Object, Object>, but not Map<Integer, String>”,为什么呢?对擦除的理解将是对泛型理解的关键。 二.擦除的概念 《Thinkin...
2013-11-19 20:38:16 111
Java泛型学习一:泛型术语
一.开篇 泛型是我到目前为止觉得很难啃的硬骨头之一。我一直认为学习这些东西,所花费的时间和要达到的效果短期内是不成正比的,但从长远来看,要写出好的代码,这些基础必须掌握。这也是为什么我准备花一个月的时间,再次学习Java基础的原因。 二.泛型术语泛型(Generic):适应于许多许多的类型。泛型类和泛型接口统称为泛型。比喻List<E>。泛型类:一个类...
2013-11-19 16:34:09 119
Java异常学习四:Thinking In Java and Effective Java关于异常的一些描述
一.Thinking In Java发现错误的最佳时期是编译期间,然而编译期间并不能找出所有数据,余下的问题必须在运行期间解决。switch case语句里如果throw Exception的话是不需要break的。异常处理理论上有两种基本模型。终止模型,java和c++支持的模型,将假设错误非常关键,一旦异常被抛出,就表明错误已经无法挽回,也不能继续执行;恢复模型,遇到错误不能...
2013-11-17 00:11:39 113
Java异常学习三:异常链
一.异常链常常会再捕获一个异常后跑出另外一个异常,并且希望把异常原始信息保存下来,这被称为异常链。在JDK1.4以前,程序员必须自己编写代码来保存原始异常信息,现在所有Throwable的子类子构造器中都可以接受一个cause对象作为参数,这个cause就异常原由,代表着原始异常,即使在当前位置创建并抛出行的异常,也可以通过这个cause追踪到异常最初发生的位置。只有Error...
2013-11-16 19:20:44 295
原创 Java异常学习二:异常栈轨迹
一.打印栈轨迹的方法主动调用Throwable对象的printStackTrace()=printStackTrace(System.err),printStackTrace(PrintStream),printStackTrace(PrintWriter)中的其中一个。如果一个Exception没有被处理,直接在main方法后面throws,程序退出前将调用异常的printStac...
2013-11-16 16:27:41 227
Java异常学习一:Throwable源码
一.java异常类结构常用的CheckedException常用的RuntimeException 二.Throwable类源码 StackTraceElement。一个final类,代表栈轨迹中的元素,一个异常可能有多个元素。public final class StackTraceElement implements java.io.Serializabl...
2013-11-14 16:37:07 235
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人