初學hadoop之hadoop集群搭建


簡介:

  Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。  

Hadoop實現了一個分布式文件系統Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,並且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數據,適合那些有着超大數據集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求,可以以流的形式訪問(streaming access)文件系統中的數據。

Hadoop的框架最核心的設計就是:HDFSMapReduceHDFS為海量的數據提供了存儲,而MapReduce則為海量的數據提供了計算。

分布式架構的常見概念:

  1.集群

    小飯店原來是一個廚師,切菜洗菜備料炒菜全干。后來客人多了,廚房一個廚師忙不過來,又請了個廚師,兩個廚師都能炒一樣的菜,這兩個廚師的關系就是集群。

  2.分布式 

    為了讓廚師專心炒菜,把菜做到極致,又請了個配菜師負責切菜,備菜,備料,廚師和配菜師的關系就是分布式的,一個配菜師也忙不過來,有請了個配菜師,這兩個配菜師的關系就是集群了。所以說有分布式的架構中可能有集群,但集群不等於有分布式。

   3.節點

    節點是指一個可以獨立按照分布式協議完成一組邏輯的程序個體。在具體的項目中,一個節點表示的是一個操作系統上的進程

一.hadoop分布式集群的搭建

  我們需要搭建hadoop集群環境首先需要環境的支持

  1.環境支持

    操作系統: CentOS7 64

         JDK環境: JDK 8

         Hadoop環境: hadoop-2.8.0

         虛擬機名稱: master(主)+slave1(從1)+slave2(從2)

    首先配置一個靜態id

    配置真機網絡共享

   配置虛擬機虛擬網絡

  

 

  找到系統工具,設置,網絡

   將自動改為手動配置如下信息(配置完了重啟即可)

  2.設置主機名

    我這里是直接將所有的配置全都配置完克隆了兩台slave

#編輯hostname文件修改主機名稱
vim /etc/hostname

    主就使用命令改為master,從就使用命令改為slave01,slave02

     

     使用命令查看主機名是否修改成功

      注意:如果不成功可能需要重啟虛擬機!!!

    hostname

     

   3.安裝JDK

    注意:Linux上原來的JDK是不完整的需要我們手動將他們一個個的卸載重新安裝我們的JDK

    首先先使用命令查看Linux上原來的JDK

#查看各自默認安裝的JDK
rpm -qa|grep jdk

    

     使用 rpm -e --nodeps命令 一個一個卸載

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64

    安裝我們的JDK,這里我是使用xf工具上傳的解壓包上傳到/usr/local/java

      注意:這里的java路徑是我自己創建的

   使用命令解壓壓縮包

#解壓壓縮文件
tar -zxvf jdk-8u181-linux-x64.tar.gz

  

   解壓成功后查看目錄

  配置JDK

  首先修改ect下的profile文件

#編輯profile文件
vim /etc/profile

  加入以下內容,請各位按照自身的安裝目錄為准

export JAVA_HOME=/usr/local/jdk1.8.0_121
export CLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

 在文件的最底下添加即可

 

   使用命令刷新一下文件,因為Linux不會自己刷新

source /etc/profile 

  

   輸入java -version命令查看是否安裝成功

   4.安裝並完成hadoop的配置

    使用xf工具將hadoop的壓縮包上傳到Linux里的usr/local/hadoop(自己創建的)

   使用命令行解壓此壓縮包

tar -zxvf hadoop-2.8.0.tar.gz

  

   編輯profile文件也就是配置JDK的文件

vim /ect/profile

  添加如下內容,路徑請務必寫你自己的

export HADOOP_HOME=/usr/local/hadoop-2.8.0
export PATH=$PATH:$HADOOP_HOME/bin:$PATH:$HADOOP_HOME/sbin

  

   添加完成后刷新文件

source /etc/profile 

  編輯hosts文件,將三台主機的主機名稱對應的ip地址寫入(我這里還沒有后續是直接克隆的)

#編輯hosts文件
vim /etc/hosts
#寫入如下內容,注意IP地址以自身為准
192.168.147.11 master
192.168.147.12 slave1
192.168.147.13 slave2

  完成hadoop內部的配置,切換到hadoop2.8的內部文件夾下

cd /usr/local/hadoop/hadoop-2.8.0/etc/hadoop/

 

   配置slaves文件

vim slaves

  

   刪除掉原有的localhost,添加slave主機名

  

  配置core-site.xml文件

vim core-site.xml

  configuration節點中加入如下節點

<property>
     <name>fs.defaultFS</name>
     <value>hdfs://master:9000</value>
</property>
<property>
     <name>hadoop.tmp.dir</name>
   <!--視自身的安裝位置決定-->
     <value>/usr/local/hadoop-2.8.0/tmp</value> 
</property>

 

  配置hdfs-site.xml文件

vim hdfs-site.xml

  configuration節點中加入如下節點

<property>

      <name>dfs.namenode.secondary.http-address</name>

      <value>master:50090</value>

</property>

<property>

      <name>dfs.replication</name>

      <value>2</value>

</property>

<property>

   <!--以自身安裝目錄為准--> 

      <name>dfs.namenode.name.dir</name>

      <value>file:/usr/local/hadoop-2.8.0/hdfs/name</value>

</property>

<property>

      <name>dfs.datanode.data.dir</name>

      <value>file:/usr/local/hadoop-2.8.0/hdfs/data</value>

</property>

  

   編輯hadoop-env.sh

   加入以下內容也就是JDK的安裝目錄

export  JAVA_HOME=/usr/local/jdk1.8.0_121/

  

   編輯yarn-env.sh文件

  

   配置yarn-site.xml

vim yarn-site.xml

  configuration節點中加入如下內容

<property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
</property>
<property>
           <name>yarn.resourcemanager.address</name>
           <value>master:8032</value>
</property>
<property>
          <name>yarn.resourcemanager.scheduler.address</name>
          <value>master:8030</value>
</property>
<property>  
    <name>yarn.log-aggregation-enable</name>  
    <value>true</value>  
</property> 
<property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>master:8031</value>
</property>
<property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>master:8033</value>
</property>
<property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>master:8088</value>
</property>

  配置mapred-site.xml文件

  由於mapred-site.xml文件不存在,需要將mapred-site.xml.template克隆出來一份

cp mapred-site.xml.template  mapred-site.xml
vim mapred-site.xml

  加入如下內容

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

  

   5.克隆主機

    

   克隆完了修改靜態ip

 

   1、在master主機上運行如下

            hdfs namenode -format

  2、啟動服務命令

    start-all.sh 

  3、停止集群的命令

    stop-all.sh


免責聲明!

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



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