1. 程式人生 > >hbase 集群部署

hbase 集群部署

usr path cti .com 系統參數 text lib tar ssh

Hhase 集群部署
 使用的軟件 
 hadoop-2.7.4
 hbase-1.2.6
 jdk-8u144
 zookeeper-3.4.10
 Hbase 自帶的有zookeeper,在這裏使用自己部署的zookeeper  

zookeeper 集群部署

安裝jdk 
下載zookeeper 程序 
修改zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataLogDir=/zookeeper/logs
dataDir=/zookeeper/data
clientPort=2181
server.1= 10.39.6.178:2888:3888
server.2= 10.39.6.179:2888:3888
server.3= 10.39.6.180:2888:3888

添加myid,這裏的myid 對應的server.n 一一對應。 
這裏的server.1 所以node 1節點myid=1  
echo "1" /zookeeper/data/myid

創建所需要的目錄
添加環境變量
vi /etc/profile 
export ZOOKEEPER_HOME=/application/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin  

啟動

將node 1 的配置全部打包拷貝到其他節點上,啟動zookeeper 就行了
啟動有錯誤可以使用zkServer.sh start-foreground 來追蹤錯誤 

角色

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 所用的端口 

連接zookeeper集群
zkCli.sh -server 10.39.6.178:2181

Hadoop 安裝

下載地址 [http://apache.fayea.com/hadoop/common/stable/hadoop-2.7.4.tar.gz]()

hbase01 到hbase02   hbase03 需要使用ssh無密鑰登錄。 

hadoop 配置文件

配置文件 配置對象 主要內容
core-site.xml 集群全局參數 用戶定義系統級別的參數,如HDFS URL Hadoop臨時目錄
hdfs-site.xml HDFS 參數 如名稱節點和數據節點存放位置,文件副本的個數,文件讀取權限
mapred-site.xml Mapreduce參數 包括JobHistry Server 和應用程序參數兩部分,如reduce 任務的默認個數,任務所能夠使用內存的默認上下限
yarn-site.xml 集群資源管理系統參數 包括ResourceManager,NodeManager 的通信端口,web 監控端口等
集群配置
vi /application/hadoop-2.7.4/etc/hadoop/hadoop-env.sh
 export  JAVA_HOME="/usr/java/jdk1.8.0_144" 
(rpm 安裝的jdk 存儲位置)
vi /application/hadoop-2.7.4/etc/hadoop/core-site.xml
  <configuration>
 <property>
 <name>fs.defaultFS</name>
 <value>hdfs://hbase01:9000</value>
    <description>The name of the default file system</description>
  </property>

 <property>
    <name>hadoop.tmp.dir</name>
    <value>/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>
vi /application/hadoop-2.7.4/etc/hadoop/hdfs-site.xml
<configuration>
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

<property>
      <name>dfs.namenode.name.dir</name>
      <value>/zookeeper/hadoopdata/dfs/name</value>
</property>

<property>
    <name>dfs.datanode.data.dir</name>
    <value>/zookeeper/hadoopdata/dfs/data</value>
 </property>

</configuration>
vi /application/hadoop-2.7.4/etc/hadoop/mapred-site.xml
   <configuration>
 <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
 </property>
</configuration>     
vi /application/hadoop-2.7.4/etc/hadoop/yarn-site.xml
    <configuration>
     <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>hbase01</value>
    </property>

   <property>
        <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
    </property>

 </configuration>
vi /application/hadoop-2.7.4/etc/hadoop/slaves
     hbase02
     hbase03

將所有的配置COPY 到hbase02 hbase03

格式化HDFS存儲

1. 在namenode 上執行
   進入到hadoop 目錄
   ./bin/hadoop namenode -format   
2. 在datanode 
   ./bin/hadoop datanode -format 

啟動Hadoop

  1. 啟動HDFS 
    ./sbin/start-dfs.sh
    ./sbin/stop-dfs.sh
  2. 啟動Yarn
   ./sbin/start-yarn.sh 
   ./sbin/stop-yarn.sh
  3.啟動MapReduce JobHistory Server
   ./sbin/mr-jobhistory-daemon.sh  start historyserver   

  jps 查看進程
  jps
  12016 ResourceManager
  11616 NameNode
  11828 SecondaryNameNode
  12317 JobHistoryServer
  31453 Jps

web 訪問端口

  NameNode    50070
  ResourceManager 8088
  MapReduce JobHistory Server 19888

Hbase 安裝

 hbase 配置文件修改
 vi conf/hbase-env.sh  
    export JAVA_HOME=/usr/java/jdk1.8.0_144
    export HBASE_MANAGES_ZK=false      

 vi conf/hbase-site.xml
    <configuration>
     <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hbase01:9000/hbase</value>
    </property>
    <property>
       <name>hbase.zookeeper.quorum</name>
       <value>hbase01,hbase02,hbase03</value>
   </property>

   <property>
     <name>hbase.zookeeper.property.dataDir</name>
     <value>/zookeeper/data</value>
   </property>
</configuration> 

vi conf/regionservers 
    hbase02
    hbase03

 將上述配置同步到其他節點 

hbase 啟動

  ./bin/start-hbase.sh 

  查看Hbase 的狀態
  jps 
  12016 ResourceManager
  11616 NameNode
  12546 HMaster
  10403 QuorumPeerMain
  11828 SecondaryNameNode
  21225 Jps
  12317 JobHistoryServer
進入hbase shell,使用命令查看hbase 狀態
 ./bin/hbase shell 
 SLF4J: Class path contains multiple SLF4J bindings.
 SLF4J: Found binding in [jar:file:/application/hbase-1.2.6/lib/slf4j-l 
 HBase Shell; enter ‘help<RETURN>‘ for list of supported commands.
 Type "exit<RETURN>" to leave the HBase Shell
 Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017

 hbase(main):001:0> status 
1 active master, 0 backup masters, 2 servers, 0 dead, 1.0000 average load

 hbase(main):002:0> 

Hbase web ui 端口為16010 

hbase 集群部署