阿里云ECS7安装搭建:hbase1.3.3分布式集群

简介

  • Apache HBase是一种Key/Value系统,它运行在HDFS之上。和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapReduce任务;
  • Hbase适合用来进行大数据的实时查询,支持增删查改,但不支持复杂的统计功能,统计功能一般使用Hive;
  • 安装HBase分布式集群所需的前提环境:
  1. Zookeeper集群:可自行搭建一个zookeeper集群,同时也可以使用hbase自带的zookeeper(本文使用自带的zookeeper);
  2. Hadoop分布式集群(可参考博主上一篇博客):阿里云ECS7安装搭建:hadoop2.7.6分布式集群;
  • 下载HBase1.3.3版本安装包:http://mirror.bit.edu.cn/apache/hbase/1.3.3/hbase-1.3.3-bin.tar.gz

实践

  • 搭建流程,在hadoop-master主服务器上安装hbase,然后将其整套配置文件复制到各个从节点,这里实验环境只使用两台服务器搭建hbase集群:hadoop-master和hadoop-slave,两台服务器都已经设置了互相免密登录(正式生产环境建议使用至少4台服务器),还没配置的可以参考博主的上一篇hadoop集群搭建博客;
  • 首先,将hbase-1.3.3-bin.tar.gz的压缩安装包放到hadoop-master服务器上
#新建文件夹
$ mkdir /data/hadoop/hbase

#上传hbase1.3.3压缩文件在此目录下,然后进行解压
$ tar -xzvf hbase-1.3.3-bin.tar.gz

#重命名
$ mv hbase-1.3.3 hive

阿里云ECS7安装搭建:hbase1.3.3分布式集群_第1张图片

  • 然后,配置Hbase环境变量,配置方法和hadoop差不多,所有的主从节点都要配置;
#切换root用户
$ su root

#编辑配置文件
$ vim /etc/profile

#新增hbase环境变量,因为hadoop-master服务器已经安装了hadoop所以已经存在hadoop环境变量
export JAVA_HOME=/root/tools/jdk1.8.0_152
export HADOOP_HOME=/data/hadoop/hadoop/hadoop
export HBASE_HOME=/data/hadoop/hbase/hbase
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin

#使配置文件生效
$ source /etc/profile
  • 切换目录:cd /data/hadoop/hbase/hbase/conf;
  • 配置目录下hbase相关的三个文件:hbase-env.sh;hbase-site.xml;regionservers
  • 配置hbase-env.sh文件:vim hbase-env.sh
#配置jdk环境
export JAVA_HOME=/root/tools/jdk1.8.0_152

#配置hadoop环境
export HADOOP_HOME=/data/hadoop/hadoop/hadoop

#配置hbase环境
export HBASE_HOME=/data/hadoop/hbase/hbase

#指定hbase配置文件路径
export HBASE_CLASSPATH=/data/hadoop/hbase/hbase/conf

#配置zookeeper,true则说明使用hbase内置的zookeeper,false则说明使用单独的zookeeper集群
export HBASE_MANAGES_ZK=true

#配置hbase日志存放目录
export HBASE_LOG_DIR=/data/hadoop/hbase/hbase/logs
  •  配置hbase-site.xml文件:vim hbase-site.xml

	
	
		hbase.rootdir
		hdfs://hadoop-master:9000/hbase
	
		
	
	
		hbase.cluster.distributed
		true
	
		
	
	
		hbase.master
		hadoop-master:60000
	
		
	
	
		hbase.zookeeper.quorum
		hadoop-master,hadoop-slave
	
  •  配置regionservers文件:vim regionservers
#加入regionserver节点列表
hadoop-master
hadoop-slave
  •  将hadoop-master上的所有文件复制到从节点上的对应的目录下:
$ scp -r /data/hadoop/hbase hadoop-slave://data/hadoop/hbase
  •  启动、关闭和重启hbase(都在主节点hadoop-master上运行):
#启动
$ start-hbase.sh

#关闭
$ stop-hbase.sh

#重启hbase(内置zookeeper)
$  stop-hbase.sh >> stop-all.sh >> start-all.sh >> start_hbase.sh
  • 查看相关启动信息,master主节点上如果启动成功,则会有如下进程:

 阿里云ECS7安装搭建:hbase1.3.3分布式集群_第2张图片

阿里云ECS7安装搭建:hbase1.3.3分布式集群_第3张图片

相关进程说明:

$	21216 HQuorumPeer      		        >> zookeeper进程
$	21314 HMaster				>> hbase进程
$	20114 NameNode				>> hadoop主节点进程
$	21458 HRegionServer			>> hbase的regionserver数据分区进程
$	20419 SecondaryNameNode		        >> hadoop进程
$	20681 NodeManager			>> hadoop进程(如果不作为数据节点则没有该进程)
$	21689 Jps
$	20249 DataNode				>>hadoop进程(如果不作为数据节点则没有该进程)
$	20575 ResourceManager		        >>hadoop进程

		从节点会有如下进程:
$	21481 HQuorumPeer			>>zookeeper进程
$	21849 Jps			
$	21178 DataNode				>>hadoop的数据节点进程
$	21292 NodeManager			>>hadoop进程
$	21614 HRegionServer			>>hbase进程
  • 如果没有出现上面的相关进程,则查询相对应的路径下的日志文件,具体问题具体分析解决:
$ cd /data/hadoop/hbase/hbase/logs
$ vim hbase-hadoop-master-hadoop-master.log
$ vim vim hbase-hadoop-regionserver-hadoop-master.log 
$ vim hbase-hadoop-zookeeper-hadoop-master.log
  • hbase启动成功,执行命令,操作hbase数据仓库:hbase shell
#常用的hbase操作命令
#命令帮助
$ help

#对应命令帮助
$ help 'create'
$ help 'scan'
$ help 'delete'

#查看所有表
$ list

#扫描表信息
$ scan 'sixmonth'

#新增表,由于hbase属于列式存储所以创建方式有所不同,详情可参照其他博客
$ create 'sixmonth','user'

#删除表
$ disable 'sixmonth'
$ drop 'sixmonth'

#插入数据,以下插入两行数据
$ put 'sixmonth','0001', 'user:name','admin'
$ put 'sixmonth','0001', 'user:sex','woman'
$ put 'sixmonth','0002', 'user:name','test'
$ put 'sixmonth','0002', 'user:sex','man'

注意事项

  • hbase启动和停止顺序:
内置zookeeper启动:hadoop >> hbase
内置zookeeper停止:hbase >> hadoop
外用zookeeper启动:hadoop >> zookeeper >> hbase
外用zookeeper停止:hbase >> zookeeper >> hadoop
  • 使用hbase的内置zookeeper作为集群管理者需谨慎,在断网或服务器不稳定时,无法进行有效维护,连进程都没办法单独启动,必须重启hbase才能重启,所以,除了在实验环境下使用内置的zookeeper外,一般都自行搭建独立的zookeeper集群;
  • 由于hbase需要外用连接,所以阿里云服务器需要开通以下端口:2181;16010;
  • hbase环境搭建之后,如果需要使用java客户端调用连接,可参考博主另一篇博文:

总结

  1. hbase作为hadoop大数据生态的一员,在对数据的实时查询方面发挥不可替代的作用,一般安装了hadoop之后,相对应配套安装hbase,方便数据操作;
  2. 实践是检验认识真理性的唯一标准,自己动手,丰衣足食~~

你可能感兴趣的:(hadoop)