公司的大数据部门一直是我非常想要进入的地带,纯粹个人爱好,但是因为当时大数据部门成立选拔人的时候,就是个小渣渣,所以完美错过,后悔脸,奉劝新人,别嫌弃累,能多学一点是一点,天知道你啥时候会有机会晋升,这次,因为部门整合,我们这边也需要分担一部分大数据的研发工作,刚好主要部分落在我们小组,组长一脸奸笑的跟我说:小伙子,你明白的,好好表现,嗯?这是有动静啊,然后这老油条就啥也不说了,没关系,反正lz喜欢大数据,这下可有用武之地了,那沉寂已久的虚拟机,开始吧,今天的内容是我为了恢复一下自己的手感,要搭建在自己的pc上练习一下,起码命令什么的要会把,后面会持续更新文章首发公众号:Java架构师联盟好了,话不多说,开始今天的正题
hbase伪分布式搭建
修改hbase-env.sh
export JAVA_HOME=/opt/software/jdk1.8export HBASE_MANAGES_ZK=true
第一个配置java环境变量
第二个配置在本机器上的HBase可以自己启动zookeeper和使用
修改reginserver
node1
修改hbase-site.xml
hbase.rootdir hdfs://node1:9000/hbase hbase.cluster.distributed true hbase.zookeeper.quorum master dfs.replication 1
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,而不是本地,如果你想存储在本地的话 ,只需要将
hdfs://node1:9000/hbase
这个配置路径改为本地即可
使用浏览器访问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无法删除:修改文件--属性