当前位置:   article > 正文

大数据技术Hbase列数据库——topic2

大数据技术Hbase列数据库——topic2

实验十三

练习一

1.创建一个命名空间并查看

create_namespace 'bigdata'
list_namespace
  • 1
  • 2

2.在该命名空间中创建一个学生表(包含两个列簇),并查看该表的详细信息

create 'bigdata:student','info1','info2'
desc 'bigdata:student'
  • 1
  • 2

3.为学生表再增加一个列簇,VERSIONS为3

alter 'bigdata:student',{NAME=>'info3',VERSION=>3}
  • 1

4.在默认的命名空间下创建一个动物表(包含两个列簇,这两个列簇的VERSION为5)

create 'animal',{NAME=>'info1',VERSION=>5}{NAME=>'info2',VERSION=>5}
  • 1

5.在Web界面查看自己创建的两张表的信息

192.168.13.6:16010
  • 1

在执行前需要先关闭防火墙,否则会失败
6.删除动物表中的任一列簇

alter 'animal',{NAME=>'info2',METHOD=>'delete'}
或
alter 'animal''delete'=>'info2'
  • 1
  • 2
  • 3

HBase 表至少要包含一个列族,因此当表中只有一个列族时,无法将其删除。

练习二

1.使用hbase shell创建员工表,包含员工基本信息(员工姓名,年龄,家庭地址,身份证号)和公司信息(公司名称,入职时间,薪水)两个列簇

create 'employee','base_Info','firm_Info'
  • 1

2.为员工表添加4行数据

put 'employee', 'row1', 'base_info:name', 'Alice'  
put 'employee', 'row1', 'base_info:age', '30'  
put 'employee', 'row1', 'base_info:address', 'HN'  
put 'employee', 'row1', 'base_info:id', '4123' 
put 'employee', 'row1', 'firm_info:name', 'HUAWEI'  
put 'employee', 'row1', 'firm_info:time', '2018-03-08'  
put 'employee', 'row1', 'firm_info:wage', '15000'  

put 'employee', 'row2', 'base_info:name', 'nini'  
put 'employee', 'row2', 'base_info:age', '20'  
put 'employee', 'row2', 'base_info:address', 'ZD'  
put 'employee', 'row2', 'base_info:id', '4113' 
put 'employee', 'row2', 'firm_info:name', 'XIAOMI'  
put 'employee', 'row2', 'firm_info:time', '2020-05-06'  
put 'employee', 'row2', 'firm_info:wage', '12000'  

put 'employee', 'row3', 'base_info:name', 'chaochao'  
put 'employee', 'row3', 'base_info:age', '22'  
put 'employee', 'row3', 'base_info:address', 'BJ'  
put 'employee', 'row3', 'base_info:id', '4321' 
put 'employee', 'row3', 'firm_info:name', 'CCTV'  
put 'employee', 'row3', 'firm_info:time', '2021-10-08'  
put 'employee', 'row3', 'firm_info:wage', '9000' 

put 'employee', 'row4', 'base_info:name', 'Ken'  
put 'employee', 'row4', 'base_info:age', '25'  
put 'employee', 'row4', 'base_info:address', 'HB'  
put 'employee', 'row4', 'base_info:id', '4567' 
put 'employee', 'row4', 'firm_info:name', 'DELL'  
put 'employee', 'row4', 'firm_info:time', '2019-06-10'  
put 'employee', 'row4', 'firm_info:wage', '8000' 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

3.利用scan查询整个表中的数据

scan 'employee'
  • 1

4.获取任意一行的信息

get 'employee','row1'
  • 1

5.获取任意一个列簇的信息

scan 'employee',{COLUMN=>'firm_info'}
  • 1

6.获取任意一列的信息

scan 'employee',{COLUMN=>'firm_info:name'}
  • 1

7.查询第2-3行的数据

scan 'employee', {STARTROW => 'row2',STOPROW => 
'row4'}
  • 1
  • 2

练习三

1.请创建一个student表,其中包含address和score两个列簇,具体结构如下所示:
在这里插入图片描述

请使用HBase Shell完成以下需求:
1、创建表student有两个列族address和score。

create 'student','address','score'
  • 1

2、向student表中添加上表中的数据。

put 'student', 'zhangsan', 'address:province', 'henan'  
put 'student', 'zhangsan', 'address:city', 'zhengzhou'  
put 'student', 'zhangsan', 'address:street', 'dongqing'  
put 'student', 'zhangsan', 'score:java', '80'  
put 'student', 'zhangsan', 'score:hadoop', '83'  
put 'student', 'zhangsan', 'score:math', '85'  

put 'student', 'lisi', 'address:province', 'beijing'  
put 'student', 'lisi', 'address:city', 'beijng'  
put 'student', 'lisi', 'address:street', 'changan'  
put 'student', 'lisi', 'score:java', '81' 
put 'student', 'lisi', 'score:hadoop', '84'  
put 'student', 'lisi', 'score:math', '89' 

scan 'student' 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3、查询“zhangsan”的地址(address)。

scan 'Student', 'zhangsan', {COLUMN => 'address'}  
get 'student', 'zhangsan','address'  
  • 1
  • 2

4、查询“lisi”的“hadoop”成绩 。

scan 'Student', 'lisi', {COLUMN => 'score:hadoop'}  
get 'Student','lisi','score:hadoop'
  • 1
  • 2

5、查询student表中score列簇的数据。

scan 'student', {COLUMN => 'score:'}  
  • 1

6、查询值等于 80的所有数据。

scan 'student', {FILTER => "ValueFilter(=, 'binary:80')"}  
  • 1

7、查询值包含 beijing 的所有数据。

scan 'student', {FILTER => "ValueFilter(=, 'substring:beijing')"}  
  • 1

8、查询列名中的前缀为pro 的数据。

scan 'student', {FILTER => "ColumnPrefixFilter('pro')"} 
  • 1

9、查询rowkey前缀为li的数据。

scan 'student', {FILTER => "RowFilter(=, 'prefixfilter:li')"}  
  • 1

10、查询列名前缀为ci并且列值中包含zheng的数据。

scan 'student', {FILTER => "ColumnPrefixFilter('ci') AND ValueFilter(=, 'substring:zheng')"
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/699136
推荐阅读
相关标签
  

闽ICP备14008679号