分布式Hadoop和HBase整合


環境:

  CentOS 6.6                hadoop-2.6.0            hbase-0.98.10.1

 

  HBase1    192.168.1.4     Master

  HBase2    192.168.1.5     Slave1

  HBase3    192.168.1.6     Slave2

 

准備工作:

新建hadoop賬戶

  每台主機都需要設置

useradd hadoop

passwd hadoop

 

  切換到hadoop用戶,以下操作全部使用hadoop用戶,所有目錄的user和group均為hadoop,如果不是,手動改為hadoop

 

設置JAVA環境

  每台主機都需要設置

  參考文章:http://www.cnblogs.com/xs104/p/4478096.html

 

設置hosts

  每台主機都需要設置

vi /etc/hosts

127.0
.0.1 localhost 192.168.1.4 HBase1 192.168.1.5 HBase2 192.168.1.6 HBase3

 

設置無密碼ssh訪問子節點

在Master機器上(HBase1)執行:

  1.在/home/hadoop目錄下新建文件夾.ssh,設置權限為700

  2.生成密鑰

ssh-keygen -t rsa 

  連續輸入三次回車,則在.ssh文件夾內生成了id_rsaid_rsa.pub兩個密鑰文件  

  3.在其他兩台機器上新建.ssh目錄並將id_rsa.pub公鑰文件復制到.ssh文件中

  在其他兩台機器上新建文件夾

ssh hadoop@192.168.1.5 "mkdir /home/hadoop/.ssh;chmod 700 /home/hadoop/.ssh"
ssh hadoop@192.168.1.6 "mkdir /home/hadoop/.ssh;chmod 700 /home/hadoop/.ssh"

  將密鑰復制到其他兩台機器的.ssh文件夾

scp /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.5:/home/hadoop/.ssh/id_rsa.pub
scp /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.1.6:/home/hadoop/.ssh/id_rsa.pub

  執行第三步的時候,需要遠程連接其他兩台機器,所以會提示需要輸入hadoop賬戶的密碼

 

在三台機器上分別執行:

touch /home/hadoop/.ssh/authorized_keys

  這樣就新建了一個authorized_keys文件,需要注意,該文件的權限為600,如果不是,手動更改

將Master上的id_rsa.pub文件添加到authorized_keys中

cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

  

  這時候回到Master機器上,就可以無密碼ssh連接自己和子節點了

ssh 192.168.1.4
ssh 192.168.1.5
ssh 192.168.1.6

  有時候第一連接的時候會需要輸入密碼,第二次就不需要了,如果確保前面的操作沒有錯誤,第二次還需要密碼的話,嘗試關閉防火牆,要是還不行,嘗試關閉SELinux

chkconfig iptables off
#關閉selinux
編輯/etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled  

  

  至此,准備工作已經完成,開始部署hadoop。

 

 

Hadoop

在正式配置hadoop之前,需要在master本地文件系統創建以下文件夾:

       /home/hadoop/dfs/name

       /home/hadoop/dfs/data

       /home/hadoop/tmp

 

開始配置,所有配置文件均在hadoop的etc/hadoop目錄下

  1. hadoop-env.sh

         export JAVA_HOME=你的jdk目錄

  2. yarn-env.sh

         export JAVA_HOME=你的jdk目錄

  3. slaves

         填寫所有子節點

  4. core-site.xml

<configuration>
       <property>
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.1.4:8020</value>
       </property>
       <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
       <property>
               <name>hadoop.tmp.dir</name>
               <value>file:/home/hadoop/tmp</value>
               <description>Abase for other temporary   directories.</description>
       </property>
        <property>
               <name>hadoop.proxyuser.hadoop.hosts</name>
               <value>*</value>
       </property>
       <property>
               <name>hadoop.proxyuser.hadoop.groups</name>
               <value>*</value>
       </property>
    <property>
        <name>io.native.lib.available</name>
        <value>true</value>
    </property>
</configuration>

 

  5. hdfs-site.xml

<configuration>
       <property>
                <name>dfs.namenode.secondary.http-address</name>
               <value>192.168.1.4:9001</value>
       </property>
     <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/home/hadoop/dfs/name</value>
       </property>
      <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/home/hadoop/dfs/data</value>
       </property>
       <property>
               <name>dfs.replication</name>
               <value>3</value>
        </property>
        <property>
                 <name>dfs.webhdfs.enabled</name>
                  <value>true</value>
         </property>
</configuration>

 

  6. mapred-site.xml

<configuration>
    <property>                                                                  
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.1.4:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
                <value>192.168.1.4:19888</value>
    </property>
</configuration>

 

  7. yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
        <property>                                                                
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
        <name>yarn.resourcemanager.address</name>
        <value>192.168.1.4:8032</value>
       </property>
       <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.1.4:8030</value>
       </property>
       <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.1.4:8031</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.1.4:8033</value>
       </property>
       <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.1.4:8088</value>
       </property>
</configuration>

 

  配置完成之后,將hadoop復制到兩台子節點中

sudo scp -r /usr/local/hadoop2.6/ hadoop@192.168.1.5:/usr/local/

sudo scp -r /usr/local/hadoop2.6/ hadoop@192.168.1.6:/usr/local/

 

  至此,所有配置完成,剩下的就是啟動驗證了

格式化hadoop

bin/hdfs namenode -format

 

 

啟動

sbin/start-all.sh

 

  啟動之后,在Master上使用jps命令會顯示有“Jps、NameNode、SecondaryNameNode、ResourceManager”四個進程。在slave上使用jps命令會顯示有“DataNode、Jps、 NodeManager”三個進程。

 

 

HBase

 

安裝需要注意以下幾點:

 

         1. 已經配置JDK環境

 

         2. hadoop已經正確安裝

 

         3. ssh必須安裝啟動

 

         4. 各個主機時間必須相同(可容易些許的不一致)

sudo ntpdate time.nist.gov

                  

 

開始配置HBase

 

         1. 在每個節點創建hbase的臨時目錄和zookeeper目錄

 

         2. 配置hbase-env.sh文件

 

         修改JAVA環境

export JAVA_HOME=/usr/local/jdk1.7

         啟動HBase自動的zookeeper

export HBASE_MANAGES_ZK=true

  3. 配置hbase-site.xml

<configuration>
    <property>
         <name>hbase.rootdir</name>
         <value>hdfs://192.168.1.4:8020/hbase</value>
         <description>The directory shared by region servers.</description>
    </property>
    <property>
        <name>hbase.master</name>
        <value>hdfs://192.168.1.4:60000</value>
    </property>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/home/hadoop/hbaseTmp</value>
    </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
    <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/home/hadoop/zookeeper</value>
        </property>
    <property>
                <name>hbase.zookeeper.quorum</name>
                <value>HBase1,HBase2,HBase3</value>
        </property>
</configuration>

 

 

         至此,HBase安裝完成

  啟動hbase

bin/start-hbase.sh

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM