文档详情

hadoop开发者第三期-大数据文档资料.docx

发布:2025-02-24约3.48万字共90页下载文档
文本预览下载声明

Hadoop开发者第三期2010年6月20日发布

欢迎投稿

出品

Hadoop技术论坛

总编辑

易剑(一剑)副总编辑

Barry(beyi)代志远(国宝)

本期执行主编代志远(国宝)

编辑

皮冰峰(若冰)易剑(一剑)Barry(beyi)贺湘辉(小米)Barry(beyi)代志远(国宝)柏传杰(飞鸿雪泥)何忠育(spork)秘中凯陈炬

排版/美工/封面设计代志远(国宝)

网址

投稿信箱

hadoopor@

刊首语

新一期的Hadoop开发者与大家见面了。不知不觉

Hadoop开发者已经与大家携手走过半年多了,感谢各位长久以来多Hadoop开发者的支持与鼓励。

Hadoop是大家目前最热衷的技术话题之一,继09年评出国际十大影响力的热门技术榜首的MapReduce编程,基于MapReduce实现的Hadoop开源框架逐渐在被大家所接纳和使用,成为了目前市场中最热门的技术之一。

应运而生的Hadoop开发者致力于提供给大家最好的Hadoop咨询,让大家更方便的学习Hadoop的应用,但是由于人力有限,在每期中所能提供的文章质量难以达到最佳。需要让Hadoop开发者办的更好,就需要大家的努力和共同的提高,集思广益,需要Hadoop爱好者共同的参与。

希望大家多多投稿,多提意见。

Hadoop开发者编辑组本期执行主编:国宝2010-6-20

目录

1Hadoop中的数据库访问 5

2MapReduce中多文件输出的使用 13

3Zookeeper使用与分析 22

4浅析一种分类数据模型 30

5Sector框架分析 34

6RunonHadoop 49

Hadoop中的数据库访问

作者(飞鸿雪泥)E-mail:jaguar13@

Hadoop主要用来对非结构化或半结构化(HBase)数据进行存储和分析,而结构化的数据则一般使用数据库来进行存储和访问。本文的主要内容则是讲述如何将Hadoop与现有的数据库结合起来,在

Hadoop应用程序中访问数据库中的文件。

一.DBInputFormat

DBInputFormat是Hadoop从0.19.0开始支持的一种输入格式,包含在包org.apache.hadoop.mapred.lib.db中,主要用来与现有的数据库系统进行交互,包括MySQL、PostgreSQL、Oracle等几个数据库系统。

DBInputFormat在Hadoop应用程序中通过数据库供应商提供的JDBC接口来与数据库进行交互,并且可以使用标准的SQL来读取数据库中的记录。在使用DBInputFormat之前,必须将要使用的JDBC驱动拷贝到分布式系统各个节点的$HADOOP_HOME/lib/目录下。

在DBInputFormat类中包含以下三个内置类:

1.protectedclassDBRecordReaderimplements

RecordReaderLongWritable,T:用来从一张数据库表中读取一条条元组记录。

2.publicstaticclassNullDBWritableimplementsDBWritable,Writable:主要用来实现DBWritable接口。

3.protectedstaticclassDBInputSplitimplementsInputSplit:主要用来描述输入元组集合的范围,包括start和end两个属性,start用来表示第一条记录的索引号,end表示最后一条记录的索引号。

其中DBWritable接口与Writable接口比较类似,也包含write和readFields两个函数,只是函数的参数有所不同。DBWritable中的两个函数分别为:

publicvoidwrite(PreparedStatementstatement)throws

SQLException;

publicvoidreadFields(ResultSetresultSet)throwsSQLException;

这两个函数分别用来给java.sql.PreparedStatement设置参数,以及从java.sql.ResultSet中读取一条记录,熟悉JavaJDBC用法的应该对这两个类的用法比较了解。

二.使用DBInputFormat读取数据库表

显示全部
相似文档