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在安装 ...
 
随机推荐
- Zabbix Server端配置文件
			
Zabbix Server端配置文件说明 # This is a configuration file for Zabbix Server process # To get more informat ...
 - MS SQL 启用标识插入
			
解决MSSQL字段为标识不能插入办法http://www.veryhuo.com 2009-09-21 Liehuo.Net 投递稿件 我有话说当 IDENTITY_INSERT 设置为 OFF 时, ...
 - 2015/9/18 Python基础(14):函数式编程
			
这篇写了忘发.现在补上. Python不是也不大可能成为一种函数式的编程语言,但是它支持许多有价值的函数式编程语言构建.也有些表现的像函数式编程机制但是从传统上也不能认为是函数式编程语言的构建.Pyt ...
 - UIPikerView的属性---iOS-Apple苹果官方文档翻译
			
本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址 //转载请注明出处--本文永久链接:http://www.cnblogs.com/C ...
 - [bzoj1002]轮状病毒-矩阵树定理
			
Brief Description 求外圈有\(n\)个点的, 形态如图所示的无向图的生成树个数. Algorithm Design \[f(n) = (3*f(n-1)-f(n-2)+2)\] Co ...
 - 【HNOI】五彩斑斓 模拟
			
[题目描述] 给定一个n*m的矩阵,矩阵的某些位置有一个颜色(可以没有颜色,即为0),现在你可以将矩阵的某一行或者某一列染成同一种颜色,问最少用多少步能达到目标矩阵的染色方案,输出最少步数和方案. [ ...
 - 通过实例来学习XML DTD
			
使用DTD的原因: 注意:由于它自身的一些缺点,DTD终将被淘汰,但是它还是要学习的.学习完DTD后,后面继续学习XML Schema. 1,通过 DTD,您的每一个 XML 文件均可携带一个有关其自 ...
 - 2017-2018-1 20179205《Linux内核原理与设计》第七周作业
			
<Linux内核原理与设计>第七周作业 视频学习及操作分析 创建一个新进程在内核中的执行过程 fork.vfork和clone三个系统调用都可以创建一个新进程,而且都是通过调用do_for ...
 - SSH 登录失败:Host key verification failed 的处理方法
			
原因就是你之前已经登录过这个服务器了然后改系统啥的了.导致目标主机 key 值不正确.直接把本机的key文件删除即可 sudo rm /home/yourname/.ssh/known_hosts
 - 【EverydaySport】健身笔记——背部训练
			
背部训练大致可以分为两种. 1 下拉式动作 躯干纵向上下位移的动作 典型代表 这样的下拉类动作 针对的是背阔肌 也就是两边像翅膀一样的部分 2 垂直于躯干的方向作用 向内拉 主要针对的是,背部的中部 ...
 
			
		
