云计算与大数据实验七 HBase的安装与基本操作

一、实验目的

  1. 回顾HadoopZookeeper安装与配置

  2. 掌握HBase安装与配置

  3. 理解HBase工作原理

  4. 掌握HBase表的基本操作

二、实验内容

  1. HBase安装与配置

  2. 使用HBase shell指令创建表

  3. 使用HBase shell命令添加/删除数据

  4. 使用命令删除表

三、实验步骤

(一)HBase安装与配置

HBase安装

HBase的安装也分为三种,单机版、伪分布式、分布式;我们先来安装单机版。

单机版安装

首先我们去官网下载HBase的安装包;

接下来,将压缩包解压缩到你想安装的目录

mkdir /app
cd /opt
ulimit -f 1000000
tar -zxvf hbase-2.1.1-bin.tar.gz -C /app

安装单机版很简单,我们只需要配置JDK的路径即可,我们将JDK的路径配置到conf/下的hbase-env.sh中。

我们先输入echo $JAVA_HOME来复制JAVA_HOME的路径,以方便之后的配置:

接着我们编辑HBase conf目录下的hbase-env.sh文件,将其中的JAVA_HOME指向到你Java的安装目录,最后保存设置:

vim /app/hbase-2.1.1/conf/hbase-env.sh

 

然后编辑hbase-site.xml文件,在<configuration>标签中添加如下内容:

<configuration>
  <property>
       <name>hbase.rootdir</name>
       <value>file:///root/data/hbase/data</value>
  </property>
  <property>
       <name>hbase.zookeeper.property.dataDir</name>
       <value>/root/data/hbase/zookeeper</value>
  </property>
  <property>    
  <name>hbase.unsafe.stream.capability.enforce</name>
        <value>false</value>
  </property>
</configuration>

以上各参数的解释:

  • hbase.rootdir:这个目录是region server的共享目录,用来持久化HbaseURL需要是'完全正确'的,还要包含文件系统的scheme。例如,要表示hdfs中的 /hbase目录,namenode 运行在namenode.example.org9090端口。则需要设置为hdfs://namenode.example.org:9000 /hbase。默认情况下Hbase是写到/tmp的。不改这个配置,数据会在重启的时候丢失;
  • hbase.zookeeper.property.dataDirZooKeeperzoo.conf中的配置。快照的存储位置,默认是:${hbase.tmp.dir}/zookeeper
  • hbase.unsafe.stream.capability.enforce:控制HBase是否检查流功能(hflush / hsync),如果您打算在rootdir表示的LocalFileSystem上运行,那就禁用此选项。

配置好了之后我们就可以启动HBase了,在启动之前我们可以将Hbasebin目录配置到/etc/profile中,这样更方便我们以后操作。 在etc/profile的文件末尾添加如下内容:

# SET HBASE_enviroment
HBASE_HOME=/app/hbase-2.1.1
export PATH=$PATH:$HBASE_HOME/bin

HBASE_HOME为你自己本机Hbase的地址。

不要忘了,source /etc/profile使刚刚的配置生效。

接下来我们就可以运行HBase来初步的体验它的功能了:

在命令行输入start-hbase.sh来启动HBase,接着输入jps查看是否启动成功,出现了HMaster进程即表示启动成功了。

启动成功之后,咱们就可以对Hbase进行一些基本的操作了。

根据上述步骤安装配置好HBase数据库,并启动成功。

请注意,HBase非常消耗资源,所以你在长时间没使用命令行后台会回收资源,如果你想保持环境不被注销,请在弹出延时窗口时点击延时,并且保持操作命令行,这样可以保持你的环境一直持续。

相关代码:

