序言

最近公司一个汽车项目想用hbase做存储,然后就有了这篇文字,来,来,来, 带你一起征服hbase,并推荐一本书《hbase权威指南》 这是一本极好的hbase入门书籍,我花了一个晚上看完觉得这书蛮好的!

  本文分上下两篇,上篇是hbase+hadoop+hdfs+zookeeper集群环境的安装,下篇讲解hbase如何集成spring来使用。hbase是个什么鬼?不知道不要紧,本文是我三天的成果,拿去,不谢!

                                  

Hbase+hadoop+hdfs+zookeeper集群环境的安装

hadoop+hdfs安装: http://www.cnblogs.com/tony-tang/articles/6472935.html

zookeeper集群安装:http://www.cnblogs.com/tony-tang/articles/6473373.html

Hbase安装:http://www.cnblogs.com/tony-tang/articles/6473360.html

HBase shell 命令创建表及添加数据操作:http://www.cnblogs.com/tony-tang/p/6473393.html

至此环境安装已经结束,下篇重点介绍Hbase是如何集成spring的,需要的maven jar包依赖,以及HbaseTemplate的扩展!

Hbase集成spring

前言

  在集成Hbase之前问过同城一架构师朋友他们公司怎么用Hbase的,得到的答案是"直接用",呵呵,我理解这个直接用类似数据库连接一样直接用jdbc,没有集成框架,而笔者以前玩过redis、mongodb与spring的集成,想着应该spring也可以集成Hbase,然后就是找资源,maven私服、github,spring官网上各种搜索,果然我再次感受到了spring的强大,还真有,废话不多说了,上手吧!

1.maven pom配置

  这只是Hbase需要的jar包,当然你项目中还需要spring框架的依赖包,笔者这里用的是2.2.0.RELEASE的版本,因为公司spring是4.1.6的版本。

<properties>
<hbase.version>0.98.8-hadoop2</hbase.version>
<spring.hadoop.version>2.2.0.RELEASE</spring.hadoop.version>
<hadoop.version>2.6.0</hadoop.version>
</properties>
     <dependencies>
