一、部署

1、准备

##先用Apache hadoop
##之前的cdh 服务器先全部停掉 ##解压HBASE
[root@hadoop-senior hbase]# tar zxf hbase-0.98.6-hadoop2-bin.tar.gz -C /opt/modules/ ##启动Apache hadoop (hdfs)
[root@hadoop-senior hadoop-2.5.0]# pwd
/opt/modules/hadoop-2.5.0 [root@hadoop-senior hadoop-2.5.0]# sbin/hadoop-daemon.sh start namenode
[root@hadoop-senior hadoop-2.5.0]# sbin/hadoop-daemon.sh start datanode [root@hadoop-senior hadoop-2.5.0]# jps
23159 Jps
23081 DataNode
22996 NameNode

2、配置、启动

hbase-env.sh

export JAVA_HOME=/opt/modules/jdk1.7.0_80

regionservers

改为主机名

hbase-site.xml

<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-senior.ibeifeng.com:8020/hbase</value>
</property> <property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property> <property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-senior.ibeifeng.com</value>
</property>

启动

##替换jar包,事先准备好的,(cdh应该就不需要替换了)
[root@hadoop-senior hbase-0.98.6-hadoop2]# mv lib/hadoop-* /tmp/
[root@hadoop-senior hadoop-2.5.0-jars]# cp -r ./* /opt/modules/hbase-0.98.6-hadoop2/lib/

[root@hadoop-senior hbase-0.98.6-hadoop2]# mv lib/zookeeper-3.4.6.jar /tmp/

##启动
[root@hadoop-senior hbase-0.98.6-hadoop2]# bin/start-hbase.sh 

[root@hadoop-senior hbase-0.98.6-hadoop2]# jps
24548 Jps
24155 HMaster
23081 DataNode
24084 HQuorumPeer
24266 HRegionServer
22996 NameNode 端口:60010 //可以web访问:ip:port

3、hdfs上HBASE各个目录

[root@hadoop-senior hadoop-2.5.0]# bin/hdfs dfs -ls /
Found 3 items
drwxr-xr-x - root supergroup 0 2019-05-20 14:45 /hbase
drwx-w---- - root supergroup 0 2019-04-18 17:33 /tmp
drwxr-xr-x - root supergroup 0 2019-04-18 17:21 /user [root@hadoop-senior hadoop-2.5.0]# bin/hdfs dfs -ls /hbase
Found 6 items
drwxr-xr-x - root supergroup 0 2019-05-20 14:45 /hbase/.tmp
drwxr-xr-x - root supergroup 0 2019-05-20 14:45 /hbase/WALs
drwxr-xr-x - root supergroup 0 2019-05-20 14:31 /hbase/data
-rw-r--r-- 3 root supergroup 42 2019-05-20 14:31 /hbase/hbase.id
-rw-r--r-- 3 root supergroup 7 2019-05-20 14:31 /hbase/hbase.version
drwxr-xr-x - root supergroup 0 2019-05-20 14:46 /hbase/oldWALs ##
/hbase/.tmp
当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作。 /hbase/WALs
HBase 是支持 WAL(Write Ahead Log) 的,HBase 会在第一次启动之初会给每一台 RegionServer 在WALs下创建一个目录,若客户端如果开启WAL 模式,
会先将数据写入一份到WALs下,当 RegionServer crash 或者目录达到一定大小,会开启 replay 模式,类似 MySQL 的 binlog。 /hbase/data
存储hbase数据,下面含有两个命名空间default和hbase, /hbase/data/default
这个默认的namespace即没有指定namespace 的表都将会flush 到该目录下面。 /hbase/data/hbase
这个namespace 下面存储了 HBase 的 namespace、meta 和acl 三个表,这里的 meta 表跟0.94版本的.META.是一样的,自0.96之后就已经将 ROOT 表去掉了,直接从Zookeeper 中找到meta 表的位置,然后通过 meta 表定位到 region。 namespace 中存储了 HBase 中的所有 namespace 信息,包括预置的hbase 和 default。acl 则是表的用户权限控制。
如果自定义一些 namespace 的话,就会再/hbase/data 目录下新建一个 namespace 文件夹,该 namespace 下的表都将 flush 到该目录下。 /hbase/hbase.id
它是一个文件,存储集群唯一的 cluster id 号,是一个 uuid。 /hbase/hbase.version
同样也是一个文件,存储集群的版本号,貌似是加密的,看不到,只能通过web-ui 才能正确显示出来。 /hbase/oldWALs
当WALs文件夹中的 HLog 没用之后会 move 到.oldWALs 中,HMaster 会定期去清理。

