Hadoop2.x的安裝與配置


Hadoop2.x的安裝與配置(文檔有詳細)

(一)Hadoop安裝部署的預備條件

  • 安裝Linux
  • 安裝JDK
 

hadoop集群搭建

  • hadoop發行版本

    • 社區版:官方版本 apache社區維護
      • 優點:功能最新的 免費
      • 缺點:穩定性 兼容性不好
        https://archive.apache.org/dist/hadoop/common/

        hadoop-2.6.0-src.tar.gz 官方提供的源碼包
        hadoop-2.6.0.tar.gz   官方預編譯安裝包
    • 商業版:商業公司在社區版本至少進行商業化開發 架構 api 配置不會發生改變 主要改變bug和兼容性
      • 優點:穩的一批 兼容性極好
      • 缺點:花錢 某些軟件可能版本不高 不能使用最新的功能
        http://archive.cloudera.com/cdh5/cdh/5/

        hadoop-2.6.0-cdh5.14.0-src.tar.gz cdh版本源碼包
        hadoop-2.6.0-cdh5.14.0.tar.gz   cdh版本預編譯安裝包

        只要保證cdh版本號是一致的 該版本號中所有的生態圈軟件之間都是兼容的

    • 使用cdh最穩定的一個版本 cdh5.14.0--hadoop 2.6.0
  • hadoop自身版本發展

    • 歷經了1.X 2.X 3.X
    • 當下企業中使用最多的是2系列高階版本 2.5~2.8 穩定兼容性最好
  • hadoop集群介紹

    • hadoop分為兩個集群 hdfs集群 yarn集群
    • hdfs集群 分布式文件存儲
      • 主角色:namenode(nn)
      • 從角色:datanode(dn)
      • 主角色輔助角色(秘書角色):secondarynamenode(snn)
    • yarn集群 集群資源管理 任務調度
      • 主角色:resourcemanager(rm)
      • 從角色:nodemanager(nm)
  • hadoop部署模型

    • 單機模式 所有的進程在一個機器上運行 過家家
    • 偽分布模式 每個進程獨立 在一台機器上 模擬分布式執行環境
    • 分布式集群模式:多個進程多台機器 生成環境中的模式
    • HA高可用集群: 主要解決了單點故障 保證集群穩定 可靠
  • hadoop安裝環境檢測

    • jdk是否正常安裝 環境變量
    • 時間是否同步
    • 防火牆是否關閉

      iptables selinux

    • 主機名 ip映射
    • 免密登錄 ssh
  • hadoop源碼編譯

    • 為什么某些軟件需要編譯源碼
      軟件的運行依賴於操作系統平台 操作系統之間存在着差異性  下載源碼結合具體平台進行編譯
      修改源碼中某些組件的邏輯
    • 什么叫做編譯

      以java語言來說 把.java 編譯成.class --->jar 便於程序運行

    • 如何編譯源碼

      在每個版本的hadoop 源碼包中 building.txt 里面描述了該版本的編譯需要配置的依賴軟件

      最終只需要執行mvn -pachage 進行編譯

      保證編譯過程中網絡的順暢 jar可以下載 推薦使用課程中提供cdh編譯需要的jar倉庫

  • 集群規划(站在架構的角度規划服務器集群分配)
    • 根據軟件自己 軟件之間的工作特性結合服務器的硬件特性 合理安排軟件運行在不同的機器上
    • 原則:
      • 優先滿足軟件需要的硬件資源
      • 盡量避免有沖突的軟件不在一起
      • 有工作上依賴的軟件盡量部署在一起

      NodeManager和Datanode通常部署在一台機器上。

      node-1: NameNode   DataNode                   | ResourceManager NodeManager
      node-2:           DataNode SecondaryNameNode|                 NodeManager
      node-3:           DataNode                   |                 NodeManager

      如何擴展hadoop集群

      node-4   DataNode  NodeManager
      node-5   DataNode NodeManager
      node-6   DataNode NodeManager
      .......
  • hadoop 安裝目錄結構

  •  bin        hadoop集群管理的基本腳本  
    etc       配置文件路徑
    include
    lib
    libexec
    sbin       hadoop集群啟動關閉的腳本(單節點逐個 一鍵啟動)
    share     hadoop 編譯之后的jar 官方自帶示例

  • hadoop配置修改

    • 第一類 shell腳本 hadoop-env.sh

      導入java_home 保證hadoop運行的時候一定可以正確的加載jdk環境變量

      vim etc/hadoop/hadoop-env.sh
      export JAVA_HOME=/export/servers/jdk1.8.0_65
    • 第二類配置文件 4個 xml文件(分別配置了 hdfs mapreduce yarn common)
      • core-site.xml common模塊
        <!-- 指定HADOOP所使用的文件系統schema(URI),HDFS的老大(NameNode)的地址 -->
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node-1:8020</value>
        </property>

        <!-- 指定hadoop運行時產生文件的存儲目錄,默認/tmp/hadoop-${user.name} -->
        <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/data/hadoopdata</value>
        </property>
      • hdfs-site.xml hdfs模塊
        <property>
               <name>dfs.replication</name>
               <value>2</value>
        </property>
          <property>
               <name>dfs.namenode.secondary.http-address</name>
               <value>node-2:50090</value>
        </property>
      • mapred-site.xml mr模塊
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
      • yarn-site.xml
        <property>
               <name>yarn.resourcemanager.hostname</name>
               <value>node-1</value>
        </property>
        <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
        </property>
    • 第三類配置文件 slaves
      • 配合一鍵啟動腳本 到slaves指定的機器上啟動hdfs和yarn集群的從角色
      • 通過 dfs.hosts 指定的slaves文件中的機器才可以加入hadoop集群 白名單
      • 一個寫一個ip或者主機名
      node-1
      node-2
      node-3
  • 把主節點上配置 好的安裝包scp給其他節點上

  • cd /export/servers/
    scp -r hadoop-2.6.0-cdh5.14.0/ node-2:$PWD
    scp -r hadoop-2.6.0-cdh5.14.0/ node-3:$PWD
  • 添加hadoop的環境變量
    export HADOOP_HOME=/export/servers/hadoop-2.6.0-cdh5.14.0
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

