hbase+hadoop+hdfs集群搭建 集成spring
序言
最近公司一个汽车项目想用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的更多相关文章
- HBase HA分布式集群搭建
HBase HA分布式集群搭建部署———集群架构 搭建之前建议先学习好HBase基本构架原理:https://www.cnblogs.com/lyywj170403/p/9203012.html 集群 ...
- HBase完全分布式集群搭建
HBase完全分布式集群搭建 hbase和hadoop一样也分为单机版,伪分布式版和完全分布式集群版,此文介绍如何搭建完全分布式集群环境搭建.hbase依赖于hadoop环境,搭建habase之前首先 ...
- Hadoop分布式集群搭建
layout: "post" title: "Hadoop分布式集群搭建" date: "2017-08-17 10:23" catalog ...
- hadoop+spark集群搭建入门
忽略元数据末尾 回到原数据开始处 Hadoop+spark集群搭建 说明: 本文档主要讲述hadoop+spark的集群搭建,linux环境是centos,本文档集群搭建使用两个节点作为集群环境:一个 ...
- hadoop ha集群搭建
集群配置: jdk1.8.0_161 hadoop-2.6.1 zookeeper-3.4.8 linux系统环境:Centos6.5 3台主机:master.slave01.slave02 Hado ...
- hbase完整分布式集群搭建
简介: hadoop的单机,伪分布式,分布式安装 hadoop2.8 集群 1 (伪分布式搭建 hadoop2.8 ha 集群搭建 hbase完整分布式集群搭建 hadoop完整集群遇到问题汇总 Hb ...
- 大数据-HDFS 集群搭建的配置文件
1.HDFS简单版集群搭建相关配置文件 1.core-site.xml文件 <property> <name>fs.defaultFS</name> <val ...
- 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
- Zookeeper,Hbase 伪分布,集群搭建
工作中一般使用的都是zookeeper和Hbase的分布式集群. more /etc/profile cd /usr/local zookeeper-3.4.5.tar.gz zookeeper在安装 ...
随机推荐
- 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 ...
- 如何给apk文件签名
1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本 ...
- javascript功能封装
实现方式其实很简单,我在代码打上注释,大家就懂了! var _date=[],dateData=["1月","2月","3月",&qu ...
- linux内核的配置
以2.6.35.7版本的内核为例 总结:.config决定了Make时的条件编译与连接..config文件由两次配置第一次make XX_defconfig 第二次menuconfig. 1.分析源码 ...
- [ASP.NET]从ASP.NET Postback机制,到POST/GET方法
写这篇博客的起源来自于自己最近在学习ASP.NET时对于 PostBack机制的困惑.因为自己在解决困惑地同时,会不断产生新的疑问,因此博客最后深入到了http 包的格式和Internet所使用的TC ...
- Ajax请求回调函数没有被调用
$.ajax({ type:"post", url:"http://172.16.41.91:8080/FcsServletSSM/users ...
- MyBatis框架的使用及源码分析(三) 配置篇 Configuration
从上文<MyBatis框架中Mapper映射配置的使用及原理解析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder> 我们知道XMLConf ...
- PHP扩展--Suhosin保护PHP应用系统
什么是Suhosin? Suhosin是一个PHP程序的保护系统.它的设计初衷是为了保护服务器和用户抵御PHP程序和PHP核心中,已知或者未知的缺陷. Suhosin有两个独立的部分,使用时可以分开使 ...
- 【Atcoder】ARC084 Small Multiple
[题意]求一个k的倍数使其数位和最小,输出数位和,k<=10^5. [算法]最短路 [题解]考虑极端情况数字是可能爆long long的(例如k*num=100...000),所以确定基本方向是 ...
- 【Luogu】P3930 SAC E#1 - 一道大水题 Knight
[题目]洛谷10月月赛R1 提高组 [题意]给定n*n棋盘和<=16个棋子,给几个棋子种类和攻击范围,现我方只有一马,求能否吃王. [算法]状压+BFS [题解]16种棋子中,马不能吃马,直接处 ...