实验任务要求:
1、运行Hbase Shell命令操作数据表
2、编程调试数据表操作的Java程序
去官网下,选择稳定版hbase-1.4.9-bin.tar.gz,在Windows里面下载。
SecureCRT 【File】→【Connect SFTP Session】开启sftp操作
解压安装到指定目录下/opt/module(/opt是系统自带目录,之下的/module是自己创建的)
在/etc/profile文件里添加HBase安装路径的配置信息,之后用source命令使配置生效。安装之后的目录为hbase-1.4.9,修改为hbase,所以我的HBase安装路径是/opt/module/hbase。
source /etc/profile配置生效 (基于上一个文档增加的内容)
测试HBase安装成功,命令hbase version,或hbase。
修改slaves里的内容,改成虚拟机的主机名
把zoo_sample.cfd文件名称改为zoo.cfg,
配置文件位于HBase安装路径的conf目录(/opt/module/hbase/conf)下面
hbase.cluster.distributed
true
hbase.zookeeper.quorum
localhost
启动HBase,并jps查看!
start-all.sh
start-hbase.sh
zkServer.sh start
进入HBase的shell命令行模式
了解命令使用方法,如创建表,输入help ‘create’
一、HBase的简介
HBase是一个高可靠、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价的PC Server上搭建大规模结构化存储集群。
HBase是Google BigTable的开源实现,与Google BigTable利用GFS作为其文件存储系统类似,HBase利用Hadoop HDFS作为其文件存储系统;
Google运行MapReduce来处理BigTable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;
Google BigTable利用Chubby作为协同服务,HBase利用Zookeeper作为协同服务。
二、HBase系统架构
从HBase的架构图上可以看出,HBase中的存储包括HMaster、HRegionSever、HRegion、HLog、Store、MemStore、StoreFile、HFile等,以下是HBase存储架构图:
HMaster的作用:
为HRegionServer分配HRegion
负责HRegionServer的负载均衡
发现失效的HRegionServer并重新分配
HDFS上的垃圾文件回收
处理Schema更新请求
HRegionServer的作用:
维护HMaster分配给它的HRegion,处理对这些HRegion的IO请求
负责切分正在运行过程中变得过大的HRegion
WARN [main] zookeeper.ZooKeeperNodeTracker: Can’t get or delete the master znode
Will not attempt to authenticate using SASL (unknown error)
ERROR [main] client.ConnectionManager$HConnectionImplementation: Can't get connection to ZooKeeper: KeeperErrorCode = ConnectionLoss for /hbase
Can't get connection to ZooKeeper: KeeperErrorCode = ConnectionLoss for /hbase
重新停止、启动HBASE,查看logs,报错2019-04-04 10:41:52,238 INFO [M:0;bigdata128:35321-SendThread(localhost:2181)] zookeeper.ClientCnxn: Opening socket connection to server localhost/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
Hbase shell 运行status
报错2019-04-04 10:49:55,710 ERROR [main] client.ConnectionManager$HConnectionImplementation: Can’t get connection to ZooKeeper: KeeperErrorCode = ConnectionLoss for /hbase
ERROR [main] server.ZooKeeperServer: ZKShutdownHandler is not registered
ERROR [main] master.HMasterCommandLine: Master exiting
java.io.IOException: Could not start ZK at requested port of 2181. ZK was started at port: 2182. Aborting as clients (e.g. shell) will not be able to find this ZK quorum.
关闭防火墙service iptables stop