实验二十二 部署HBase

26 篇文章 10 订阅
3 篇文章 0 订阅

实验指导:

22.1 实验目的

1. 掌握HBase基础简介及体系架构;

2. 掌握HBase集群安装部署及HBase Shell的一些常用命令的使用;

3. 了解HBase和HDFS及Zookeeper之间的关系。

22.2 实验要求

1. 巩固学习下实验一、实验二、实验二十;

2. 部署一个主节点,三个子节点的HBase集群,并引用外部Zookeeper;

3. 进入HBase Shell通过命令练习创建表、插入数据及查询等命令。

22.3 实验原理

简介:HBase是基于Hadoop的开源分布式数据库,它以Google的BigTable为原型,设计并实现了具有高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统,它是基于列而不是基于行的模式,适合存储非结构化数据。

体系结构:HBase是一个分布式的数据库,使用Zookeeper管理集群,使用HDFS作为底层存储,它由HMaster和HRegionServer组成,遵从主从服务器架构。HBase将逻辑上的表划分成多个数据块即HRegion,存储在HRegionServer中。HMaster负责管理所有的HRegionServer,它本身并不存储任何数据,而只是存储数据到HRegionServer的映射关系(元数据)。HBase的基本架构如图22-1所示:

图22-1 HBase的基本架构

22.4 实验步骤

本实验主要演示HBase的安装部署过程,因HBase依赖于HDFS和Zookeeper,所以该实验需要分为四个步骤。

首先,配置SSH无密钥登录(参考实验1)。

其次,安装Hadoop集群(参考实验2)。

然后,安装Zookeeper集群(参考实验20)。

最后,修改HBase配置文件,具体内容如下:

将HBase 安装包hbase.1.1.2.tar.gz解压到/usr/cstor目录,并将hbase.1.1.2目录改名为hbase,且所属用户改成root:root。

[root@master ~]#tar -zxvf hbase.1.1.2.tar.gz -c /usr/cstor/hbase
[root@master ~]#mv /usr/cstor/hbase.1.1.2 /usr/cstor/hbase
[root@master ~]#chown -R root:root /usr/cstor/hbase

进入解压目录下,配置conf目录下的/usr/cstor/hbase/conf/hbase-env.sh文件,设置如下:

#Java安装路径 export JAVA_HOME=/usr/local/jdk1.7.0_79 (需根据实际情况指定) #不使用HBase自带的Zookeeper

export HBASE_MANAGES_ZK=false

配置conf目录下的hbase-site.xml文件,设置如下:

<configuration>
   <property>
      <name>hbase.rootdir</name>
      <value>hdfs://master:8020/hbase</value>
   </property>
   <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
   </property>
   <property>
      <name>hbase.zookeeper.quorum</name>
      <value>slave1,slave2,slave3</value>
   </property>
   <property>
      <name>hbase.tmp.dir</name>
      <value>/usr/cstor/hbase/data/tmp</value>
   </property>
</configuration>

配置conf目录下的regionservers文件,设置如下:

slave1
slave2
slave3

配置完成后,将hbase目录传输到集群的其它节点。

scp -r /usr/cstor/hbase root@slave1:/usr/cstor
scp -r /usr/cstor/hbase root@slave2:/usr/cstor
scp -r /usr/cstor/hbase root@slave3:/usr/cstor

接着,启动HBase,并简单验证HBase,如下:

在主节点master进入hbase解压目录的bin目录,启动HBase服务进程(已启动Zookeeper):

[root@master ~]#cd /usr/cstor/hbase/bin
[root@master ~]#./start-hbase.sh

启动信息如图22-2所示:

图22-2

通过以下命令进入HBase shell界面:

./hbase shell

在shell里创建表:

create 'testhbase' , 'f1'

查询所有表名:

list

查看表结构信息:

describe 'testhbase'    

在shell里插入数据:

put 'testhbase', '001', 'f1:name', 'aaa'

在shell里查询:

scan 'testhbase'

删除表,先disable再drop:

disable 'testhbase'
drop 'testhbase'

22.5 实验结果

HBase启动成功后,进入shell界面,用shell命令简单操作HBase数据库验证HBase成功安装,验证结果如图22-3所示。

图22-3 HBase Shell界面图

