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在安装 ...
随机推荐
- Leetcode 557. 反转字符串中的单词 III
1.题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. 示例 1: 输入: "Let's take LeetCode contest" ...
- JAVA 枚举单例模式
1.枚举单例模式的实现 public enum Singleton { INSTANCE { @Override protected void read() { System.out.println ...
- 给定一个数字n,不用for循环实现输出数组 [1,2,3,4,...,n]
一.for循环方式实现输出[1, 2, 3, ..., n] var n = 5; function test(n){ var arr=[]; for( var i = 1; i <= n; i ...
- 【asp.net mvc】 扩展 htmlhelper 实现分页
参考文档:http://www.cnblogs.com/caofangsheng/p/5670071.html http://www.cnblogs.com/arte ...
- 【Android】完善Android学习(四:API 3.1)
备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...
- 浏览器报错:unexpected end of input 解决方法
直接上报错代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- Flask从入门到放弃1:路由app.route()
Flask从入门到放弃1: Flask中的路由app.route(): 参考来源:http://python.jobbole.com/80956/ https://www.raspberrypi.or ...
- 彻底找到 Tomcat 启动速度慢的元凶 /dev/random
参考 http://blog.csdn.net/u013939884/article/details/72860358
- 【hdu1255】线段树求矩形面积交
题意大概就是上图这个样子.<=100组测试数据,每组<=1000个矩形. 题解: 这个问题怎么解决..做了上一题矩形面积并应该就会了.. 对于每个节点维护3个值: cnt:该节点所代表的这 ...
- UOJ#204 【APIO2016】Boat
Time Limit: 70 Sec Memory Limit: 256 MBSubmit: 559 Solved: 248 Description 在首尔城中,汉江横贯东西.在汉江的北岸,从西向 ...