Hbase 安装部署

安装与配置

一、 先决条件

1. JDK

和Hadoop一样,Hbase需要JDK1.6 或者更高的版本,所有先按照配置环境变量

2. Zookeeper

zookeeper 是Hbase集群的协调器,负责解决Hmaster的单点问题,所以必须先安装好zookeeper.

3.Hadoop

集群模式下面需要Hadoop环境

二、 安装部署

Hbase有两种运行模式,单机模式和分布式模式

1. 集群模式

[JDK下载链接][https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html] JDK的安装一般由研发提供,有版本的要求

[Hbase下载链接][https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/]

进入stable文件夹【stable 稳定的版本】,然后下载tar.gz结尾的二进制文件到本地

安装JDK环境

tar xf jdk-8u121-linux-x64.tar.gz  -C /opt/java/
#配置环境变量,在文件的底部添加一下内容
vim /etc/profile
#java
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

安装Zookeeper

zookeeper是Hbase集群的协调器,负责解决HMaster的单店问题,所以必须先安装好zookeeper。

[zookeeper下载地址][https://archive.apache.org/dist/zookeeper/stable/]

安装配置zk
#上传zk的二进制安装包
tar xf zookeeper-3.6.2.tar.gz  -C /opt/
ln -s /opt/zookeeper-3.6.2/ /opt/zookeeper
cd /opt/zookeeper/conf/
#配置zk的环境变量
export ZK_HOME=/opt/zookeeper
export PATH=$JAVA_HOME/bin:$ZK_HOME/bin:$PATH
#修改配置文件如下,并重命名
vim zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
server.1=master:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
# 用于配置组成Zookeeper集群的机器列表,其中id即为ServerID,与每台服务器myid文件中的数字相对应。同时,在该参数中,会配置两个端口:第一个端口用于指定Follower服务器与Leader进行运行时通信和数据同步时所使用的端口,第二个端口则专门用于进行Leader选举过程中的投票通信。
#分发配置文件到其他主机
scp zoo.cfg node2:/opt/zookeeper/conf
scp zoo.cfg master:/opt/zookeeper/conf
#创建myid文件
创建myid文件
  • 3台服务器都要创建
  • 先在${ZOOKEEPER_HOME}/ 目录下创建一个 data(名字任意) 目录用于存放myid文件(唯一标识一台zk节点)及其他zk数据
  • 然后在myid文件里编写节点唯一id, master为1, node2为2,node3为3

    cd /tmp
    mkdir /tmp/zookeeper
    echo 1 >/tmp/zookeeper/myid
zk管理脚本
# 集群列表
#!/bin/bash

# 集群列表
list=(master node2 node3)

case $1 in
"start"){
        for i in ${list[@]}
        do
          echo ---------- zookeeper[ $i ]启动 ------------
                ssh $i "source /etc/profile;zkServer.sh start"
        done
};;
"stop"){
        for i in ${list[@]}
        do
          echo ---------- zookeeper[ $i ]停止 ------------    
                ssh $i "source /etc/profile;zkServer.sh stop"
        done
};;
"status"){
        for i in ${list[@]}
        do
          echo ---------- zookeeper [$i] 状态 ------------    
                ssh $i "source /etc/profile;zkServer.sh status"
        done
};;
esac

然后将该脚本放到zk/bin/下面即可调用

启动测试
zk.sh start
---------- zookeeper [master] 状态 ------------
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
---------- zookeeper [node2] 状态 ------------
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
---------- zookeeper [node3] 状态 ------------
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

Hadoop

集群模式下面,我们需要Hadoop环境

[下载地址][https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable2/] 下载并解压

tar xf hadoop-2.7.4.tar.gz  -C /opt/
配置环境变量
#hadoop
export HADOOP_HOME=/opt/hadoop
export PATH=$JAVA_HOME/bin:$ZK_HOME/bin:$HADOOP_HOME/bin:$PATH
修改配置
  1. 指定jdk的安装位置
vim hadoop-env.sh
export JAVA_HOME=/opt/java/
  1. core-site.xml
<configuration>
    <property>
        <!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <!--指定 hadoop 集群存储临时文件的目录-->
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/tmp</value>
    </property>
</configuration>
  1. hdfs-site.xml
<configuration>

   <property>
     <!--namenode 节点数据(即元数据)的存放位置,可以指定多个目录实现容错,多个目录用逗号分隔 -->
     <name>dfs.namenode.name.dir</name>
     <value>/mybk/hdfs/name1,/mybk/hdfs/name2,/mybk/namenodebak/namedir</value>
   </property>
   <property>
     <!-- 节点数据存放的位置,数据块存放的位置 -->
     <name>dfs.datanode.data.dir</name>
     <value>/mybk/hdfs/data</value>
   </property>
   <property>
     <name>dfs.datanode.max.xcievers</name>
     <value>8192</value>
   </property>
   <property>
     <name>dfs.support.append</name>
     <value>true</value>
   </property>
   <property>
     <name>dfs.hosts</name>
     <value>/opt/hadoop/conf/dfs.hosts</value>
   </property>
   <property>
     <name>dfs.hosts.exclude</name>
     <value>/opt/hadoop/conf/dfs.hosts.exclude</value>
   </property>
   <property>
     <name>dfs.replication</name>
     <value>2</value>
   </property>
   <property>
       <name>dfs.balance.bandwidthPerSec</name>
       <value>1048576</value>
   </property>
</configuration>
  1. yarn-site.xml
<configuration>
    <property>
        <!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <!--resourcemanager 的主机名-->
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
</configuration>
  1. mapred-site.xml
<configuration>
    <property>
        <!--指定 mapreduce 作业运行在 yarn 上-->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  1. slaves

    配置所有从节点的主机名或者IP地址,每行一个,所有从属节点上的DataNode服务和NodeManager服务都会别启动。

    cat slaves 
    master
    node2
    node
分发程序

将Hadoop配置文件分发到其它两天服务器上

scp -rf /opt/hadoop node2:/opt/
scp -rf /opt/hadoop node3:/opt/
初始化

在Hadoop上执行namenode初始化命令

hdfs namenode -format
启动集群

进到sbin/目录下面,启动 Hadoop。此时 hadoop002 和 hadoop003 上的相关服务也会被启动:

#启动dfs服务
/opt/hadoop/sbin/start-dfs.sh
#启动yarn服务
/opt/hadoop/sbin/start-yarn.sh
#启动jobhistory
./mr-jobhistory-daemon.sh  start historyserver
查看集群

每个机器上使用jps命令查看服务进程或者用UI查看端口为 50070

[root@master sbin]# jps
62560 NameNode
63265 ResourceManager
63377 NodeManager
62899 SecondaryNameNode
63428 Jps
29205 QuorumPeerMain
54859 DataNode

安装Hbase

[Hbase 下载地址][https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.4.9/hbase-1.4.9-bin.tar.gz ]

安装Hbase
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.4.13/hbase-1.4.13-bin.tar.gz
tar xf hbase-1.4.13-bin.tar.gz  -C /opt/
ln -s /opt/hbase-1.4.13 /opt/hbase
配置Hbase-env.sh 环境变量
export JAVA_HOME=/opt/java
export HBASE_CLASSPATH=/opt/hbase/conf
hbase-site.xml 配置hbase
<configuration>
<property>
    <name>hbase.rootdir</name>
    <!-- hbase存放数据目录 -->
    <value>hdfs://master:9000/hbase/hbase_db</value>
    <!-- 端口要和Hadoop的fs.defaultFS端口一致-->
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <!-- 是否分布式部署 -->
    <value>true</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <!-- zookooper 服务启动的节点,只能为奇数个 -->
    <value>master,node2,node3</value>
</property>
<!-- 指定 zookeeper 的地址-->
<property>
        <name>hbase.zookeeper.quorum</name>
        <value>master:2181,node2:2181,node3:2181</value>
</property>
<property>
    <!--hbase master -->
    <name>hbase.master</name>
    <value>master</value>
</property>
<property>
    <!--hbase web 端口 -->
    <name>hbase.master.info.port</name>
    <value>16666</value>
</property>
</configuration>
指定集群节点
[root@master conf]# cat regionservers 
master
node2
node3
backup-master
cat backup-master
node2

backup-masters 这个文件是不存在的,需要新建,主要用来指明备用的 master 节点,可以是多个,这里我们以 1 个为例

HDFS客户端配置

这是一个可选的配置,如果您在Hadoop集群上进行了HDFS客户端的配置更改,比如将副本系数 dfs.replication 设置成 5,则必须使用以下方法之一来使 HBase 知道,否则 HBase 将依旧使用默认的副本系数 3 来创建文件:

第一种

将 Hadoop 配置文件的位置信息添加到 hbase-env.sh 的 HBASE_CLASSPATH 属性,示例如下:

export HBASE_CLASSPATH=/opt/etc/hadoop

第二种

将 Hadoop 的 hdfs-site.xml 或 hadoop-site.xml 拷贝到 /opt/hbase/conf 目录下,或者通过符号链接的方式。如果采用这种方式的话,建议将两者都拷贝或建立符号链接,示例如下:

# 拷贝
cp core-site.xml hdfs-site.xml /opt/hbase/conf/
# 使用符号链接
ln -s   /opt/hadoop/etc/hadoop/core-site.xml  /opt/hbase/conf/
ln -s   /opt//hadoop/etc/hadoop/hdfs-site.xml /opt/hbase/conf/

#####配置hbase命令环境命令

vim /etc/profile
export HBASE_HOME=/opt/hbase
#PAHT
export PATH=$JAVA_HOME/bin:$ZK_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$PATH
复制hbase到其他机器
 scp -r /opt/hbase node3:/opt/hbase
启动Hbase

在master服务器上操作即可

start-hbase.sh
查看服务
[root@master conf]# jps
2304 ResourceManager
4886 HMaster
5031 HRegionServer
1928 DataNode
3833 QuorumPeerMain
2142 SecondaryNameNode
10046 Jps
1807 NameNode

浏览器web页面访问 ip:16666

参考的网站

https://juejin.cn/post/6844903907735371789#heading-17

https://juejin.cn/post/6844903949728743432
https://blog.csdn.net/m0_37809146/category_9014679.html

猜你喜欢

转载自blog.51cto.com/13654115/2639961