单机版: (hbase内嵌有zookeeper)
解压hbase软件,到达conf目录下
配置hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name> 配置hbase存在位置
<value>file:///home/testuser/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name> 配置hbase文件保存路径
<value>/home/testuser/zookeeper</value>
</property>
</configuration>
配置hbase-env.sh文件:把29行的注释取消,配置虚拟机上面的Java地址
28 # The java implementation to use. Java 1.6 required.
29 export JAVA_HOME=/usr/java/default
30
31 # Extra Java CLASSPATH elements. Optional.
32 # export HBASE_CLASSPATH
然后使用start-hbase.sh命令启动hbase
使用hbase shell 进入hbase的命令提示界面,进行hbase语句操作练习
hbase集群:(高可用)
配置hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://bx/hbase</value> 此处的bx为以前搭建hdfs集群时,使用的那个集群代号
</property>
<property>
<name>hbase.zookeeper.quorum</name> 指定集群的几台zookeeper主机名
<value>CentOS8,CentOS9,CentOS10,CentOS15</value>
</property>
<property>
<name>hbase.cluster.distributed</name> 设置使用zookeeper集群,true为使用
<value>true</value>
</property>
</configuration>
配置hbase-env.sh文件:把124行的注释取消,把true改为false,代表不使用自带的zookeeper
121 # export HBASE_SLAVE_SLEEP=0.1
122 #
123 # Tell HBase whether it should manage it's own instance of Zookeeper or not.
124 export HBASE_MANAGES_ZK=false 默认为true
125 #
设置regionservers文件
vi regionservers
CentOS8 设置四个regionserver节点
CentOS9
CentOS10
CentOS15
创建backup-masters文件
vi backup-masters
CentOS8 指定两台master主机
CentOS9
然后再把hadoop2.6.5/etc/hadoop/hdfs-site.xml文件拷贝到该目录下
到此,配置文件准备完毕。
首先每台机器启动zkServer.start.sh
然后在配了免密钥登录的机器上执行start-dfs.sh ,启动hdfs集群
最后,在start-hbase.sh 启动hbase数据库
安装完毕后就开始可以使用了
创建命名空间:
create_namespace 'benxi'
创建region:
create 't_user','f1',f2'
插入数据:
put 't_user','001','f1:name','张三' 第一个为表名,第二个为Row Key,第三个为列族名:属性名,第四个为属性的value值
put 't_user','001','f1:age','13'
查看表结构:desc 't_user'
显示结果如下:(部分参数解释)
Table t_user is ENABLED
t_user
COLUMN FAMILIES DESCRIPTION
{NAME=>’f1’, 列族名
DATA_BLOCK_ENCODING=>’NONE’,
BLOOMFILTER=>’ROW’,
REPLICATION_SCOPE => ‘0’,
VERSIONS => ‘1’, 最大保存数为1
COMPRESSION => ‘NONE’,
MIN_VERSIONS => ‘0’, 最小保存数为0
TTL=>FOREVER’, 保存时间为永久有效
KEEP_DELETED_CELLS => ‘FALSE’,
BLOCKSIZE=>’65536’, 一个块大小,单位字节,64k
IN_MEMORY=>’false’,
BLOCKCACHE => ‘true’} 默认为true,开启查询保存
禁用命名空间
disabled ‘t_user’
删除命名空间 首先要禁用表才能删除。
drop 't_user'
接下来使用Java代码进行操作:
p