二、HBase Shell基本使用

1、登入命令行

[root@hadoop-senior hbase-0.98.6-hadoop2]# bin/hbase
Usage: hbase [<options>] <command> [<args>]
Options:
--config DIR Configuration direction to use. Default: ./conf
--hosts HOSTS Override the list in 'regionservers' file Commands:
Some commands take arguments. Pass no args or -h for usage.
shell Run the HBase shell
hbck Run the hbase 'fsck' tool
hlog Write-ahead-log analyzer
hfile Store file analyzer
zkcli Run the ZooKeeper shell
upgrade Upgrade hbase
master Run an HBase HMaster node
regionserver Run an HBase HRegionServer node
zookeeper Run a Zookeeper server
rest Run an HBase REST server
thrift Run the HBase Thrift server
thrift2 Run the HBase Thrift2 server
clean Run the HBase clean up script
classpath Dump hbase CLASSPATH
mapredcp Dump CLASSPATH entries required by mapreduce
pe Run PerformanceEvaluation
ltt Run LoadTestTool
version Print the version
CLASSNAME Run the class named CLASSNAME [root@hadoop-senior hbase-0.98.6-hadoop2]# bin/hbase shell //进入HBASE命令行
hbase(main):001:0> help //查看帮助

2、操作命令

hbase(main):007:0> help 'create'        //查看建表帮助
hbase(main):004:0> create 'user', 'info' //创建一个表,user:表名; info:列簇
hbase(main):005:0> list //列出表
hbase(main):006:0> describe 'user' //查看表结构 ##插入数据
hbase(main):008:0> put 'user', '10001', 'info:name', 'zhangsan' //user:表名; 10001:rowkey; info:name:列簇的其中一列; zhangsan:值
0 row(s) in 0.0770 seconds hbase(main):010:0> put 'user', '10001', 'info:age', '25'
0 row(s) in 0.0060 seconds hbase(main):011:0> put 'user', '10001', 'info:sex', 'male'
0 row(s) in 0.0040 seconds hbase(main):012:0> put 'user', '10001', 'info:address', 'shanghai' ##查询
HBase的数据查询有三种方式:
*依据rowkey查询,最快的
get *范围查询
scan range *全表扫描
scan ##查询10001这个rowkey下的所有列数据
hbase(main):014:0> get 'user', '10001'
COLUMN CELL
info:address timestamp=1558342595476, value=shanghai
info:age timestamp=1558342530687, value=25
info:name timestamp=1558342470065, value=zhangsan
info:sex timestamp=1558342551186, value=male
4 row(s) in 0.0160 seconds ##单独列查询 hbase(main):015:0> get 'user', '10001', 'info:name'
COLUMN CELL
info:name timestamp=1558342470065, value=zhangsan
1 row(s) in 0.0080 seconds

3、操作命令

