部署HBase系統(分佈式部署)

1.簡介node

HBase系統主要依賴於zookeeper和hdfs系統,因此部署HBase須要先去部署zookeeper和hadooplinux

 

2.部署開始bash

  IP或者HOSTNAME須要根據自身主機信息設定。ssh

  部署資源:oop

      兩個節點:xufeng-2(管理節點) xufeng-3(從節點)spa

xufeng-3 xufeng-2

zookeeper線程

namenode3d

SecondaryNameNodecode

masterserver

 

datanode

regionserver 

 

  部署版本:

      CDH5.4.2

  1.設定主機hostname

      #adduser hadoop  //添加一個用戶
      #passwd hadoop   //修改密碼

  2.設定主機hostame  

vi /etc/sysconfig/network

 

  3.設定hosts文件:

10.211.55.18 xufeng-3
10.211.55.21 xufeng-2

  4.拷貝安裝包,按照以下設定安裝包路徑

  

  其中組件文件夾經過軟鏈接到具體安裝目錄,配置文件獨立於安裝目錄,這樣便於後續版本的替換

  安裝包能夠去官網:http://archive.cloudera.com/cdh5/cdh/5/下載。

 

  5.安裝jdk,以下版本,hadoop已經全面放棄了1.6版本,因此請安裝1.7及以上版本

jdk-7u79-linux-x64.rpm

  6.設定無密碼登陸

hadoop用戶下:

xufeng-3上執行: ssh-keygen cd ~/.ssh scp id_rsa.pub xufeng-2:/home/hadoop/.ssh/authorized_keys xufeng-2上執行 ssh-keygen cd ~/.ssh scp id_rsa.pub xufeng-3:/home/hadoop/.ssh/authorized_keys
增長:
    啓動的時候須要ssh到自身,因此也須要將自身的公鑰發佈給本身:
    在各個節點上執行:
     cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  

  7.設定環境變量,經過環境變量的設定,各個服務能夠找到對應的安裝路徑和配置文件路徑  

[hadoop@xufeng-3 hbase-config]$ vi ~/.bash_profile 


#hadoop
export HADOOP_HOME=/opt/hadoop/hadoop
export HADOOP_CONF_DIR=/opt/hadoop/hadoop-config
export HADOOP_LOG_DIR=/opt/hadoop/hadoop/xufeng
#hbase
export HBASE_HOME=/opt/hadoop/hbase
export HBASE_CONF_DIR=/opt/hadoop/hbase-config

#zookeeper
export ZOOKEEPER_HOME=/opt/hadoop/zookeeper
export ZOOCFGDIR=/opt/hadoop/zookeeper-config

#spark
export SPARK_HOME=/opt/hadoop/spark
export SPARK_CONF_DIR=/opt/hadoop/spark-config


PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:SPARK_HOME/bin


export PATH

 

  配置文件和包分割開來,便於後續方便的替換包(版本)。

  8.【單節點】設定zookeeper,啓動zookeeper

   a.將zookeeper安裝包內的conf文件夾下的內容拷貝到zookeeper-config目錄下,並生成zoo.cfg文件  

[hadoop@xufeng-3 bin]$ cd /opt/hadoop/zookeeper-config/
[hadoop@xufeng-3 zookeeper-config]$ ll
總用量 20
-rwxr-x---. 1 hadoop hadoop  535 6月  12 18:05 configuration.xsl
-rwxr-x---. 1 hadoop hadoop 2693 6月  12 18:05 log4j.properties
-rw-rw-r--. 1 hadoop hadoop   72 6月  12 18:13 zoo.cfg
-rw-rw-r--. 1 hadoop hadoop 3633 6月  12 18:13 zookeeper.out
-rwxr-x---. 1 hadoop hadoop  808 6月  12 18:05 zoo_sample.cfg

 

  zoo.cfg內容

[hadoop@xufeng-3 zookeeper-config]$ vi zoo.cfg 

tickTime=2000
dataDir=/opt/hadoop/hadoop_data/zookeeper
clientPort=2181
~                  

  b.啓動zookeeper

zkServer.sh start

  檢查線程

[hadoop@xufeng-3 zookeeper-config]$ jps
5299 QuorumPeerMain
5634 Jps

  9.設定hadoop,啓動hadoop

  須要去主從節點上設定以下幾個文件,這些文件都放在了/opt/hadoop/hadoop-config下,經過環境變量的指定進程可以讀取到。

  其中若是無特殊須要hadoop-env.sh和log4j文件只從安裝包中拷貝不修改。

 

core-site.xml
hdfs-site.xml
hadoop-env.sh
log4j.properties
slaves

  core-site.xml內容:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://xufeng-3:9000</value>
        <description>NameNode URI</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:///opt/hadoop/hadoop_data/hadoop/hdfs/temp</value>
        <description>Abase for other temporary directories.</description>
    </property>
</configuration>

   hdfs-site.xml內容:dfs.replication設定爲1,由於咱們只有一個datanode

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///opt/hadoop/hadoop_data/hdfs/namenode</value>
        <description>NameNode directory for namespace and transaction logs storage.</description>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///opt/hadoop/hadoop_data/hdfs/datanode</value>
        <description>DataNode directory</description>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.datanode.use.datanode.hostname</name>
        <value>false</value>
    </property>
    <property>
        <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
        <value>false</value>
    </property>
    <property>
         <name>dfs.namenode.http-address</name>
         <value>xufeng-3:50070</value>
         <description>Your NameNode hostname for http access.</description>
    </property>
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>xufeng-3:50090</value>
         <description>Your Secondary NameNode hostname for http access.</description>
    </property>
</configuration>

  slaves內容: 只在xufeng-2這臺機器上啓動datanode

xufeng-2

 

  啓動hdfs

start-dfs.sh
注意:
    據說centOS6有一個bug:
    須要關閉防火牆才能聯通端口:

  service iptables stop 
  chkconfig iptables off

 

  進入頁面:hdfs安裝完成: 

 

10,設定HBase,啓動HBase

  的地水電費

  將配置文件從安裝目錄中拷貝到/opt/hadoop/hbase-config,主要有以下文件:

  

  其中hdfs-site.xml爲軟鏈接到hadoop的配置文件,由於HBase是做爲hdfs的客戶端角色。

 

  hbase-env.sh內容(修改點):不要讓HBase使用集成的zookeeper,而是使用咱們在xufeng-3上啓動的zookeeper服務 

# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false

 

  hbase-site.xml內容:

<configuration>
<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
</property>
<property>
  <name>hbase.rootdir</name>
  <value>hdfs://xufeng-3:9000/hbase</value>
</property>
<property>
  <name>hbase.zookeeper.quorum</name>
  <value>xufeng-3:2181</value>
</property>
</configuration>

 

 

  regionservers內容:只在xufeng-2這個從節點上啓動regionserver服務

xufeng-2

 

  

  在xufeng-3節點上啓動HBase:

start-hbase.sh

  進入頁面:HBase安裝完成:

相關文章
相關標籤/搜索