官方的兼容列表

http://hbase.apache.org/book/configuration.html#basic.prerequisites


前提条件

  1. 已经安装配置单节点伪分布式(Pseudo-DistributedHadoop 2.7.7环境<br /> <br />

HBASE需要的目录

以用户root的身份执行如下:
mkdir /opt/hbase-1.2.7
chown -R hadoop.hadoop /opt/hbase-1.2.7
ln -s /opt/hbase-1.2.7 /opt/hbase
chown -R hadoop.hadoop /opt/hbase

安装Hbase

以用户hadoop的身份执行如下:
cd __/home/hadoop/Desktop/1__ #该目录是介质所在目录
tar xvfz hbase-__1.2.7-bin.tar.gz -C /opt__

配置Hbase环境变量



cd
cat > ~hadoop/.bashrc <# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific aliases and functions

JAVA_HOME=/usr/jdk
export JAVA_HOME

HADOOP_HOME=/opt/hadoop
export HADOOP_HOME

HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
export HADOOP_CONF_DIR

HBASE_HOME=/opt/hbase
export HBASE_HOME

ECLIPSE_HOME=/opt/eclipse
export ECLIPSE_HOME


PATH=\$ECLIPSE_HOME/:\$HBASE_HOME/bin:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin:\$JAVA_HOME/bin:\$PATH
export PATH

EOF

创建HBase使用的目录

用hadoop用户创建目录:
mkdir -p /home/hadoop/hbase/temp

单节点伪分布式(Pseudo-Distributed)模式

配置conf/hbase-site.xml

cd /opt/hbase/conf
vi hbase-site.xml



hbase.rootdir
hdfs://test:9000/hbase



hbase.tmp.dir
/home/hadoop/hbase/temp



hbase.cluster.distributed
true



hbase.unsafe.stream.capability.enforce
false





注意:hbase.rootdir需要与hadoop的core-site.xml文件中的fs.defaultFS保持一致!

配置conf/hbase-env.sh

使用自带的ZooKeeper集群

cd /opt/hbase/conf
cat >>hbase-env.sh<export HBASE_MANAGES_ZK=true
EOF



替换HBASE的hadoop jar包

(觉得作用存疑!)
cp -r /opt/hadoop-2.7.7/lib/native/* /opt/hbase/lib
cp -r /opt/hadoop-2.7.7/lib/native /opt/hbase/lib


HBASE测试——Hbase Shell


确保Hadoop HDFS已经启动

启动Hbase之前请确保已经启动了Hadoop 2.7.7的分布式文件系统HDFS

jps
image.png
如果没有启动HDFS,请执行如下命令启动HDFS:
start-dfs.sh

启动HBASE

退出hadoop用户,然后用hadoop用户重新登录。(初学者一定别跳过这一步!)

执行如下命令启动Hbase
cd /opt/hbase/bin
./start-hbase.sh

启动后应该可以看到如下的进程:
jps
image.png

停止HBASE

cd /opt/hbase/bin
./stop-hbase.sh

HBASE SHELL操作命令

进入SHELL状态

使用hadoop用户
hbase shell
image.png

查看我是谁

whoami
image.png

显示HBASE SHELL的帮助

hbase(main):001:0>help
image.png

创建表

create ‘test’,’cf’
image.png

查看表的情况


describe ‘test’
image.png

查看系统有哪些表

list

image.png

插入数据


put ‘test’,’row1’,’cf:a’,’value1’
put ‘test’,’row2’,’cf:b’,’value2’
put ‘test’,’row3’,’cf:c’,’value3’
put ‘test’,’row1’,’cf:c’,’value4’

读出数据

查看表中的内容

scan ‘test’
image.png

统计表的行数


count ‘test’
image.png

获取表中的数据


get ‘test’,’row2’
image.png

修改表中的数据

put ‘test’,’row2’,’cf:a’,’value5’
image.png

删除表

如果没有test表了,重新创建一个
create ‘test’,’cf’

删除表分两步:首先disable,然后drop


disable ‘test’

drop ‘test’


image.png


修改表结构


HBASE测试——Hbase Java编程

启动eclipse

eclipse

创建一个名字为TestHbaseProject的hadoop mapreduce项目



image.png


image.png
image.png


image.png

创建一个com.dyy.testhbase包

image.png

image.png

image.png

创建一个TestHbaseOperation类

image.png


image.png

导入Hbase jar包

image.png

image.png
image.png
image.png
同时按shift和下箭头↓选择所有的jar包,同时按ctrl和点击鼠标去除目录,点击OK
image.png

把以下代码拷贝到eclipse

package com.syy.testhbase;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Admin;

public class TestHbaseOperation {

        static Configuration  cfg=HBaseConfiguration.create();

        public static void list() throws IOException{


            Connection conn=ConnectionFactory.createConnection(cfg);

            Admin admin=conn.getAdmin();
            System.out.println("List table:");
            for(TableName name:admin.listTableNames()) 
                System.out.println(name);
            conn.close();

        }

        public static void main(String[] args) throws IOException{
            list();
        }
}

image.png

运行前先在hbase中创建一个测试表


hbase shell

create ‘test’,’cf’

create ‘test1’,’cf’
image.png

运行测试程序


image.png



image.png

双击红圈的部分

image.png

image.png


附录

https://www.cnblogs.com/aquester/p/11824565.html

Phoenix

https://www.cnblogs.com/linbingdong/p/5832112.html

stopping hbasecat: /tmp/hbase-hadoop-master.pid: No such file or directory
https://blog.csdn.net/maiduiyizu/article/details/80460717

https://blog.csdn.net/weixin_40521823/article/details/86666139