##插入数据,rowkey:10002
hbase(main):016:0> put 'user', '10002', 'info:name', 'wangwu'
0 row(s) in 0.0040 seconds hbase(main):017:0> put 'user', '10002', 'info:age', '30'
0 row(s) in 0.0040 seconds hbase(main):018:0> put 'user', '10002', 'info:tel', '231294737'
0 row(s) in 0.0030 seconds hbase(main):019:0> put 'user', '10002', 'info:qq', '231294737'
0 row(s) in 0.0030 seconds ##全表扫描查询
hbase(main):020:0> scan 'user'
ROW COLUMN+CELL
10001 column=info:address, timestamp=1558342595476, value=shanghai
10001 column=info:age, timestamp=1558342530687, value=25
10001 column=info:name, timestamp=1558342470065, value=zhangsan
10001 column=info:sex, timestamp=1558342551186, value=male
10002 column=info:age, timestamp=1558343570256, value=30
10002 column=info:name, timestamp=1558343559457, value=wangwu
10002 column=info:qq, timestamp=1558343612746, value=231294737
10002 column=info:tel, timestamp=1558343607851, value=231294737
2 row(s) in 0.0220 seconds ##插入数据,rowkey:10003
hbase(main):021:0> put 'user', '10003', 'info:name', 'zhaoliu'
0 row(s) in 0.0050 seconds ##范围查询,只查询name和age两个列
hbase(main):022:0> scan 'user', {COLUMNS => ['info:name', 'info:age']}
ROW COLUMN+CELL
10001 column=info:age, timestamp=1558342530687, value=25
10001 column=info:name, timestamp=1558342470065, value=zhangsan
10002 column=info:age, timestamp=1558343570256, value=30
10002 column=info:name, timestamp=1558343559457, value=wangwu
10003 column=info:name, timestamp=1558345826709, value=zhaoliu ##只从某个rowkey开始往后查
hbase(main):023:0> scan 'user', {STARTROW => '10002'}
ROW COLUMN+CELL
10002 column=info:age, timestamp=1558343570256, value=30
10002 column=info:name, timestamp=1558343559457, value=wangwu
10002 column=info:qq, timestamp=1558343612746, value=231294737
10002 column=info:tel, timestamp=1558343607851, value=231294737
10003 column=info:name, timestamp=1558345826709, value=zhaoliu
2 row(s) in 0.0120 seconds
#从某个rowkey到某个rowkey(包前不包后)

hbase(main):002:0> scan 'user', {STARTROW => '10001',ENDROW => '10003'}

ROW                                   COLUMN+CELL                                                                                                                   
  10001                                column=info:address, timestamp=1558342595476, value=shanghai                                                                  
  10001                                column=info:age, timestamp=1558342530687, value=25                                                                            
  10001                                column=info:name, timestamp=1558342470065, value=zhangsan                                                                     
  10001                                column=info:sex, timestamp=1558342551186, value=male                                                                          
  10002                                column=info:age, timestamp=1558343570256, value=30                                                                            
  10002                                column=info:name, timestamp=1558343559457, value=wangwu                                                                       
  10002                                column=info:qq, timestamp=1558343612746, value=231294737                                                                      
  10002                                column=info:tel, timestamp=1558343607851, value=231294737


##删除数据
hbase(main):004:0> delete 'user', '10001', 'info:name'  //删除user表下,rowkey为10001,列为name的值;
hbase(main):008:0> deleteall 'user', '10001'                  //删除整个rowkey下的值

