• HBase单机和集群版部署


    1. HBase安装部署

    HBase有两种部署模式:单机版模式和集群版模式。无论哪种模式,都需要配置HBase conf目录下的文件。至少,必须在conf/hbase-env.sh文件中添加JAVA_HOME。在hbase-env.sh这个文件中,可以设置HBase的环境变量,如堆内存大小、JVM的其他配置,日志文件的存放位置等。

    注意:HBase的安装版本需要与Hadoop的版本相对应,否则会出现HBase使用不了的情况,主要体现在HBase shell操作命令非常慢,甚至出错。HBase与Hadoop的版本对应可以查看HBase官网文档https://hbase.apache.org/book.html#basic.prerequisites 第四节点basic.prerequisites介绍,如图:

    从上图可以知道hadoop-2.8.0以上的版本都不支持HBase或者存在不稳定性,故最好安装hadoop-2.7.1+或者hadoop-2.8.3+的版本,避免HBase无法使用,这里我采用hadoop-2.7.1+版本。

    HBase2.0以上的版本要求使用Jdk8以上,故这里采用Java8。

    1.1 软件配置选择

    JDK:1.8 (jdk1.8.0_151)
    Hadoop:2.7.6 (hadoop-2.7.6.tar.gz)
    HBase:2.1.2 (hbase-2.1.1-bin.tar.gz)

    1.2 服务器环境准备

    1.2.1 更改主机名

    输入 hostname 查看本机的主机名,然后输入命令 vi /etc/sysconfig/network 编辑 /etc/sysconfig/network 文件 

    注:主机名称更改之后,要重启(reboot)才会生效。

    输入 vim /etc/hosts 添加主机IP和对应的主机名称,做映射。

    注:在配置文件中使用主机名的话,这个映射必须做!

    1.2.2 关闭防火墙

    关闭防火墙,方便外部访问。
    CentOS 7版本以下输入:
    关闭防火墙
    service iptables stop
    CentOS 7 以上的版本输入:
    systemctl stop firewalld.service

    1.2.3 时间设置

    输入:
    date
    查看服务器时间是否一致,若不一致则更改
    更改时间命令

    date -s ‘MMDDhhmmYYYY.ss’

    2. HBase单机版部署

    HBase独立实例包含全部HBase的守护进程,如:Master、RegionServers以及ZooKeeper,它们运行在单个JVM里面,并持久化到本地文件系统。

    2.1 从官网下载HBase安装包,并通过Xftp5上传到单节点机器上

    目前使用的HBase版本为hbase-2.1.2-bin.tar.gz

    通过Xftp5上传到机器节点node1上的/opt/frame/目录

    2.2 解压hbase-2.1.2.tar.gz,并把解压的安装包移动到/opt/app/目录上。

    tar xzvf hbase-2.1.2-bin.tar.gz

    mv hbase-2.1.2 /opt/app

    2.3 修改配置hbase-env.sh、hbase-site.xml文件

    编辑hbase-env.sh,添加以下配置:

    export JAVA_HOME=/usr/lib/java/jdk1.8.0_181
    export HBASE_HOME=/opt/app/hbase-2.1.2
    export HBASE_CLASSPATH=/opt/app/hadoop-2.7.6/etc/hadoop
    export HBASE_PID_DIR=/opt/app/hbase-2.1.2/pids
    export HBASE_MANAGES_ZK=false

    说明:配置的路径以自己的为准,HBASE_MANAGES_ZK=false是不启用HBase自带的Zookeeper集群。

    编辑hbase-site.xml文件,添加以下配置:

    <configuration>
     <!-- 存储目录 这里的hdfs可以是单机版的-->
     <property>
      <name>hbase.rootdir</name>
      <value>hdfs://node1:9000/hbase</value>
      <description>The directory shared byregion servers.</description>
     </property>
     <property>
      <name>hbase.tmp.dir</name>
      <value>/opt/app/hbase-2.1.2/tmp</value>
     </property>
     <!-- false是单机模式,true是分布式模式  -->
     <property>
      <name>hbase.cluster.distributed</name>
      <value>false</value>
     </property>
     <!-- zk主机地址和端口采用默认的,不用配置  -->
    </configuration>

    2.4 HBase启动

    在成功启动单机版Hadoop之后,切换到HBase目录下

    cd /opt/app/hbase-2.1.2/bin

    输入:

    ./start-hbase.sh

    在浏览器输入:

    http://192.168.187.201:16010/

     显示这个界面则成功!

    3. HBase集群版部署

    3.1 从官网下载HBase安装包,并通过Xftp5上传到机器集群上

    目前使用的HBase版本为hbase-2.1.2-bin.tar.gz

    下载hbase-2.1.2-bin.tar.gz版本:

    通过Xftp5上传到hadoop机器集群的第一个节点node1上的/opt/frames/目录:

    3.2 解压hbase-2.1.2-bin.tar.gz,并把解压的安装包移动到/opt/app/目录上。

    tar zxvf hbase-2.1.2-bin.tar.gz 

    mv hbase-2.1.1 /opt/app/  && cd /opt/app/

     

    3.3 修改环境变量(每台机器都要执行)

    编辑/etc/profile,并生效环境变量,输入如下命令:

    sudo vi /etc/profile

    添加如下内容:

    export HBASE_HOME=/opt/app/hbase-2.1.2
    export PATH=:$PATH:$HBASE_HOME/bin

    使环境变量生效:source /etc/profile

    3.4 修改配置hbase-env.sh、hbase-site.xml、Regionservers文件

    进入hbase配置文件的目录,cd  /opt/app/hbase-2.1.2/conf/

    ①修改hbase-env.sh文件 vi hbase-env.sh,将以下内容写入到hbase-env.sh文件中:

    export JAVA_HOME=/usr/lib/java/jdk1.8.0_151
    # hadoop配置文件的位置
    export HBASE_CLASSPATH=/opt/app/hadoop-2.7.5/etc/hadoop
    # 如果使用独立安装的zookeeper,这个地方就是false,不使用内部的zookeeper,而是使用自己外部搭建的zookeeper集群
    export HBASE_MANAGES_ZK=true

    ②修改hbase-site.xml配置文件 vi hbase-site.xml,并将以下内容写入到hbase-site.xml文件中:

    <configuration>
    # hbasemaster的主机和端口
    <property>
    <name>hbase.master</name> 
    <value>hadoop1:60000</value>
    </property>

    # 时间同步允许的时间差
    <property>
    <name>hbase.master.maxclockskew</name>
    <value>180000</value>
    </property>

    # hbase共享目录,持久化hbase数据
    <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>
    </property>

    # 是否分布式运行,false即为单机
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>

    # zookeeper地址
    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop1,hadoop2,hadoop3</value>
    </property>

    # zookeeper配置信息快照的位置
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/hbase/tmp/zookeeper</value>
    </property>
    </configuration>

    ③修改Regionservers配置文件vi Regionservers,并将以下内容写入到Regionservers文件中:

    hadoop1
    hadoop2
    hadoop3

    3.5 把hadoop的hdfs-site.xml和core-site.xml放到hbase/conf下

    cp /opt/app/hadoop-2.7.6/etc/hadoop/hdfs-site.xml  /opt/app/hbase-2.1.2/conf/
    cp /opt/app/hadoop-2.7.6/etc/hadoop/core-site.xml  /opt/app/hbase-2.1.2/conf/

    3.6 发送到其他节点机器

    scp -r /opt/app/hbase-2.1.2/  hadoop@hadoop2:/opt/app/
    scp -r /opt/app/hbase-2.1.2/  hadoop@hadoop3:/opt/app/

    3.7 启动

    ①启动HBase命令:start-hbase.sh
    ②进入hbase的shell:hbase shell
    注:先启动才能进入HBase shell

    3.8 查看

    进程:jps
    退出hbase的shell:quit
    页面:http://master:60010/

    4. 总结

    参考资料:

    http://hbase.apache.org/book.html

  • 相关阅读:
    构造函数析构函数为什么没有返回值?
    std::tr1::shared_ptr 使用的一点体会
    C++完美实现Singleton模式
    为什么C++中空类和空结构体大小为1?
    同时判断CPU是大端还是小端完全实现
    优先级反转
    linux sed 批量替换字符串
    禁掉Apache web server签名 How to turn off server signature on Apache web server
    Python中用format函数格式化字符串的用法
    Eclipse (indigo) 中安装jdk包并运行Maven
  • 原文地址:https://www.cnblogs.com/swordfall/p/8819668.html
Copyright © 2020-2023  润新知