<!-- spring-hadoop -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-hadoop</artifactId>
<version>${spring.hadoop.version}</version>
</dependency> <dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-hadoop-store</artifactId>
<version>${spring.hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<artifactId>netty</artifactId>
<groupId>io.netty</groupId>
</exclusion>
</exclusions>
</dependency> <dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.1.0</version>
<scope>runtime</scope>
</dependency> <!-- hadoop-->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
</exclusion>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
</exclusion>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1</artifactId>
</exclusion>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1</artifactId>
</exclusion>
<exclusion>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api-2.1</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
</exclusion>
<exclusion>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
</exclusion>
<exclusion>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler</artifactId>
</exclusion>
<exclusion>
<groupId>tomcat</groupId>
<artifactId>jasper-runtime</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
<version>${hadoop.version}</version>
<scope>compile</scope>
</dependency> <dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>${hbase.version}</version>
<scope>compile</scope>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>${hbase.version}</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-protocol</artifactId>
<version>${hbase.version}</version>
</dependency>
</dependencies>

2.application-hbase.xml文件配置

    我们需要的是hbaseTemplate对象,而hbaseTemplate需要配置hbaseConfiguration 所以需要配置 <hdp:hbase-configuration>,hbase-configuration默认id取名为hbaseConfiguration,所以好奇的你一定在想hbaseConfiguration从哪里冒出来的。

而hdp:hbase-configuration 又需要配置 hdp:configuration所以咋一看hdp:configuration这是个什么鬼,没什么用,“Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制”,摘自Hbase百科,其实Hbase也可以本地存储,它的底层存储支持是可插拔的不一定非要是HDFS,如果选择其他的底层存储支持可能会出现你想不到的兼容问题!


3.base_info.properties配置

#----------------------hbase config start-------------------------------
hd.fs=hdfs://namenode1:9000/hbase
zk.quorum=namenode1,datanode1,datanode2
zk.port=2181
fs.defaultFS=hdfs://namenode1:9000/
#----------------------hbase config end------------------------------- 4.接口定义 IHbaseService接口:

5.接口实现

 实现类封装了对Hbase的CRUD操作

HbaseServic实现类:

ReqEntity参数实体

ReqEntity实体类

6.Windows环境调试

   1.在windows环境调试的时候需要 hadoop-2.6.0环境,

  设置环境变量:

  HADOOP_HOME:D:\Program Files\hadoop-2.6.0

  Path中添加 %HADOOP_HOME%\bin

  备注:hadoop原生的下载包不包含winutils.exe

  所以需要下载 hadoop-common-2.2.0-bin-master.zip包:http://pan.baidu.com/s/1qYdKnJQ

  并将hadoop-common-2.2.0-bin-master\bin目录下的文件替换到 %HADOOP_HOME%\bin目录下。

 2.需要在C:\Windows\System32\drivers\etc\hosts 文件配置域名(ip为zk集群配置的地址,否则会连不上zk):

  192.168.6.10 namenode1

  192.168.6.11 datanode01

  192.168.6.12 datanode02

7.结束语

  Spring集成Hbase就简单介绍到这里,其中笔者遇到非常多问题,都是一步一步走过来了,如果你也正思考如何使用Hbase,那么本文对你非常有用。如果您对本文有疑问或者意见请给我评论。如果你使用过程中遇到问题可以添加我QQ:515173248 也可以给我QQ邮件。

hbase+hadoop+hdfs集群搭建 集成spring的更多相关文章

  1. HBase HA分布式集群搭建

    HBase HA分布式集群搭建部署———集群架构 搭建之前建议先学习好HBase基本构架原理:https://www.cnblogs.com/lyywj170403/p/9203012.html 集群 ...

  2. HBase完全分布式集群搭建

    HBase完全分布式集群搭建 hbase和hadoop一样也分为单机版,伪分布式版和完全分布式集群版,此文介绍如何搭建完全分布式集群环境搭建.hbase依赖于hadoop环境,搭建habase之前首先 ...

  3. Hadoop分布式集群搭建

    layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...

  4. hadoop+spark集群搭建入门

    忽略元数据末尾 回到原数据开始处 Hadoop+spark集群搭建 说明: 本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个 ...

  5. hadoop ha集群搭建

    集群配置: jdk1.8.0_161 hadoop-2.6.1 zookeeper-3.4.8 linux系统环境:Centos6.5 3台主机:master.slave01.slave02 Hado ...

  6. hbase完整分布式集群搭建

    简介: hadoop的单机,伪分布式,分布式安装 hadoop2.8 集群 1 (伪分布式搭建 hadoop2.8 ha 集群搭建 hbase完整分布式集群搭建 hadoop完整集群遇到问题汇总 Hb ...

  7. 大数据-HDFS 集群搭建的配置文件

    1.HDFS简单版集群搭建相关配置文件 1.core-site.xml文件 <property> <name>fs.defaultFS</name> <val ...

  8. 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  9. Zookeeper,Hbase 伪分布,集群搭建

    工作中一般使用的都是zookeeper和Hbase的分布式集群. more /etc/profile cd /usr/local zookeeper-3.4.5.tar.gz zookeeper在安装 ...

随机推荐

  1. Better Linux Disk Caching & Performance with vm.dirty_ratio & vm.dirty_background_ratio

    In previous posts on vm.swappiness and using RAM disks we talked about how the memory on a Linux gue ...

  2. 如何给apk文件签名

    1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本 ...

  3. javascript功能封装

    实现方式其实很简单,我在代码打上注释,大家就懂了!    var _date=[],dateData=["1月","2月","3月",&qu ...

  4. linux内核的配置

    以2.6.35.7版本的内核为例 总结:.config决定了Make时的条件编译与连接..config文件由两次配置第一次make XX_defconfig 第二次menuconfig. 1.分析源码 ...

  5. [ASP.NET]从ASP.NET Postback机制,到POST/GET方法

    写这篇博客的起源来自于自己最近在学习ASP.NET时对于 PostBack机制的困惑.因为自己在解决困惑地同时,会不断产生新的疑问,因此博客最后深入到了http 包的格式和Internet所使用的TC ...

  6. Ajax请求回调函数没有被调用

    $.ajax({        type:"post",        url:"http://172.16.41.91:8080/FcsServletSSM/users ...

  7. MyBatis框架的使用及源码分析(三) 配置篇 Configuration

    从上文<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 我们知道XMLConf ...

  8. PHP扩展--Suhosin保护PHP应用系统

    什么是Suhosin? Suhosin是一个PHP程序的保护系统.它的设计初衷是为了保护服务器和用户抵御PHP程序和PHP核心中,已知或者未知的缺陷. Suhosin有两个独立的部分,使用时可以分开使 ...

  9. 【Atcoder】ARC084 Small Multiple

    [题意]求一个k的倍数使其数位和最小,输出数位和,k<=10^5. [算法]最短路 [题解]考虑极端情况数字是可能爆long long的(例如k*num=100...000),所以确定基本方向是 ...

  10. 【Luogu】P3930 SAC E#1 - 一道大水题 Knight

    [题目]洛谷10月月赛R1 提高组 [题意]给定n*n棋盘和<=16个棋子,给几个棋子种类和攻击范围,现我方只有一马,求能否吃王. [算法]状压+BFS [题解]16种棋子中,马不能吃马,直接处 ...