所需组件

zookeeper

版本:3.4.10
下载链接:
    http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

java openjdk/oracle_jdk

版本:oracle_jdk-1.8
下载链接:
    http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

hadoop

版本:2.8.1
下载链接:
    https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz

hbase

版本:1.3.1
下载链接:
    https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz

环境配置(所有节点均君一样的操作)

关闭防火墙,Selinux

hosts文件配置

$ vim /etc/hosts
    10.39.10.34 hbase-1
    10.39.10.35 hbase-2
    10.39.21.19 hbase-3

将所有软件包解压到每个节点的/opt目录下,并安装Jdk。

$ tar xvf hadoop-2.8.1.tar.gz -C /opt
$ tar xvf hbase-1.3.1-bin.tar.gz -C /opt
$ tar xvf zookeeper-3.4.10.tar.gz -C /opt
$ yum install ./jdk-8u144-linux-x64.rpm

配置环境变量

$ vim /etc/profile.d/hbase.sh 
    JAVA_HOME=/usr/java/jdk1.8.0_144/jre
    ZOOKEEPER_HOME=/opt/zookeeper-3.4.10
    HADOOP_HOME=/opt/hadoop-2.8.1
    HBASE_HOME=/opt/hbase-1.3.1
    PATH=$PATH:$HBASE_HOME/bin:$HADOOP_HOME/bin:$ZOOKEEPER_HOME/bin:$JAVA_HOME/bin:

加载环境变量

$ . /etc/profile.d/hbase.sh

安装步骤

安装zookeeper

#配置主节点zookeeper配置
    [root@hbase-1 ~]$ ssh hbase-1
    [root@hbase-1 ~]$ cp /opt/zookeeper-3.4.10/conf/zoo_sample.cfg /opt/zookeeper-3.4.10/conf/zoo.cfg
    [root@hbase-1 ~]$ vim /opt/zookeeper-3.4.10/conf/zoo.cfg
        dataDir=/opt/data/zookeeper  (数据存放目录)
        server.1=hbase-1:2888:3888   (主机名:信息交换端口:节点投票端口)
        server.2=hbase-2:2888:3888
        server.3=hbase-3:2888:3888
    [root@hbase-1 ~]$ mkdir -p /opt/data/zookeeper
    [root@hbase-1 ~]$ echo 1 > /opt/data/zookeeper/myid
        
#将配置好的zoo.cfg文件发送到hbase-2与hbase-3上的/opt/zookeeper-3.4.10/conf目录下
    scp /opt/zookeeper-3.4.10/conf/zoo.cfg  hbase-2:/opt/zookeeper-3.4.10/conf
    scp /opt/zookeeper-3.4.10/conf/zoo.cfg  hbase-3:/opt/zookeeper-3.4.10/conf
        
#在hbase-2上执行
    [root@hbase-2 ~]$ mkdir -p /opt/data/zookeeper
    [root@hbase-2 ~]$ echo 2 > /opt/data/zookeeper/myid
        
#在hbase-3上执行
    [root@hbase-3 ~]$ mkdir -p /opt/data/zookeeper
    [root@hbase-3 ~]$ echo 3 > /opt/data/zookeeper/myid
    
#开启zookeeper服务(三个节点都需要运行)
    $ zkServer.sh start
        ZooKeeper JMX enabled by default
        Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
        Starting zookeeper ... STARTED
            
#查看zookeeper状态(三个节点都需要运行)
    $ zkServer.sh status
        ZooKeeper JMX enabled by default
        Using config: /opt/zookeeper-3.4.10/bin/../conf/zoo.cfg
        Mode: follower

zookeeper角色

zkServer.sh status 会显示zookeeper 状态
Mode: leader 
    
这里的Mode: leader 和follower 
一个集群中只有leader 
leader 领导者,用于负责进行投票的发起决议,更新系统状态 
follower 跟随者 用于接受客户端请求并想客户端返回结果,在选主过程中参与投票 

配置参数详解

tickTime 这个时间是作为zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是说每个tickTime 时间就会发送一个心跳。 
initLimit 这个配置项是用来配置zookeeper接受客户端初始化连接时最长能忍受多少个心跳时间间隔数。
当已经超过10个心跳的时间(tickTime) 长度后zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败,总的时间长度就是10*2000=20秒 
syncLimit 这个配置项标识leader 与follower 之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime 的长度,总的时间长度是5*2000=10秒
dataDir 保存数据目录
clientPort 端口,这个端口是客户端连接zookeeper服务器端口,zookeeper 会监听这个端口接受客户端访问请求
server.n=B:C:D 的n是一个数字,表示这个是第几号服务器,B是这个服务器的IP地址,C第一个端口用来集群成员的信息交换,表示这个服务器与集群中的leader 服务器交换信息的端口,D是leader 挂掉时专门用来进行选举leader 所用的端口

配置hadoop