安裝部署的三種模式

  • 本地模式
參數文件 配置參數 參考值
hadoop-env.sh JAVA_HOME /root/training/jdk1.8.0_144
  • 偽分布模式
參數文件 配置參數 參考值
hadoop-env.sh JAVA_HOME /root/training/jdk1.8.0_144
hdfs-site.xml dfs.replication 1
... dfs.permissions false
core-site.xml fs.defaultFS hdfs://<hostname>:9000
... hadoop.tmp.dir /root/training/hadoop-2.7.3/tmp
mapred-site.xml mapreduce.framework.name yarn
yarn-site.xml yarn.resourcemanager.hostname <hostname>
... yarn.nodemanager.aux-services mapreduce_shuffle
  • 全分布模式
參數文件 配置參數 參考值
hadoop-env.sh JAVA_HOME /root/training/jdk1.8.0_144
hdfs-site.xml dfs.replication 2
... dfs.permissions false
core-site.xml fs.defaultFS hdfs://<hostname>:9000
... hadoop.tmp.dir /root/training/hadoop-2.7.3/tmp
mapred-site.xml mapreduce.framework.name yarn
yarn-site.xml yarn.resourcemanager.hostname <hostname>
... yarn.nodemanager.aux-services mapreduce_shuffle
slaves DataNode的ip地址或主機名 qujianlei001

如果出現以下警告信息:

只需要在以下兩個文件中增加下面的環境變量,即可:

  • hadoop-env.sh 腳本中:

    export JAVA_HOME=/root/training/jdk1.8.0_144export HADOOP_HOME=/root/training/hadoop-2.7.3export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

  • yarn-env.sh 腳本中:

    export JAVA_HOME=/root/training/jdk1.8.0_144export HADOOP_HOME=/root/training/hadoop-2.7.3export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

(四)驗證Hadoop環境

(五)配置SSH免密登錄

詳細操作見:https://blog.csdn.net/a909301740/article/details/84147035

 

 

 

 

 

 



附件列表

 


免責聲明!

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



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