阅读 169

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

公司的大数据部门一直是我非常想要进入的地带,纯粹个人爱好,但是因为当时大数据部门成立选拔人的时候,就是个小渣渣,所以完美错过,后悔脸,奉劝新人,别嫌弃累,能多学一点是一点,天知道你啥时候会有机会晋升,这次,因为部门整合,我们这边也需要分担一部分大数据的研发工作,刚好主要部分落在我们小组,组长一脸奸笑的跟我说:小伙子,你明白的,好好表现,嗯?这是有动静啊,然后这老油条就啥也不说了,没关系,反正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 界面。

img

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

命令格式 1:help

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

img

命令格式 2:help ‘命令’

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

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

img

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

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

img

\4. 创建表命令:create

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

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

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

img

命令格式 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'} 显示结果如下:

img

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

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

img

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

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

命令格式:describe ‘表名’

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

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

img

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

命令格式:scan ‘表’

例如:查看 student 的数据。

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

img

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

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

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

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

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

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

img

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

img

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

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

img

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

img

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

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

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

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

img

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

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

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

img

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

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

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

img

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

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

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

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

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

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

img

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

命令格式:count ‘表名’

例如:查看 studen 表的行数

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

img

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

命令格式:truncate ‘表名’

例如:清空表 tb2 的数据

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

img

说明数据已经清空。

注意

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

文章分类
后端
文章标签