Hadoop上配置Hbase数据库
已有环境:
1. Ubuntu:14.04.2
2.jdk: 1.8.0_45
3.hadoop:2.6.0
4.hBase:1.0.0
详细过程:
1.下载最新的Hbase,这里我下载的是hbase-1.0.0版本,然后打开终端,输入: tar zxvf hbase-1.0.0.tar.gz解压,然后将hbase放到合适的路径下(可以是用户目录,也可以是根目录,不太清楚是否必须要与hadoop放在用一个根目录下,本人是放在同一个目录下的)
2.修改2个配置文件(这里是伪分布式,单机版不再叙述)
- hbase-env.sh(在hbase的安装目录下的conf文件夹中)
export JAVA_HOME=/usr/lib/jvm/java
export HBASE_MANAGES_ZK=true
//打开注释,并配置java环境
- hbase-site.xml
//加入如下配置信息:
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:8020/hbase</value>//这里的路径必须与hadoop的core-site.xml中的fs.default.name一致,还有一个需要注意的地方是端口号8020,默认是9000。我的设置9000时没能成功启动hbase,当换成8020时,成功启动
</property> <property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property> <property>
<name>dfs.replication</name>
<value></value>
</property> <property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/server1/Documents/zookeeper</value>//设置让hbase存储zookeeper文件的地方
</property>
3.启动hadoop.
4.启动hbase。进入bin,输入命令:./start-hbase.sh
Jps
HQuorumPeer
HRegionServer
HMaster //出现HMster说明配置成功
SecondaryNameNode
DataNode
NameNode
5.在终端输入 bin/hbase shell进入shell模式。
6。在shell模式下进行建表等操作:
create 'test','cf' //建立一张名为‘test’,含有一个列族‘cf’的表
describe 'test' //列出表的详细信息
put 'test','row1','cf:a','value1' //在表中插入一行数据,
//row1为唯一标识,cf中含一列名为a,它的值为value1
7.关闭hbase和hadoop
8.可能出现的问题及解决方案:
- hbase无法启动的问题。
- 导致hbase无法启动的原因有多种,由于本人太过幸运,种种问题均遇到过O(∩_∩)O~
- 一,启动hbase后,没有HMaster。
- 二,启动hbase后,HMaster闪退。
- 三,建表时产生空指针错误。
- 四,hbase无法启动。
- 解决方案:
- 搜索了网络上各种解决方案,大致有以下几种方法:
- 修改hbase-site.xml,添加各种配置信息;
- 修改etc/hosts,将Ubuntu对应的IP那一项删除;
- 修改etc/profile,配置hbase的环境变量(类似JDK的配置);
- 将hadoop里的core-site.xml和hadoop-core-xxx.jar copy到hbase中的相应目录中(由于我安装的是hadoop-2.6.0版本,搜索了半天都没有找到hadoop-core jar文件,然后Google之,说是2.x以上的版本都没有这些jar文件,非要使用的话只能从官网下载);
- 自己的解决方案:
- 真正的原因是hadoop,hbase与jdk版本不兼容,导致以上各种问题的出现,包括闪退,无法启动等等。最后一个解决方案正是为了解决不兼容的问题。由于我自己起初用的是hadoop-2.6.0,jdk是1.8.x,hbase是0.8.27。本质原因就是hbase版本太低,而jdk版本太高。最简单的方案是删除低版本的hbase,然后安装最新的高版本hbase,问题即可轻易解决。
- 搜索了网络上各种解决方案,大致有以下几种方法:
总结:版本不一致会导致兼容问题,需要配置各种信息,所以以后要先查看课本或者别人的博客是用的那个版本的文件,然后在安装,站在巨人的肩上,才能走得更远!!
Hadoop上配置Hbase数据库的更多相关文章
- 在Hadoop集群上的HBase配置
之前,我们已经在hadoop集群上配置了Hive,今天我们来配置下Hbase. 一.准备工作 1.ZooKeeper下载地址:http://archive.apache.org/dist/zookee ...
- HBase数据库集群配置
0,HBase简介 HBase是Apache Hadoop中的一个子项目,是一个HBase是一个开源的.分布式的.多版本的.面向列的.非关系(NoSQL)的.可伸缩性分布式数据存储模型,Hbase依托 ...
- HBase数据库集群配置【转】
https://www.cnblogs.com/ejiyuan/p/5591613.html HBase简介 HBase是Apache Hadoop中的一个子项目,是一个HBase是一个开源的.分布式 ...
- [转载] 详细讲解Hadoop中的简单数据库HBase
转载自http://www.csdn.net/article/2010-11-28/282614 数据模型 HBase数据库使用了和Bigtable非常相似的数据模型.用户在表格里存储许多数据行.每个 ...
- HBase数据库配置中各配置项的释义及默认值
2018-11-26 16:09 2018-12-20 15:44 摘自HBASE官方网站 http://hbase.apache.org/book.html#_introduction 第7.2 ...
- (转)单机上配置hadoop
哈哈,几天连续收到百度两次电话,均是利好消息,于是乎不知不觉的自己的工作效率也提高了,几天折腾了好久终于在单机上配置好了hadoop,然后也成功的运行了一个用例,耶耶耶耶耶耶. 转自:http://w ...
- mac上eclipse上配置hadoop
在mac上安装了eclipse之后,配置hadoop其实跟在linux上配置差不多,只是mac上得eclipse和界面和linux上得有点不同. 一:安装eclipse eclipse得安装比较简单, ...
- 在MacOs上配置Hadoop和Spark环境
在MacOs上配置hadoop和spark环境 Setting up Hadoop with Spark on MacOs Instructions 准备环境 如果没有brew,先google怎样安装 ...
- 在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例
在Linux(Centos7)系统上对进行Hadoop分布式配置以及运行Hadoop伪分布式实例 ...
随机推荐
- Document .load与Document .ready的区别
页面加载完成有两种事件 1.load是当页面所有资源全部加载完成后(包括DOM文档树,css文件,js文件,图片资源等),执行一个函数 问题:如果图片资源较多,加载时间较长,onload后等待执行的函 ...
- (转)手游应该怎么做 UI 设计?
之前一直做互动设计,在UI上有一些积累. 转战手游后发现,有着标准.互动方式.用户行为等等与常规大屏UI设计的不同,但是在设计流程,思考方式上是一样的. 以目前项目中一个界面为例(未完成版本)来说一下 ...
- 电子商城实录------定义init初始化的方法
路由方法的设置 //路由方法 private static function dispatch(){ //获取控制器名称(类比:英文单词的后缀) $controller_name=CONTROLLER ...
- 微信程序跳转到页面底部 scroll-view
wx.createSelectorQuery().select('#j_page').boundingClientRect(function (rect) { wx.pageScrollTo({ sc ...
- php开发aes加密总结
<?php class Aes { /** * aes 加密 解密类库 * @by singwa * Class Aes *说明:本类只适用于加密字符串 * */ private $key = ...
- Leecode刷题之旅-C语言/python-28.实现strstr()
/* * @lc app=leetcode.cn id=28 lang=c * * [28] 实现strStr() * * https://leetcode-cn.com/problems/imple ...
- 毕业2年 Summary
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/135 看了下去年写毕业一周年总结的时间:2017-6-16,今天 ...
- 8-C++远征之继承篇-学习笔记
C++远征之继承篇 开篇介绍 整个C++远征计划: 起航->离港->封装->继承 为什么要用继承? 为什么要有继承? 如何来定义基类 <----> 派生类? 基类到派生类 ...
- python2.7练习小例子(二十七)
27):题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. #!/usr/bin/python # -*- coding: UTF-8 -* ...
- python2.7练习小例子(十六)
16):题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用 while 或 for 语句,条件为输入的字符不为 '\n'. 程序源代码: #!/u ...