前置条件:创建一个学生表,信息为组员的信息
下载HBASE
https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.5.5/hbase-2.5.5-bin.tar.gz
解压到/local下
改个名为hbase
添加访问目录的权限
配置环境变量
查看版本,报错
解决一个问题
HBASE配置(伪分布式)
export JAVA_HOME=/usr/lib/jvm/default-java
export HBASE_CLASSPATH=/usr/local/hadoop/conf
export HBASE_MANAGE_ZK=true
配置hbase-site.xml
可以直接把这段替换原来的代码,注意注释上面有一个多的<configuration>要删掉
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
启动hadoop、hbase,并查看进程
启动shell并创建一个学生表
查看一手
接着插入数据并查看
继续插入剩下的数据
接着创建一个课程表
这里我们在info这个列族第一行中插入课程名为JAVA,学分为3
接着再随便编两条
最后创建一个选课表(ps:Hbaseshell总是莫名奇妙卡住,重新开一个终端就好)
评分点一(C):
(1)依据上述数据,设计一张 HBase 表(需包含上述三张关系表的信息,结构不限),并完成插入数据。
就是刚才创建的三张表,不过插入数据的话可能会现场提问,多实操。
评分点二(A/B):五选二
(2)列出 HBase 所有的表的相关信息,例如表名;
list
![](https://img-blog.csdnimg.cn/f4d77697cf394abfaf2e6299e0f28818.png)
(3)输出指定的表的所有记录数据;
scan
![](https://img-blog.csdnimg.cn/fc009d59addd4f4e9fdc803500b4f952.png)
(4)向已经创建好的表添加列族或列;
创建一个测试表
添加列族 alter
可以看到刚才添加的新列族
现在新列族是一个列,往new liezu里添加信息,它就变成列族了
(5)向已经创建好的表删除指定的列族或列;(先做好备份)
先插入一条数据
delete 删除new lie
(6)清空指定的表的所有记录数据;(先做好备份)
这里先禁用表test,然后使用命令 truncate 清空表,重新启用test,然后查看表
评分点四:随机提问
个人回答(正确回答+2 分,回答错误-1 分),范围包括但不限于以下内容:
(7)统计表的行数
count
![](https://img-blog.csdnimg.cn/43e87b80e9dd4400984039ff342a7764.png)
(8)查询指定行键范围数据
scan 例如我查询 SC表中1、2行的数据,条件是左闭右开的
![](https://img-blog.csdnimg.cn/e1d301cdeb5044dc8b6a441e01bc13a0.png)
(9)删除表(先做好备份)
drop 先禁用后删除表
(10)比较时间戳
这个真的能在HBASEshell里实现吗?我翻了一遍命令,没有找到,应该是在api里实现。