HBase安装成功后,可以通过访问HBase WEB页面(http://master:16010)来查看HBase集群的一些基本情况,如图22-4所示。

图22-4

实验操作:

步骤1:搭建Hadoop集群

1.配置免密登录

ssh-keygen

ssh-copy-id X

2.在master服务器上确定存在hadoop安装目录

[root@master ~]# ls /usr/cstor/hadoop

2.1 确认集群服务器之间可SSH免密登录
使用ssh工具登录到每一台服务器,执行命令ssh 主机名,确认每台集群服务器均可SSH免密登录。若无法SSH免密登录,请参照实验一的1.4.4节进行配置。

2.2 修改HDFS配置文件
(1)设置JDK安装目录

编辑文件“/usr/cstor/hadoop/etc/hadoop/hadoop-env.sh”,找到如下一行:
export JAVA_HOME=${JAVA_HOME}
将这行内容修改为:
export JAVA_HOME=/usr/local/jdk1.7.0_79/
这里的“/usr/local/jdk1.7.0_79/”就是JDK安装位置,如果不同,请根据实际情况更改。

(2)指定HDFS主节点

编辑文件“/usr/cstor/hadoop/etc/hadoop/core-site.xml”,将如下内容嵌入此文件里最后两行的<configuration></configuration>标签之间:

<property>
<name>hadoop.tmp.dir</name>
<value>/usr/cstor/hadoop/cloud</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>

(3)拷贝集群配置至其它服务器

在master机上执行下列命令,将配置好的hadoop拷贝至slaveX、client。

[root@master ~]# cat ~/data/2/machines
slave1
salve2
slave3
client
[root@master ~]# for x in `cat ~/data/2/machines` ; do echo $x ; scp -r /usr/cstor/hadoop/etc $x:/usr/cstor/hadoop ; done;

2.3 启动HDFS
在master服务器上格式化主节点:

[root@master ~]# hdfs namenode -format

配置slaves文件,将localhost修改为slave1~3:

[root@master ~]# vi /usr/cstor/hadoop/etc/hadoop/slaves
slave1
slave2
slave3
统一启动HDFS:
[root@master ~]#cd /usr/cstor/hadoop
[root@master hadoop]# sbin/start-dfs.sh 

2.4 通过查看进程的方式验证HDFS启动成功
分别在master、slave1~3四台机器上执行如下命令,查看HDFS服务是否已启动。

[root@master sbin]# jps #jps查看java进程

若启动成功,在master上会看到类似的如下信息:

6208 NameNode
6862 Jps
6462 SecondaryNameNode 

而在slave1、slave2、slave3上会看到类似的如下信息:

6208 DataNode
6862 Jps

步骤2:修改zookeeper配置

 修改ZooKeeper的配置文件,步骤如下:

进入解压目录下,把conf目录下的zoo_sample.cfg 复制成zoo.cfg文件。

cd /usr/cstor/zookeeper/conf
cp zoo_sample.cfg zoo.cfg

打开zoo.cfg并修改和添加配置项目,如下:

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the port at which the clients will connect
clientPort=2181
# the directory where the snapshot is stored.
dataDir=/usr/cstor/zookeeper/data
dataLogDir=/usr/cstor/zookeeper/log
server.1=slave1:2888:3888
server.2=slave2:2888:3888
server.3=slave3:2888:3888

新建两个目录。

mkdir /usr/cstor/zookeeper/data
mkdir /usr/cstor/zookeeper/log

将/usr/cstor/zookeeper目录传到另外两台机器上。

scp -r /usr/cstor/zookeeper root@slave2:/usr/cstor
scp -r /usr/cstor/zookeeper root@slave3:/usr/cstor

分别在三个节点上的/usr/local/zookeeper/data目录下创建一个文件:myid。

vi /usr/cstor/zookeeper/data/myid

分别在myid上按照配置文件的server.中id的数值,在不同机器上的该文 件中填写相应过的值,如下:

slave1 的myid内容为1

slave2 的myid内容为2

slave3 的myid内容为3  

步骤3:启动zookeeper

 启动ZooKeeper集群,进入客户端验证部署完成。
分别在三个节点进入bin目录,启动ZooKeeper服务进程:
cd /usr/cstor/zookeeper/bin
./zkServer.sh start

在各机器上依次执行脚本,查看ZooKeeper状态信息,两个节点是follower状态,一个节点是leader状态:
./zkServer.sh status

步骤4:修改HBase配置

将HBase 安装包hbase.1.1.2.tar.gz解压到/usr/cstor目录,并将hbase.1.1.2目录改名为hbase,且所属用户改成root:root。

[root@master ~]#tar -zxvf hbase.1.1.2.tar.gz -c /usr/cstor/hbase
[root@master ~]#mv /usr/cstor/hbase.1.1.2 /usr/cstor/hbase
[root@master ~]#chown -R root:root /usr/cstor/hbase

进入解压目录下,配置conf目录下的/usr/cstor/hbase/conf/hbase-env.sh文件,设置如下:

#Java安装路径 export JAVA_HOME=/usr/local/jdk1.7.0_79 (需根据实际情况指定)

#不使用HBase自带的Zookeeper

export HBASE_MANAGES_ZK=false

#不使用HBase自带的Zookeeper

export HBASE_MANAGES_ZK=false

配置conf目录下的hbase-site.xml文件,设置如下:

<configuration>
   <property>
      <name>hbase.rootdir</name>
      <value>hdfs://master:8020/hbase</value>
   </property>
   <property>
      <name>hbase.cluster.distributed</name>
      <value>true</value>
   </property>
   <property>
      <name>hbase.zookeeper.quorum</name>
      <value>slave1,slave2,slave3</value>
   </property>
   <property>
      <name>hbase.tmp.dir</name>
      <value>/usr/cstor/hbase/data/tmp</value>
   </property>
</configuration>

配置conf目录下的regionservers文件,设置如下:

slave1
slave2
slave3

配置完成后,将hbase目录传输到集群的其它节点。

scp -r /usr/cstor/hbase root@slave1:/usr/cstor
scp -r /usr/cstor/hbase root@slave2:/usr/cstor
scp -r /usr/cstor/hbase root@slave3:/usr/cstor

步骤5:启动HBase

在主节点master进入hbase解压目录的bin目录,启动HBase服务进程(已启动Zookeeper):

[root@master ~]#cd /usr/cstor/hbase/bin
[root@master ~]#./start-hbase.sh

步骤6:进入HBase shell

步骤7:创建testhbase表

步骤8:向表中插入数据

步骤9:删除testhbase表

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值