#配置主节点

    [root@hbase-1 ~]$ cd /opt/hadoop-2.8.1/etc/hadoop/
    [root@hbase-1 hadoop]$ vim hadoop-env.sh
        export JAVA_HOME=/usr/java/jdk1.8.0_144/jre
        
    [root@hbase-1 hadoop]$ vim hdfs-site.xml
        <configuration>
        <property>
        <name>dfs.replication</name>
            <value>3</value>
        </property>
        
        <property>
              <name>dfs.namenode.name.dir</name>
              <value>/opt/data/zookeeper/hadoopdata/dfs/name</value>
        </property>
        
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/data/zookeeper/hadoopdata/dfs/data</value>
         </property>
        </configuration>
        
    [root@hbase-1 hadoop]$ vim core-site.xml
        <configuration>
        <property>
         <name>fs.defaultFS</name>
         <value>hdfs://hbase-1:9000</value>
            <description>The name of the default file system</description>
          </property>
        
         <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/data/zookeeper/hadoopdata/tmp</value>
            <description>A base for other temporary directories</description>
        </property>
        
         <property>
             <name>hadoop.native.lib</name>
             <value>true</value>
             <description>Should native hadoop libraries, if present, be used.</description>
        </property>
        </configuration>
        
    [root@hbase-1 hadoop]$ vim mapred-site.xml
        <configuration>
         <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
         </property>
        </configuration>
    
    [root@hbase-1 hadoop]$ vim yarn-site.xml
        <configuration>
        <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>hbase-1</value>
        </property>
    
       <property>
           <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        </configuration>
        
    [root@hbase-1 hadoop]$ vim slaves
        hbase-2
        hbase-3
#初始化hdfs
    [root@hbase-1 hadoop]$ hadoop namenode -format   
    [root@hbase-1 hadoop]$ hadoop datanode -format 


#将所有文件复制到hbase-2,hbase-3中
    [root@hbase-1 hadoop]$ scp * hbase-2:/opt/hadoop-2.8.1/etc/hadoop
    [root@hbase-1 hadoop]$ scp * hbase-3:/opt/hadoop-2.8.1/etc/hadoop

#开启hadoop服务(仅在主节点执行即可)
    [root@hbase-1 hadoop]$ cd /opt/hadoop-2.8.1/sbin
    [root@hbase-1 sbin]$ ./start-all.sh
    
#查看主节点状态
    [root@hbase-1 sbin]$ jps
        1940 NameNode
        1735 QuorumPeerMain
        2139 SecondaryNameNode
        2303 ResourceManager
        4191 Jps
#查看从节点状态
    [root@hbase-2 ~]$ jps
        1732 QuorumPeerMain
        2134 NodeManager
        3563 Jps
        1998 DataNode
    
    [root@hbase-3 sbin]$ jps
        3492 Jps
        1733 QuorumPeerMain
        2007 DataNode
        2138 NodeManager
        


安装hbase

#进入hbase目录
    [root@hbase-1 ~]$ cd /opt/hbase-1.3.1/conf
        #注释这两行参数
        #export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
        #export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
        #添加这两行参数
        export JAVA_HOME=/usr/java/jdk1.8.0_144/jre
        export HBASE_MANAGES_ZK=false
    
    [root@hbase-1 conf]$ vim hbase-site.xml 
        <configuration>
            <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
            </property>
            <property>
                <name>hbase.rootdir</name>
                <value>hdfs://hbase-1:9000/hbase</value>
            </property>
            <property>
               <name>hbase.zookeeper.quorum</name>
               <value>hbase-1,hbase-2,hbase-3</value>
            </property>
        
            <property>
             <name>hbase.zookeeper.property.dataDir</name>
             <value>/opt/data/zookeeper/data</value>
            </property>
        </configuration>
    
    [root@hbase-1 conf]$ vim regionservers
        hbase-2
        hbase-3

#启动hbase服务
    [root@hbase-1 conf]$ start-hbase.sh 
    
#查看hbase服务状态
    [root@hbase-1 conf]$ jps
        2736 HMaster

#查看hbase集群状态
    [root@hbase-1 conf]$ hbase shell
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/hbase-1.3.1/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.cla
    ss]SLF4J: Found binding in [jar:file:/opt/hadoop-2.8.1/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/
    StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
    HBase Shell; enter 'help<RETURN>' for list of supported commands.
    Type "exit<RETURN>" to leave the HBase Shell
    Version 1.3.1, r930b9a55528fe45d8edce7af42fef2d35e77677a, Thu Apr  6 19:36:54 PDT 2017
    
    hbase(main):001:0> status
    1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load


hadoop Web-UI界面

    http://hbase-1:8088

image

hbase Web-UI界面

http://hbase-1:16010

image

posted on 2017-09-19 15:58  菜鸡天然呆  阅读(157)  评论(0)    收藏  举报