一、实验准备
1、VWware Workstation
2、HBase压缩包,hbase-2.4.4-bin.tar.gz;
3、前期安装好了Zookeeper集群;
二、实验步骤
1、安装HBase
1.1上传并解压
(1)上传,打开xftp8,将hbase-2.4.4-bin.tar.gz上传到Hadoop1中去
(2)解压,命令如下:
tar -xvzf hbase-2.4.4-bin.tar.gz -C /export/servers/
1.2配置环境变量
vi /etc/profile
# 添加以下内容:
export HBASE_HOME=/export/servers/hbase-2.4.4
export PATH=$PATH:$HBASE_HOME/bin
1.3修改配置文件
(1)切换目录到/export/servers/hbase-2.4.4/conf下
cd /export/servers/hbase-2.4.4/conf
(2)编辑hbase-env.sh文件,编辑内容如下
vi hbase-env.sh
# 添加内容如下:
export JAVA_HOME=/export/servers/jdk1.8.0_202
export HADOOP_HOME=/export/servers/hadoop-3.3.1
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_PID_DIR=${HBASE_HOME}/pid
(3)编辑hbase-site.xmlh文件,编辑内容如下
vi hbase-site.xml
# 编辑内容如下
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop1:9000/hbase</value>
<description>指定Region服务器共享的目录,用来持久存储HBase的数据,URL必须完全正确,其中包含了文>件系统的schema。默认值"${hbase.tmp.dir}/hbase"</description>
</property>
<!--HBase的运行模式,false是单机模式,true是分布式模式,若为false则hbase和zk回运行在一个jvm中-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--本地文件的存放目录-->
<property>
<name>hbase.tmp.dir</name>
<value>/export/servers/hbase-2.4.4//tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.wal.provider</name>
<value>filesystem</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
<description>配置zookeeper集群地址,不要指定znode路径,HBase会默认将元数据放在根znode</description>
</property>
<!-- 配置主从节点的心跳超时时间,将允许的最大误差时间设为120秒 -->
<property>
<name>hbase.master.maxclockskew</name>
<value>120000</value>
</property>
<!--指定Zookeeper数据存储目录-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/servers/zookeeper/zkdata</value>
</property>
<!-- ********** HMaster相关配置 ********** -->
<property>
<name>hbase.master.info.bindAddress</name>
<value>hadoop1</value>
<description>HBase Master 的 Web UI绑定的地址,默认值为"0.0.0.0"</description>
</property>
<property>
<name>hbase.master.port</name>
<value>60000</value>
<description>HBase Master绑定端口,默认值为:"60000"</description>
</property>
<property>
<name>hbase.master.info.port</name>
<value>16010</value>
<description>HBase Master的Web UI端口,默认值为:"16010",如果不想启动UI实例,则可以将当前参>数设置为-1</description>
</property>
<!-- ********** HRegionServer相关配置 ********** -->
<property>
<name>hbase.regionserver.port</name>
<value>16020</value>
<description>HBase RegionServer绑定的端口,默认值为:"16020".</description>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>16030</value>
<description>HBase RegionServer的Web UI端口,默认值为:"16030"设置为-1可以禁用HBase RegionServer的Web UI。</description>
</property>
<property>
<name>hbase.regionserver.info.bindAddress</name>
<value>0.0.0.0</value>
<description>HBase RegionServer的Web UI地址,默认值为"0.0.0.0"</description>
</property>
</configuration>
(4)编辑regionservers文件,编辑内容如下
vi regionservers
# 添加内容如下
hadoop2
hadoop3
(5)为了让 Hbase 读取到 hadoop 的配置,将 core-site.xml 和 hdfs-site.xml 两个文件拷贝到 $HBASE_HOME/conf/ 目录下。
cp /export/servers/hadoop-3.3.1/etc/hadoop/core-site.xml /export/servers/hbase-2.4.4/conf/
cp /export/servers/hadoop-3.3.1/etc/hadoop/hdfs-site.xml /export/servers/hbase-2.4.4/conf/
1.4分发
# 将Hadoop1上有关hbase-2.4.4的文件分发至Hadoop2、Hadoop3上。
scp -r /export/servers/hbase-2.4.4 root@hadoop2:/export/servers/
scp -r /export/servers/hbase-2.4.4 root@hadoop3:/export/servers/
# 将Hadoop1上有关hbase-2.4.4的环境配置分发至Hadoop2、Hadoop3上。
scp /etc/profile root@hadoop2:/etc/
scp /etc/profile root@hadoop3:/etc/
# 初始化环境变量(三台虚拟机中都需要)
source /etc/profile
2、启动集群
2.1启动zookeeper集群(三个虚拟机都需要)
zkServer.sh start
jps
zkServer.sh status
2.2启动Hadoop集群(在Hadoop1上操作即可)
start-all.ah
jps
2.3启动HBase集群
start-hbase.sh
jps
2.4查看HBase集群
在浏览器中搜索:http://192.168.1.132:16010
3、HBase表操作
3.1进入HBase Shell命令行
hbase shell
3.2建立表 student
两个列簇:name 和 num,命令如下:
create 'student',{NAME=>'name'},{NAME=>'num'}
3.3用list命令查看表的信息
3.4用describe ‘student’命令查看建表详细信息
3.5修改表
alter 'student' ,{NAME=>'tel'}
# 添加列族:
alter 'student' ,{NAME=>'name',VERSIONS=>2}
# 删除列族:
alter 'student' ,{NAME=>'tel',METHOD=>’delete’}
3.6删除表
# 禁用表:
disable ‘student’
# 删除表
drop ‘student’