写点什么

工作日志:一文总结 HBase 从搭建到实操,大家一起进步

用户头像
小Q
关注
发布于: 2020 年 12 月 15 日

公司的大数据部门一直是我非常想要进入的地带,纯粹个人爱好,但是因为当时大数据部门成立选拔人的时候,就是个小渣渣,所以完美错过,后悔脸,奉劝新人,别嫌弃累,能多学一点是一点,天知道你啥时候会有机会晋升,这次,因为部门整合,我们这边也需要分担一部分大数据的研发工作,刚好主要部分落在我们小组,组长一脸奸笑的跟我说:小伙子,你明白的,好好表现,嗯?这是有动静啊,然后这老油条就啥也不说了,没关系,反正 lz 喜欢大数据,这下可有用武之地了,那沉寂已久的虚拟机,开始吧,今天的内容是我为了恢复一下自己的手感,要搭建在自己的 pc 上练习一下,起码命令什么的要会把,后面会持续更新

文章首发公众号:Java 架构师联盟好了,话不多说,开始今天的正题


hbase 伪分布式搭建


修改 hbase-env.sh


export JAVA_HOME=/opt/software/jdk1.8
复制代码


复制代码


export HBASE_MANAGES_ZK=true
复制代码

第一个配置 java 环境变量


第二个配置在本机器上的 HBase 可以自己启动 zookeeper 和使用


修改 reginserver


node1


修改 hbase-site.xml


<property>
复制代码


复制代码


 <name>hbase.rootdir</name>
复制代码


复制代码


 <value>hdfs://node1:9000/hbase</value>
复制代码


复制代码


</property>
复制代码


复制代码


<property>
复制代码


复制代码


 <name>hbase.cluster.distributed</name>
复制代码


复制代码


 <value>true</value>
复制代码


复制代码


</property>
复制代码


复制代码


<property>
复制代码


复制代码


 <name>hbase.zookeeper.quorum</name>
复制代码


复制代码


 <value>master</value>
复制代码


复制代码


</property>
复制代码


复制代码


<property>
复制代码


复制代码


 <name>dfs.replication</name>
复制代码


复制代码


 <value>1</value>
复制代码


复制代码


</property>
复制代码

hbase.rootdir 配置在 hdfs 文件系统上 hbase 存储的路径


hbase.cluster.distributed 配置是否是分布式的


hbase.zookeeper.quorum 配置 zookeeper 在哪个节点上


dfs.replication 配置副本个数


启动


启动之前,讲 Hadoop 下的 hdfs-site.xml 文件拷贝到 hbase 的配置文件下


启动 hbase,在 bin 目录下执行命令 start-hbase.sh


**启动 hbase 之前,确保 hadoop 是运行正常的,并且可以写入文件**


因为这个地方,我是将数据存储在 hdfs,而不是本地,如果你想存储在本地的话 ,只需要将


 <value>hdfs://node1:9000/hbase</value>
复制代码

这个配置路径改为本地即可


使用浏览器访问http://master:16010,可以进入和 hadoop 类似的 web 管理页面


下面就是实操了


实际操作


\1. 启动 shell 界面命令:hbase shell


成功启动 hbase 服务后,输入 hbase shell 命令,按回车即可进入 shell 界面。



\2. 查看命令帮助文档:help

命令格式 1:help

在 shell 界面里,输入 help 命令,按回车,将显示 shell 的所有命令信息。



命令格式 2:help ‘命令’

例如:查看 create 命令的说明,输入 help‘create’

按回车,将显示 create 命令的使用说明。



\3. 退出 shell 界面命令:quit 或 exit

输入 quit 或 exit 按回车,即可退出 shell 界面。



\4. 创建表命令:create

命令格式 1:create ‘表名称’,‘列族 1’,‘列族 2’,......

例如 :创建 表名称 为 student ,列 族 1 为 base_info,列族 2 为 class_info, 列族 3 为 other_info 的表。

输入命令:create 'student','base_info','class_info','other_info' 按回车,结果如下:



命令格式 2:create '表名称', {NAME => '列族 1'}, {NAME => '列族 2'}, {NAME => '列族 3',......}

例如:创建表名称为 school,列族 1 为 base_info,列族 2 为 teacher_info,列族 3 为 student_info 的表。

输 入 命 令 : create 'school', {NAME => 'base_info'}, {NAME => 'teacher_info'}, {NAME => 'student_info'} 显示结果如下:



备注:创建表还有很多种命令格式,请查阅帮助文档。


\5. 列出所有表的命令:list



说明:已经存在 5 张表,分别为 mytable,school,student,tb1,tb2 表。


\6. 查看表结构信息命令:describe 或 desc

命令格式:describe ‘表名’

例如:查看 student 表结构信息。

输入命令:describe ‘student’,如下图:



\7. 查看表数据命令:scan

命令格式:scan ‘表’

例如:查看 student 的数据。

输入命令:scan ‘student’按回车,显示结果如下:



结果说明,student 表暂时没有数据。


\8. 插入、修改或更新数据命令:put

Hbase 修改或者更新数据实质上也是添加新数据,只是旧版本的数据没有被显示出来或者 已经被清除。

插入数据命令格式:put ‘表名’,‘行值’,‘列族:列名’,‘数据’

例如 1:向表 stduent 中行 1,列族 base_info 加入列 name,添加数据 xiaoming

输入命令: put 'student','1','base'



查看表是否有数据,输入命令:scan ‘student’,按回车,显示结果如下:



例如 2:向表 stduent 中行 1,列族 class_info 加入列 grade,添加数据 2018

输入命令: put 'student','1','class_info:grade','2018' 按回车,显示结果如下:



查看表是否有数据,输入命令:scan ‘student’,按回车,显示结果如下:



\9. 获取某一行数据命令:get

命令格式 1:get '表名','行'

例如:查看表 stduent 中行 1 的数据

输入命令:get 'student','1' 按回车,显示结果如下:



命令格式 2:get '表名','行','列族:列'

例如:查看表 stduent 中行 1,列族 base_info 中列 name 的数据

输入命令:get 'student','1' , 'base_info:name' 按回车,显示结果如下:



命令格式 3:get '表名','行',{COLUMN=>'列族',VERSIONS=>版本数 n} 获取某一行的某个列族最新的 n 个版本数据。

列如:获取 student 表行 1,列族 class_info 最新 4 个版本的数据

输入命令:get 'student',1,{COLUMN=>'class_info',VERSIONS=>4}



备注:获取表数据还有很多种命令格式,请查阅帮助文档。


\10. 删除制定单元格的数据命令:delete

命令格式:delete ‘表’,‘行’,‘列’,时间戳

例如:删除 student 表行 1,列族 base_info 中 name 的数据

输入命令:delete 'student','1','base_info:name',1533174244970

执行命令之前,先后利用 scan 查看表信息,结果如下



\11. 统计表中的行数命令:count

命令格式:count ‘表名’

例如:查看 studen 表的行数

输入命令:count ‘student’结果如下



\12. 清空表数据命令:truncate

命令格式:truncate ‘表名’

例如:清空表 tb2 的数据

输入命令:truncate ‘tb2’,命令执行前后用 scan 查看表数据,如下图



说明数据已经清空。


注意


xshell 无法删除:修改文件--属性


发布于: 2020 年 12 月 15 日阅读数: 38
用户头像

小Q

关注

还未添加个人签名 2020.06.30 加入

小Q 公众号:Java架构师联盟 作者多年从事一线互联网Java开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果能为您提供帮助,请给予支持(关注、点赞、分享)!

评论

发布
暂无评论
工作日志:一文总结HBase从搭建到实操,大家一起进步