博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数据环境搭建之Hbase集群搭建
阅读量:4162 次
发布时间:2019-05-26

本文共 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#注销系统再登录即可生效

    注:准备阶段可以参考超图大数据环境搭建之基础环境搭建的博客。

Hadoop集群配置
  • 在系统环境文件/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,本系列博客即采用的该版本。

zookeeper集群和hbase集群角色图
机器 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是一个高度可靠的分布式协调服务框架。需要至少三个节点部署。

  • 下载 ,并解压到每台机器。

  • 进入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/

你可能感兴趣的文章
【Python基础7】字典
查看>>
【Python基础8】函数参数
查看>>
【Python基础9】浅谈深浅拷贝及变量赋值
查看>>
Jenkins定制一个具有筛选功能的列表视图
查看>>
【Python基础10】探索模块
查看>>
【Python】将txt文件转换为html
查看>>
[Linux]Shell脚本实现按照模块信息拆分文件内容
查看>>
idea添加gradle模块报错The project is already registered
查看>>
在C++中如何实现模板函数的外部调用
查看>>
在C++中,关键字explicit有什么作用
查看>>
C++中异常的处理方法以及使用了哪些关键字
查看>>
内存分配的形式有哪些? C++
查看>>
什么是内存泄露,如何避免内存泄露 C++
查看>>
什么是缓冲区溢出 C++
查看>>
sizeof C++
查看>>
使用指针有哪些好处? C++
查看>>
引用还是指针?
查看>>
checkio-non unique elements
查看>>
checkio-medium
查看>>
checkio-house password
查看>>