1.	#创建 app 目录
2.	mkdir /app
3.	#进入 /opt 目录下
4.	cd /opt
5.	#解压 Hbase 压缩包
6.	tar -zxvf hbase-2.1.1-bin.tar.gz -C /app
7.	#编辑hbase-env.sh配置文件
8.	vi /app/hbase-2.1.1/conf/hbase-env.sh
9.	
10.	#进入后配置配置
11.	export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111
12.	
13.	#编辑hbase-site.xml配置文件
14.	vi /app/hbase-2.1.1/conf/hbase-site.xml
15.	
16.	<configuration>
17.	  <property>
18.	       <name>hbase.rootdir</name>
19.	       <value>file:///root/data/hbase/data</value>
20.	  </property>
21.	  <property>
22.	       <name>hbase.zookeeper.property.dataDir</name>
23.	       <value>/root/data/hbase/zookeeper</value>
24.	  </property>
25.	  <property>     
26.	  <name>hbase.unsafe.stream.capability.enforce</name>
27.	        <value>false</value>
28.	  </property>
29.	</configuration>
30.	
31.	
32.	
33.	#配置Hbase环境变量
34.	vi /etc/profile
35.	
36.	HBASE_HOME=/app/hbase-2.1.1
37.	export PATH=$PATH:$HBASE_HOME/bin
38.	
39.	#是环境变量生效
40.	source /etc/profile
41.	
42.	#启动HBase(环境变量配置好后)
43.	start-hbase.sh

(二)使用HBase shell指令创建表

Hbase shell操作

启动HBase之后,我们输入hbase shell进入到Hbase shell命令行窗口:

在这里我们输入hbase shell会启动一个加入了一些Hbase特有命令的JRuby JRB解释器,输入help然后按回车键可以查看已分组的shell环境的命令列表。

现在,我们来创建一个简单的表。

要新建一个表,首先必须要给它起个名字,并为其定义模式,一个表的模式包含表的属性和列族的列表。

例如:我们想要新建一个名为test的表,使其中包含一个名为data的列,表和列族属性都为默认值,则可以使用如下命令:

创建完毕之后我们可以输入list来查看表是否创建成功:

编程要求

然后继续在HBase中创建两张表,表名分别为:dept,emp,列都为:data

相关代码:

1.	# 启动 HBase
2.	start-hbase.sh
3.	# 进入 hbase shell
4.	hbase shell
5.	create 'test','data'
6.	create 'dept','data'
7.	create 'emp','data'
8.	
9.	
10.	# 退出
11.	exit

(三)使用HBase shell命令添加/删除数据

添加数据

我们来给上一步创建的test表的列data添加一些数据:

从上面例子我们可以看出,使用put命令可以用来添加数据,使用get命令可以获取数据。

当然我们肯定还会有一个需求:查看所有的数据。

输入scan命令就可以查看所有的数据了。

删除数据、删除表

我们经常会添加错数据,想要删除然后重新添加应该怎么做呢?

删除整行数据:

deleteall 'test','row1'

指令:deleteall 表名,行名称即可删除整行数据。

有时候我们还想将创建好的表删除,怎么做呢?

为了移除test这个表,首先我们要把它设为禁用,然后在删除:

可以发现删除表需要两个步骤:

  1. disable 表名
  2. drop 表名

接着我们ctrl + c或者 输入exit退出HBase shell命令行。

编程要求

HBase中创建表mytable,列为data,并在列族data中添加三行数据:

  • 行号分别为:row1row2row3
  • 列名分别为:data:1data:2data:3
  • 值分别为:zhangsanzhangsanfengzhangwuji

预期输出:

row1column=data:1,value=zhangsan row2column=data:2,value=zhangsanfeng row3column=data:3,value=zhangwuji 3row(s)

row1column=data:1,value=zhangsan row2column=data:2,value=zhangsanfeng row3column=data:3,value=zhangwuji 3row(s)

相关代码:

1.	# 启动 HBase
2.	start-hbase.sh
3.	# 进入 hbase shell
4.	hbase shell
5.	create 'mytable','data'
6.	put 'mytable','row1','data:1','zhangsan'
7.	put 'mytable','row2','data:2','zhangsanfeng'
8.	put 'mytable','row3','data:3','zhangwuji'
9.	
10.	
11.	
12.	# 退出
13.	exit

四、实验心得 

会使用HBase shell指令创建表

会使用HBase shell命令添加/删除数据

会使用命令删除表

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
分布式数据库 分布式数据库 分布式数据库 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 是数据库技术与网络相结合的产物,分布式系统建立在 网上的 网上的 软件系统, 软件系统, 软件系统, 具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作具有高度的 透明性,在分布式数据库系统中用户是感觉不到就好像操作是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是一个统的整体,即用户不须知道关系否分割、有无副本数据库存于哪台机器及操作 是

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meteor.792

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值