码迷,mamicode.com
首页 > 编程语言 > 详细

spring hadoop 访问hbase入门

时间:2015-05-18 20:41:00      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:

1、  环境准备:

Maven

Eclipse

Java

Spring 版本 3..2.9

2、 Maven  pom.xml配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- Spring hadoop  -->
                   <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>0.96.1.1-hadoop2</version>
         </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-jpa</artifactId>
            <version>1.6.0.RELEASE</version>
        </dependency>
         <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-hadoop</artifactId>
            <version>2.0.2.RELEASE</version>
         </dependency>

3、 Spring和hadoop、hbase相关配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  <?xml version="1.0" encoding="UTF-8"?>
    <span style="color: #ff0000;">xmlns:hdp="http://www.springframework.org/schema/hadoop"</span>
    xsi:schemaLocation=" 

  其中标红的是spring  hadoop xml命名空间配置。

Hadoop hbase相关配置文件如下:

   <!--  默认properties-->

    <hdp:configuration>fs.default.name=hdfs://192.98.8.224:8010</hdp:configuration>

    <hdp:hbase-configuration delete-connection="${delete-connection}" zk-quorum="${hbase.zookeeper.quorum}" zk-          port="${hbase.zookeeper.property.clientPort}"/>

对应的properties如下:

hbase.zookeeper.property.clientPort=2181

hbase.zookeeper.quorum=192.98.8.224

hbase.master=192.98.8.224:600000

fs.default.name=hdfs://192.98.8.224:8010

delete-connection=true

#hive jdbc url

hive.url=jdbc:hive://192.98.8.224:10000/default

spring hbasetemplate配置如下:

    <bean id="hbaseTemplate" class="org.springframework.data.hadoop.hbase.HbaseTemplate"> <property name="configuration" ref="hbaseConfiguration" />

</bean>

Hbasetemplate使用代码示例:

1
2
3
4
5
6
7
8
9
10
11
Tile t = hbaseTemplate.get("GW_TILES""0_1_1"new RowMapper<Tile>() {
 
            @Override
            public Tile mapRow(Result result, int rowNum) throws Exception {
                // TODO Auto-generated method stub
                 
                Tile t = new Tile();
                t.setData(result.getValue("T".getBytes(), "key".getBytes()));
                return t;
            }
        });

  

Hbasetemplate 常用方法简介:

      hbaseTemplate.get("GW_TILES", "0_1_1", new RowMapper  常用于查询,使用示例如下所示:

1
2
3
4
5
6
7
8
9
10
11
Tile t = hbaseTemplate.get("GW_TILES""0_1_1"new RowMapper<Tile>() {
 
            @Override
            public Tile mapRow(Result result, int rowNum) throws Exception {
                // TODO Auto-generated method stub
                 
                Tile t = new Tile();
                t.setData(result.getValue("T".getBytes(), "key".getBytes()));
                return t;
            }
        });

  hbaseTemplate.execute(dataIdentifier, new TableCallback 常用于更新操作,使用示例如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
return hbaseTemplate.execute(dataIdentifier, new TableCallback<Boolean>() {
 
            @Override
            public Boolean doInTable(HTableInterface table) throws Throwable {
                // TODO Auto-generated method stub
                boolean flag = false;
                try{
                Delete delete = new Delete(key.getBytes());
                table.delete(delete);
                flag = true;
                }catch(Exception e){
                    e.printStackTrace();
                }
                return flag;
            }
        });

  

备注:spring hbasetemplate针对hbase接口做了强大的封装,普通功能可以使用它强大的接口,同时复杂的功能,还可以使用hbase原生的接口,如:HTableInterface、Result等。其类方法如下图:

技术分享

同时hbasetemplate封装了hbase连接池等,它的创建和释放通过配置来自动管理。

spring hadoop 访问hbase入门

标签:

原文地址:http://www.cnblogs.com/duanxz/p/4512864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!