实验二十二部署HBase实验指导:22.1实验目的1.掌握HBase基础简介及体系架构;2. 掌握HBase集群安装部署及HBaseShell的一些常用命令的使用;3. 了解HBase和HDFS及Zookeeper之间的关系22.2实验要求1. 巩固学习下实验一、实验二、实验二十;2. 部署一个主节点,三个子节点的HBase集群,并引用外部Zookeeper;3. 进入HBaseShell通过命令练习创建表、插入数据及查询等命令22.3实验原理简介:HBase是基于Hadoop的开源分布式数据库,它以Google的BigTable为原型,设计并实现了具有高可靠性、高性能、列缩、实时读写的分布式数据库系统,它是基于列而不是基于行的模式,适合存储非结构化数据体系结构:HBase是一个分布式的数据库,使用Zookeeper管理集群,使用HDFS作为底层存储,它由HMaster和HRegionServer组成,遵从主从服务器架构HBase将逻辑上的表划分成多个数据块即HRegion,存储在HRegionServer中HMaster负责管理所有的HRegionServer,它本身并不存储任何数据,而只是存储数据到HRegionServer的映射关系(元数据)°HBase的基本架构如图22-1所示:图22-1HBase的基本架构22.4实验步骤本实验主要演示HBase的安装部署过程,因HBase依赖于HDFS和Zookeeper,所以该实验需要分为四个步骤。
首先,配置SSH无密钥登录(参考实验1)其次,安装Hadoop集群(参考实验2)然后,安装Zookeeper集群(参考实验20)最后,修改HBase配置文件,具体内容如下:将HBase安装包hbase.1.1.2.tar.gz解压^U/usr/cstor目录,并将hbase.1.1.2目录改名为hbase,且所属用户改成root:root[root@master~]#tar-zxvfhbase.1.1.2.tar.gz-c/usr/cstor/hbase[root@master~]#mv/usr/cstor/hbase.1.1.2/usr/cstor/hbase[root@master~]#chown-Rroot:root/usr/cstor/hbase进入解压目录下,配置conf目录下的/usr/cstor/hbase/conf/hbase-env.sh文件,设置如下:#Java安装路径exportJAVA_HOME=/usr/local/jdk1.7.0_79(需根据实际情况指定)#不使用HBase自带的ZookeeperexportHBASE_MANAGES_ZK=false配置conf目录下的hbase-site.xml文件,设置如下:hbase.rootdirhdfs://master:8020/hbasehbase.cluster.distributedtruehbase.zookeeper.quorumslave1,slave2,slave3hbase.tmp.dir/usr/cstor/hbase/data/tmp配置conf目录下的regionservers文件,设置如下:slave1slave2slave3配置完成后,将hbase目录传输到集群的其它节点。
scp-r/usr/cstor/hbaseroot@slave1:/usr/cstorscp-r/usr/cstor/hbaseroot@slave2:/usr/cstorscp-r/usr/cstor/hbaseroot@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通过以下命令进入HBaseshelI界面:./hbaseshell在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-3HBaseShelI界面图图22-4实验操作:步骤1:搭建Hadoop集群1. 配置免密登录ssh-keygenssh-copy-idX2. 在master服务器上确定存在hadoop安装目录[root@master~]#ls/usr/cstor/hadoop2.1确认集群服务器之间可SSH免密登录使用ssh工具登录到每一台服务器,执行命令ssh主机名,确认每台集群服务器均可SSH免密登录若无法SSH免密登录,请参照实验一的1.4.4节进行配置2.2修改HDFS配置文件(1) 设置JDK安装目录编辑文件"/usr/cstor/hadoop/etc/hadoop/hadoop-env.sh",找到如下一行:exportJAVA_HOME=${JAVA_HOME}将这行内容修改为:exportJAVA_HOME=/usr/local/jdk1.7.0_79/这里的“/usr/local/jdk1.7.0_79/”就是JDK安装位置,如果不同,请根据实际情况更改2) 指定HDFS主节点编辑文件“/usr/cstor/hadoop/etc/hadoop/core-site.xml",将如下内容嵌入此文件里最后两行的标签之间:hadoop.tmp.dir/usr/cstor/hadoop/cloudfs.defaultFShdfs://master:8020(3) 拷贝集群配置至其它服务器在master机上执行下列命令,将配置好的hadoop拷贝至slaveX、client。
[root@master~]#cat~/data/2/machinesslave1salve2slave3client[root@master〜]#forxin'cat〜/data/2/machines';doecho$x;scp-r/usr/cstor/hadoop/etc$x:/usr/cstor/hadoop;done;2.3启动HDFS在master服务器上格式化主节点:[root@master〜]#hdfsnamenode-format配置slaves文件,将localhost修改为slave1~3:[root@master〜]#vi/usr/cstor/hadoop/etc/hadoop/slavesslave1slave2slave3统一启动HDFS:[root@master〜]#cd/usr/cstor/hadoop[root@masterhadoop]#sbin/start-dfs.sh2.4通过查看进程的方式验证HDFS启动成功分别在master、slave1〜3四台机器上执行如下命令,查看HDFS服务是否已启动[root@mastersbin]#jps#jps查看java进程若启动成功,在master上会看到类似的如下信息:6208NameNode6862Jps6462SecondaryNameNode而在slave1、slave2、slave3上会看到类似的如下信息:6208DataNode6862Jps步骤2:修改zookeeper配置修改ZooKeepe啲配置文件,步骤如下:进入解压目录下,把conf目录下的zoo_sample.cfg复制成zoo.cfg文件。
cd/usr/cstor/zookeeper/confcpzoo_sample.cfgzoo.cfg打开zoo.cfg并修改和添加配置项目,如下:# ThenumberofmillisecondsofeachticktickTime=2000# Thenumberofticksthattheinitial# synchronizationphasecantakeinitLimit=10# Thenumberofticksthatcanpassbetween# sendingarequestandgettinganacknowledgementsyncLimit=5# theportatwhichtheclientswillconnectclientPort=2181# thedirectorywherethesnapshotisstored.dataDir=/usr/cstor/zookeeper/datadataLogDir=/usr/cstor/zookeeper/logserver.1=slave1:2888:3888server.2=slave2:2888:3888server.3=slave3:2888:3888新建两个目录。
mkdir/usr/cstor/zookeeper/datamkdir/usr/cstor/zookeeper/log将/usr/cstor/zookeeper目录传到另外两台机器上scp-r/usr/cstor/zookeeperroot@slave2:/usr/cstorscp-r/usr/cstor/zookeeperroot@slave3:/usr/cstor分别在三个节点上的/usr/local/zookeeper/data目录下创建一个文件:myidvi/usr/cstor/zookeeper/data/myid分别在myid上按照配置文件的server中id的数值,在不同机器上的该文件中填写相应过的值,如下:slavel的myid内容为1slave2的myid内容为2slave3的myid内容为3步骤3:启动zookeeper启动ZooKeeper集群,进入客户端验证部署完成分别在三个节点进入bin目录,启动ZooKe。