1.4-1.5 HBase部署及基本使用的更多相关文章

  1. 大数据【七】HBase部署

    接着前面的Zookeeper部署之后,现在可以学习HBase了. HBase是基于Hadoop的开源分布式数据库,它以Google的BigTable为原型,设计并实现了具有高可靠性.高性能.列存储.可 ...

  2. Hadoop+Spark+Hbase部署整合篇

    之前的几篇博客中记录的Hadoop.Spark和Hbase部署过程虽然看起来是没多大问题,但是之后在上面跑任务的时候出现了各种各样的配置问题.庆幸有将问题记录下来,可以整理出这篇部署整合篇. 确保集群 ...

  3. HBase部署与使用

    HBase部署与使用 概述 HBase的角色 HMaster 功能: 监控RegionServer 处理RegionServer故障转移 处理元数据的变更 处理region的分配或移除 在空闲时间进行 ...

  4. Zookeeper + Hadoop + Hbase部署备忘

    网上类似的文章很多,本文只是记录下来备忘.本文分四大步骤: 准备工作.安装zookeeper.安装hadoop.安装hbase,下面分别详细介绍: 一 准备工作 1. 下载 zookeeper.had ...

  5. 001.hadoop及hbase部署

    一 环境准备 1.1 相关环境 系统:CentOS 7 #CentOS 6.x系列也可参考,转换相关命令即可. hadoop包:hadoop-2.7.0.tar.gz #下载官方地址:http://w ...

  6. hbase 部署

    hbase的部署相对于java来说就比较简单啦,主要过程如下: 1.下载hbase最新的稳定版 2.拷贝到相应的目录 3.修改conf目录下的hbase-env.sh,设置java 和不适用内置的zo ...

  7. hbase部署经验与坑总结

    1.本地单机部署hbase,想要使用独立zookeeper,不使用自带的 vim conf/hbase-env.sh export HBASE_MANAGES_ZK=false 设置不使用自带zook ...

  8. hbase部署

    Hbase: 更细的操作和原理研究笔记和视频 cloudera Hbase:https://sysit.cn/blog/post/sysit/cloudera%E5%AE%89%E8%A3%85HBA ...

  9. Hadoop及Hbase部署

    原文转自:https://www.cnblogs.com/itzgr/p/10233932.html作者:木二 目录 一 环境准备 1.1 相关环境 1.2 网络环境 二 基础环境配置 2.1 配置相 ...

随机推荐

  1. Android 大众点评的接入

    这里介绍的是大众点评的团购中的一个接口.就是全部团购信息,其它的接口的实现是大同小异的. 首先,登录大众点评的开发平台->大众点评 . 然后获取到自己的应用的appkey和secret.这个是 ...

  2. HBase写请求分析

    HBase作为分布式NoSQL数据库系统,不单支持宽列表.而且对于随机读写来说也具有较高的性能.在高性能的随机读写事务的同一时候.HBase也能保持事务的一致性. 眼下HBase仅仅支持行级别的事务一 ...

  3. fabric-ca安装

    1.Go版本1.7+(具体可参考Linux安装Go语言) 2.GOPATH环境变量正确配置 export GOROOT=/usr/local/go export GOPATH=/opt/gopath ...

  4. 程序基石系列之C++多态的前提条件

    准备知识 C++中多态(polymorphism)有下面三个前提条件: 必须存在一个继承体系结构. 继承体系结构中的一些类必须具有同名的virtual成员函数(virtualkeyword) 至少有一 ...

  5. (转) 实现wince datagrid 上下滑屏数据浏览

    开发 基于wince 手持设备数据库应用时 由于是触摸屏 当datagrid 数据过多 往往用户烦于去控制又窄又细的上下滚动条 尤其是高分辨率的屏上 (如魅族M8系统 720×480) 而且datag ...

  6. 采用ADM2582E/ADM2587E实现完全半/全双工的RS-485/RS-422接口隔离

    RS-485标准是一种常见的总线架构,其通用性及远距离传输能力使其广泛应用于各种通信接口电路.在多数情况下,由于应用环境的恶劣,需要对RS-485接口采用隔离方案以防止出现接地环路. 对RS-485接 ...

  7. 基于EasyIPCamera实现的RTSP跨平台拉模式转发流媒体服务器

    本文转自博客:http://blog.csdn.net/xinlanbobo/article/details/53224445 上一篇博客<EasyIPCamera通过RTSP协议接入海康.大华 ...

  8. android studio发布公共类库到服务器maven仓库

    在上一篇中提到了怎么创建私有maven库,这篇主要结合android studio的使用,直接进入正题,看以下步骤 1.创建android项目 创建Project,然后加一个library的modul ...

  9. windows下使用DOS命令删除大文件

    首先进入DOS命令窗口: 1.进入到将要删除的目录: 执行命令: rmdir /s/q 文件夹名称 2.删除指定文件: 进入文件的目录下,找到要删除的文件名称+扩展名:例如111.jpg执行命令: d ...

  10. JVM client模式和Server模式

    我们把jdk安装完成后,在命名行输入java -version 不仅可以看到jdk版本相关信息,还会看到类似与 Java HotSpot(TM) 64-Bit Server VM (build 25. ...