编程环境
Ubuntu 18.04
实验内容
安装Hbase
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.4.11/hbase-2.4.11-bin.tar.gz
已安装的hadoop版本: Hadoop 3.3.2 解压安装包
tar -zxf hbase-2.4.11-bin.tar.gz
- 配置环境变量
记住自己的安装的路径
vim ~/.bashrc
使资源生效
source ~/.bashrc
验证HBase是否安装成功
bin/hbase version
输出版本即安装成功
单机模式配置
找到自己JAVA安装路径可以参考(https://blog.csdn.net/wr456wr/article/details/124249644)中的安装JAVA环境变量或者在**~/.bashrc** 中查看自己已经配置好的环境路径
在conf/hbase-env.sh内进行配置,大概在第28行设置JAVA环境变量 (在vim内使用set nu可以查看到行数信息) 以及126行的注释去掉 配置hbase-site.xml文件,在hbase安装的目录下的conf文件内,设置属性hbase.rootdir,用于指定HBase数据的存储位置,因为如果不设置的话,hbase.rootdir默认为/tmp/hbase-${user.name},这意味着每次重启系统都会丢失数据,此处设置为HBase安装目录下的hbase-tmp文件夹 配置项:
<property>
<name>hbase.rootdir</name>
<value>file:///root/rDesk/hbase/hbase-tmp</value>
</property>
之后尝试启动HBase,成功启动
bin/start-hbase.sh bin/hbase shell bin/stop-hbase.sh (HBase停止操作)
伪分布式配置
在conf/hbase-env.sh文件内配置三项分别为JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK.
其中HBASE_CLASSPATH值设置为安装hbase目录下的conf文件的位置
在vim内命令模式下使用/可以进行搜索: 配置conf内的hbase-site.xml文件.
修改hbase.rootdir,指定HBase数据在HDFS上的存储路径;将属性hbase.cluter.distributed设置为true。假设当前Hadoop集群运行在伪分布式模式下,在本机上运行,且NameNode运行在9000端口。
添加的配置项如下:
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式.
另外,上面配置文件中,hbase.unsafe.stream.capability.enforce这个属性的设置,是为了避免出现启动错误。也就是说,如果没有设置hbase.unsafe.stream.capability.enforce为false,那么,在启动HBase以后,会出现无法找到HMaster进程的错误
尝试启动Hbase和Hadoop
bin/start-hbase.sh /root/rDesk/hdoop-3.3.2/sbin/start-dfs.sh (启动Hadoop)
输入jps查看是否启动成功 其中NameNode,DataNode,SecondaryNameNode为Hadoop的进程,HQuirumPeer,HRegionServer,HMaster为HBase的进程
HBase shell命令说明
- create: 创建表
- list: 列出HBase中所有的表的信息
- put:向表,行,列指定的单元格添加数据
- get:通过指定表名,行,列,时间戳,时间范围和版本号来获得相应的单元格的值
- scan:浏览表的相关信息
- alter:修改列族模式
- count:统计表中的行数
- describle: 显示表的相关信息
- enable/disable:使表有效或无效
- delete:删除指定单元格的数据
- drop:删除表
- exists:判断表是否存在
- truncate:使表无效,删除该表,然后重新建立表
- exit:退出hbase shell
- shutdown:关闭Hbase集群
- version:输出Hbase版本信息
- status:输出hbase集群状态信息
简单命令实践
打开hbase的shell
bin/hbase shell
- 创建一个Student表
create ‘student’, ‘Sname’, ‘Ssex’, ‘Sage’, ‘Sdept’, ‘course’
- 查看student表的信息
describe 'student’describe ‘student’
3. 使用put向student表插入数据 put命令添加数据,一次只能为一个表的一行数据的一个列,也就是一个单元格添加一个数据
put ‘student’, ‘122’, ‘Sage’, ‘77’
(含义是向student表中的122行号内的Sage族内插入一条数据,数据值为77)
- 使用scan查看student表内的数据
scan ‘student’
- 使用delete删除数据
delete ‘student’, ‘122’, ‘Sage’
- 使用deleteall删除一行的数据
deleteall ‘student’, ‘123’
- 使用get获取某一行的数据
get ‘student’, ‘11’
- 删除表
先使用disable使表不可用,然后使用drop删除表
disable ‘student’ drop ‘student’
或者在使用disable表后也可以使用enable重新使表可用
参考资料:
http://dblab.xmu.edu.cn/blog/2442-2/ https://blog.csdn.net/weixin_44990104/article/details/117596231 https://github.com/steveloughran/winutils
|