zoukankan      html  css  js  c++  java
  • HBase安装教程

    一、版本介绍

    linux : CentOS7
    Hadoop : 2.7.6
    zookeeper : 3.4.6
    hbase : 1.4.6
    jdk : jdk1.8.0_171
    三个节点的主机名分别为:master、node1、node2

    二、安装Hadoop

    HBase 是在 Hadoop 这种分布式框架中提供持久化的数据存储与管理的工具。在使用 HBase 的分布式集群模式时,前提是必须有 Hadoop 系统,所以我们需要先安装Hadoop,进行到这一步相信大家已经安装过Hadoop环境了,如果没有安装的可以参考下面的链接。
    https://www.cnblogs.com/yy-yang/p/14615048.html

    三、安装zookeeper

    zookeeper安装步骤
    hbase Client客户端、Master、Region都会通过心跳机制(RPC通信)与zookeeper保持联系
    1、上传安装包到master并解压
    tar -zxvf zookeeper-3.4.6.tar.gz
    我这里压缩包存放在/usr/local/module下,解压到/usr/local/soft目录下,读者需要根据自己的实际情况安装,下面的环境变量也需要根据自己实际情况配置
    image
    2、配置环境变量

    vim /etc/profile
    

    在配置文件中加入以下内容

    export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.4.6 
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    

    使环境变量生效
    source /etc/profile
    输入zk按tab键,如果有提示说明环境变量配置的没问题
    image

    3、修改配置文件
    cd /usr/local/soft/zookeeper-3.4.6/conf
    cp zoo_sample.cfg zoo.cfg

    修改zoo.cfg
    data目录下面会创建
    注意:路径要与自己的一致
    dataDir=/usr/local/soft/zookeeper-3.4.6/data
    增加以下内容
    注意:主机名要改成自己的

    server.0=master:2888:3888
    server.1=node1:2888:3888
    server.2=node2:2888:3888
    

    image
    4、同步到其它节点
    该命令在/usr/local/soft下面执行

    scp -r zookeeper-3.4.6 node1:`pwd`
    scp -r zookeeper-3.4.6 node2:`pwd`
    

    同步配置node1和node2的环境变量
    下面写的为绝对路径,可以在任意地方执行

    scp /etc/profile node1:/etc/
    scp /etc/profile node2:/etc/
    

    在所有节点执行使新配置的环境变量生效
    source /etc/profile

    4、创建/usr/local/soft/zookeeper-3.4.6/data目录,所有节点都要创建

    mkdir /usr/local/soft/zookeeper-3.4.6/data

    在data目录下创建myid文件
    vim /usr/local/soft/zookeeper-3.4.6/data/myid
    master,node1,node2分别加上0,1,2
    这个数字用来唯一标识这个服务,一定要保证唯一性,zookeeper会根据这个id来取出server.x上的配置
    image

    image

    image
    5、同步时间
    zookeeper节点之间需要实时监听节点是否存活
    如果没有ntpdate命令,可以yum命令先安装:
    yum install ntp -y
    从网络服务器同步时间(需要虚拟机联网):
    ntpdate -u s2c.time.edu.cn
    (经常挂起虚拟机,可能会导致时间停止,可使用crontab做成定时同步)
       crontab -e // 进入crontab命令编辑模式
       加入以下内容(每十分钟同步一次):
       */10 * * * * ntpdate -u s2c.time.edu.cn

    6、启动zk,
    zkServer.sh start 三台都需要执行
    zkServer.sh status 查看状态

    当有一个leader的时候启动成功,我这里node2为leader,这个是随机的每次启动可能不一样
    image

    下面简单介绍下zookeeper的使用,与本次安装无关,可以忽略
    连接zk
    zkCli.sh

    zk 是一个目录结构 ,每个节点可以存数据,同时可以有子节点

    zk shell
    创建目录
    create /test test create /test/a 1
    获取数据
    get /test
    ls /test

    delete只能删除没有子节点的节点
    rmr /test 删除节点

    重置zk
    1、杀掉所有zk进程
    kiil -9 pid

    2、删除data目录下的version文件, 所有节点都要删除
    rm -rf /usr/local/soft/zookeeper-3.4.6/data/version-2

    2、启动zk
    zkServer.sh start

    三、HBase安装

    Hbase的启动前需要先启动zookeeper和Hadoop,这里先启动好再进行下面的安装
    准备工作
    1、启动hadoop
    start-all.sh
    验证
    http://master:50070

    2、启动zookeeper
    需要在在三台中分别启动
    zkServer.sh start zkServer.sh status
    搭建hbase

    1、上传解压到自己的安装目录
    tar -zxvf hbase-1.4.6-bin.tar.gz

    2、修改hbase-env.sh文件
    进入到配置文件目录
    cd /usr/local/soft/hbase-1.4.6/conf
    vim hbase-env.sh
    增加java配置(根据自己实际情况配置,文件中的这行注释掉了,可以找到后修改也可以直接在最后面添加这一行)
    export JAVA_HOME=/usr/local/soft/jdk1.8.0_171
    image
    关闭默认zk配置
    因为HBase自己有个zk,这里我们把它自带的关掉,用我们自己的
    export HBASE_MANAGES_ZK=false
    image
    3、修改hbase-site.xml文件
    vim hbase-site.xml

      <!--hbase.root.dir 将数据写入哪个目录-->
      <property>
        <name>hbase.rootdir</name>
        <value>hdfs://master:9000/hbase</value>
      </property>
      <!--单机模式不需要配置,分布式配置此项,value值为true,多节点分布-->
      <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
      </property>
      <property>
        <!--单机模式不需要配置多个IP,分布式配置此项value值为多个主机ip,多节点分布-->
        <name>hbase.zookeeper.quorum</name>
        <value>node1,node2,master</value>
      </property>
    
    

    image
    4、修改regionservers文件
    默认是单节点的,我这里搭建的是分布式的, 在这里列出了你希望运行的全部 HRegionServer,一行写一个host (就像Hadoop里面的 slaves 一样
    改为自己的子节点主机名
    vim regionservers

    node1
    node2
    

    image

    如果是伪分布式版本,增加master即可

    5、同步到所有节点(如果是伪分布式不需要同步)
    命令在hbase安装的文件目录下运行,例如我的hbase装在/usr/local/soft
    命令就在/usr/local/soft下运行
    scp -r hbase-1.4.6/ node1:`pwd` scp -r hbase-1.4.6/ node2:`pwd`
    image
    6、配置环境变量
    vim /etc/profile

    export HBASE_HOME=/usr/local/soft/hbase-1.4.6
    export PATH=$PATH:$HBASE_HOME/bin
    

    同步配置node1和node2的环境变量
    下面写的为绝对路径,可以在任意地方执行

    scp /etc/profile node1:/etc/
    scp /etc/profile node2:/etc/
    

    在所有节点执行使新配置的环境变量生效
    source /etc/profile
    7、启动hbase集群 , 需要在master上执行

    start-hbase.sh
    通过jps查看下进程
    master上有
    image
    其他两个节点
    image
    8、验证hbase
    http://master:16010
    image
    hbase日志文件所在的目录
    /usr/local/soft/hbase-1.4.6/logs
    关闭集群的命令
    stop-hbase.sh
    通过 hbase shell 进入到hbase的命令行

    创建表 列簇 列式数据库
    create 'test','info'
    插入数据

    put 'test','001','info:name','zhangsan'
    

    查询数据

    get 'test','001'
    

    如果hbase 搭建失败了 不知道问题出在哪里
    重置hbase
    1、关闭hbase集群
    杀死进程
    stop-hbase.sh
    2、删除hdfs数据
    hadoop dfs -rmr /hbase

    3、删除元数据 zk
    zkCli.sh
    rmr /hbase
    4、重启hbase

    start-hbase.sh

  • 相关阅读:
    ProGuard代码混淆
    电影资源网站分享
    mvn高级构建
    BeanUtils对象属性copy的性能对比以及源码分析
    你可能用到的Spring工具类?
    搭建K8s集群
    IDEA部署Spring-boot到Docker容器
    搭建团队协作办公wiki (confluence)
    Linux中关闭SSH的DNS解析
    责任链异步处理设计模型
  • 原文地址:https://www.cnblogs.com/yy-yang/p/14677554.html
Copyright © 2011-2022 走看看