本文共 3445 字,大约阅读时间需要 11 分钟。
作者:Neshoir
HBase是基于Google BigTable论文设计的具有高可靠性,高性能,可伸缩的开源分布式数据库,其具有松散表结构、高效查询、高吞吐低延迟、多版本等特点,可应用于丰富的场景中,如用户画像、实时报表、股票K线、时空轨迹数据等。HBase底层存储是基于HDFS之上,所以使用HBase之前先搭建好Hadoop HDFS的环境,同时也需要搭建zookeeper集群服务。本文主要介绍HBase集群环境的搭建。
三台Ubuntu 14.0.4系统的机器(,,)。
各机器的JDK 1.8环境配置,配置/etc/profile文件。
各机器固定IP配置,以及hosts文件中的IP与主机名的映射。
各机器关闭防火墙,service iptables stop 。
节点机器之间配置ssh免密登录。
集群的时间要保持一致性,配置NTP。
设置系统的ulimit和nproc【建议】。
#hbase是数据库,同一时间使用很多的文件句柄,大多数Linux系统默认是1024,是不能满足的。如果不设置大一些,可能会出现下面的异常:java.io.IOException...(Too many open files)org.apache.hadoop.hdfs.DFSClient: Exception increateBlockOutputStream java.io.EOFException#在hbase用户下/etc/security/limits.conf 文件中设置如下supermap - nofile 32768supermap soft/hard nproc 32000 #supermap代表hadoop和hbase的运行用户#在hbase用户下/etc/pam.d/common-session文件中设置如下session required pam_limits.so#注销系统再登录即可生效
注:准备阶段可以参考超图大数据环境搭建之基础环境搭建的博客。
在系统环境文件/etc/profile里配置HADOOP_HOME的环境,以及source。其值如下示例:
JAVA_HOME=/home/supermap/jdk1.8.0_171JRE_HOME=${JAVA_HOME}/jreHADOOP_HOME=/home/supermap/hadoopPATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATHexport JAVA_HOME JRE_HOME PATH HADOOP_HOME
注:参考超图大数据环境搭建之Hadoop集群搭建的博客,hbase与hadoop存在版本兼容,hbase 1.3.X支持hadoop 2.7.X,本系列博客即采用的该版本。
机器 | master.com机器 | node1.com机器 | node2.com机器 |
---|---|---|---|
IP | 192.168.31.137 | 192.168.31.138 | 192.168.31.139 |
角色 | zookeeper | zookeeper | zookeeper |
角色 | HMaster | regionserver | regionserver |
zookeeper是一个高度可靠的分布式协调服务框架。需要至少三个节点部署。
下载 ,并解压到每台机器。
进入zookeeper/conf目录,复制zoo_sample.cfg并重命名为zoo.cfg,添加如下内容:
dataDir=/home/supermap/zookeeper/data #数据存储目录dataLogDir=/home/supermap/zookeeper/log #日志存储目录server.1=master.com:2888:3888server.2=node1.com:2888:3888server.3=node2.com:2888:3888
创建上一步中的data和log文件夹。
进入data目录,创建myid文件,填写上一步中server.X中的X值,每个机器填的值不一样,比如master.com机器中填:
1
以上步骤,三个机器同步配置,注意myid的值。
每个节点机器启动zk以及验证
bin/zkServer.sh start #启动bin/zkServer.sh status #检查状态
HBase集群配置
下载 ,并解压,然后进入hbase/conf目录。
编辑regionservers文件,添加节点如下:
node1.comnode2.com
编辑hbase-env.sh文件,配置环境值如下:
export JAVA_HOME=/home/supermap/jdk1.8.0_171 export HBASE_CLASSPATH=/home/supermap/hbase/lib export HBASE_HOME=/home/supermap/hbase export HADOOP_HOME=/home/supermap/hadoop export HBASE_LOG_DIR=/home/supermap/hbase/logsexport HBASE_MANAGES_ZK=false #启用外部zookeeper服务
配置hbase-site.xml参数,值如下:
hbase.rootdir hdfs://192.168.31.137:9000/hbase hbase.cluster.distributed true hbase.master.info.port 60000 hbase.regionserver.handler.count 100 hbase.master 192.168.31.137 hbase.zookeeper.quorum 192.168.31.137:2181,192.168.31.138:2181,192.168.31.139:2181 hbase.coprocessor.user.region.classes org.locationtech.geomesa.hbase.coprocessor.GeoMesaCoprocessor
geomesa依赖库拷贝, 进入hbase/lib查看是否有geomesa-hbase-distributed-runtime_2.11-2.2.0.jar库,如果没有,下载 ,并将该jar拷贝到lib目录下。
每个节点机器同步上面的步骤配置即可。
hbase集群启动及检查结果如图。
bin/start-hbase.sh #启动hbase之前,需先启动各节点的zookeeper,以及启动hdfs服务#ui地址 http://master.com:60000/master-status
转载地址:http://djvxi.baihongyu.com/