HBase环境搭建(集群)
- 环境准备
- HBase参数配置
- 启动HBase
- HBase DDL、DML
环境准备
- (Hadoop集群)解压HBase tar包(当前用户root):
sudo tar -zxvf hbase-1.1.2-bin.tar.gz -C /usr/local/hbase
sudo chown -R hadoop:hadoop hbase
配置环境变量:
vim ~/.bashrc
#将一下内容insert到.bashrc
export HBASE_HOME=/usr/local/hbase
export PATH=$HADOOP_HOME/bin:$PATH:$HBASE_HOME/bin
#刷新环境变量
source ~/.bashrc
#其实这个时候就可以启动Hbase服务了,当然得先启动Hadoop环境
#集群配置:需要配置HBase环境变量
vi conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_79
export HBASE_CLASSPATH=/usr/hadoop/hadoop-2.6.3/etc/hadoop/
export HBASE_MANAGES_ZK=true #false 非自带Zookeeper
#在bin同级目录
mkdir tmp
mkdir zookeeper
- 配置hbase-site.xml
vi conf/hbase-site.xml
# 添加以下配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/usr/local/hbase/tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>Master,Slave1,Slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/zookeeper</value>
</property>
</configuration>
- 配置regionservers
vi conf/regionservers
#添加以下配置:集群三个节点的hostname
Master
Slave1
Slave2
- 打包、分发
sudo tar -zcf ~/hbase.master.tar.gz hbase
scp ~/hbase.master.tar.gz Slave1:/home/hadoop
scp ~/hbase.master.tar.gz Slave2:/home/hadoop
#slave1/slave2
sudo tar -zxf ~/hbase.master.tar.gz -C /usr/local/
sudo chown -R hadoop:hadoop hbase
启动HBase
# 需要先启动Hadoop环境
bin/start-hbase.sh
hbase shell
正常情况下,jps能看到一下进程
Master节点:
1:17590 NodeManager
2:17151 DataNode
3:18285 HMaster
4:18184 HQuorumPeer
5:12766 HRegionServer
6:18742 Jps
7:17311 SecondaryNameNode
8:17429 ZooKeeperMain
9:16988 NameNode
10:17488 ResourceManager
11:17851 JobHistoryServerSlave节点:
1:8043 HQuorumPeer
2:7858 DataNode
3:6119 HRegionServer
4:7943 NodeManager
5:8312 Jps
HBase DDL、DML
DDL
create: 创建一个表
list: 列出HBase的所有表
disable: 禁用表
is_disabled: 验证表是否被禁用
enable: 启用一个表
is_enabled: 验证表是否已启用
describe: 提供了一个表的描述
alter: 改变一个表
exists: 验证表是否存在
drop: 从HBase中删除表
drop_all: 丢弃在命令中给出匹配“regex”的表DML
put: 把指定列在指定的行中单元格的值在一个特定的表
get: 取行或单元格的内容
delete: 删除表中的单元格值
deleteall: 删除给定行的所有单元格
scan: 扫描并返回表数据
count: 计数并返回表中的行的数目
truncate: 禁用,删除和重新创建一个指定的表