业务开发测试HBase之旅四:HBase MapReduce实例分析

引言 跟Hadoop的无缝集成使得使用MapReduce对HBase的数据进行分布式计算非常方便,本文将以前面的blog示例,介绍HBase下MapReduce开发要点。很好理解本文前提是你对Hadoop MapReduce有一定的了解,如果你是初次接触Hadoop MapReduce编程,可以参考http://taobaotest.ruoguschool.com/blogs/1679 这篇文章来建立基本概念。 HBase MapReduce核心类介绍 首先一起来回顾下MapReduce的基本编程模型, 可以看到最基本的是通过Mapper和Reducer来处理KV对,Mapper的输出经Shuffle及Sort后变为Reducer的输入。除了Mapper和Reducer外,另外两个重... 详情

Hadoop学习笔记之五:使用Eclipse插件

引言 在开发调试过程中,需要将程序打包,运行任务后通过命令或web界面查看运行输出及job运行情况,这个比较繁琐,下面介绍的eclipse插件可以简化这个过程,方便调试。 插件安装 Hadoop的eclipse plugin跟hadoop发行版一起分发,到hadoop安装目录\ contrib\eclipse-plugin下可以找到该插件。在试用过程中发现不支持eclipse 3.5,因此要在eclipse3.5及以上版本运行,需要做个修改。修改方法如下: 编辑:src\contrib\eclipse-plugin\src\java\org\apache\hadoop\eclipse\launch\ HadoopApplicationLaunchShortcut.java... 详情

Hadoop学习笔记之四:运行MapReduce作业做集成测试

引言 通过本系列的前篇文章用MRUnit做单元测试介绍可以很容易对MapReduce进行单元测试,这很必要,可以较早的发现一些代码逻辑的问题。只有单元测试是不够的,我们需要对MapReduce任务进行集成测试,要进行集成测试,得先懂得如何将MapReduce 作业在hadoop集群中运行起来。 准备工作 以windows环境为例:  安装jdk,设置环境变量JAVA_HOME为jdk安装目录  安装Cygwin,安装时注意选择安装软件包openssh - Net 类,安装完成将cygwin/bin加入环境变量path。  确认ssh。打开cygwin命令行,分别执行以下命令   安装sshd:$ ssh-host-config   启动sshd服务... 详情

Hadoop学习笔记之三:用MRUnit做单元测试

引言 借年底盛宴品鉴之风,继续抒我Hadoop之情,本篇文章介绍如何对Hadoop的MapReduce进行单元测试。MapReduce的开发周期差不多是这样:编写mapper和reducer、编译、打包、提交作业和结果检索等,这个过程比较繁琐,一旦提交到分布式环境出了问题要定位调试,重复这样的过程实在无趣,因此先对MapReduce做单元测试,消除明显的代码bug尤为必要。 MRUnit简介 MRUnit是一款由Couldera公司开发的专门针对Hadoop中编写MapReduce单元测试的框架。可以用MapDriver单独测试Map,用ReduceDriver单独测试Reduce,用MapReduceDriver测试MapReduce作业。 实战 我们将利用M... 详情

hadoop学习笔记之二:MapReduce基本编程

引言 在本系列的上篇文章中介绍了Hadoop的基本概念和架构,本文将通过一个实例演示MapReduce基本编程。在继续进行前希望能重温下前面的内容,至少理解这张图是怎么回事。 实践 创建maven工程并加入hadoop依赖 我们选用maven来管理工程,用自己喜爱的m2eclipse插件在eclipse里创建或在命令行里创建一个工程。在pom.xml里加入hadoop依赖。 org.apache.hadoop hadoop-core 0.20.2 cloudera https://repository.cloudera.com/content/groups/public 运行... 详情

hadoop学习笔记之一:初识hadoop

引言 最近了解到淘宝使用hadoop的项目多了起来,hadoop对于许多测试人员来说或许是个新鲜玩儿,因此,把自己之前整理的学习笔记整理发上来,希望通过此系列文章快速了解Hadoop的基本概念和架构原理,从而助于hadoop相关项目的测试理解和沟通。 Hadoop简介 Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,借助于 Hadoop, 程序员可以轻松地编写分布式并行程序,将其运行于计算机集群上,完成海量数据的计算。 如果你对Hadoop不熟悉,下面这些名词你或许耳熟能详,Google File System、Google Map/Reduce模型、lucene 、Nutch、阿里云梯、云计算等,他们都与Hadoop有着或深或浅的关系,原... 详情