hadoop參數配置詳解


 

在搭建hadoop開發環境的時,配置的參數非常多,要怎么設定才能達到最好的效能是一件令人頭痛的事,通過本文的分析使讀者能對hadoop的參數配置有一個詳細的了解,初步學會如何進行hadoop參數配置。

 

一、配置文件介紹

在hadoop集群中,需要配置的文件主要包括四個,分別是core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,這四個文件分別是對不同組件的配置參數,主要內容如下表所示:

  

序號

  

配置文件名


配置對象


主要內容


1


core-site.xml


集群全局參數


用於定義系統級別的參數,如HDFS  URLHadoop的臨時目錄等


2


hdfs-site.xml


HDFS參數


如名稱節點和數據節點的存放位置、文件副本的個數、文件讀取權限等


3


mapred-site.xml


Mapreduce參數


包括JobHistory Server和應用程序參數兩部分,如reduce任務的默認個數、任務所能夠使用內存的默認上下限等


4


yarn-site.xml


集群資源管理系統參數


配置 ResourceManagerNodeManager 的通信端口,web監控端口等



二、hadoop參數格式

 

Hadoop沒有使用java語言的管理配置文件,也沒有使用Apache管理配置文件,而是使用了一套獨有的配置文件管理系統,並提供自己的API。以XML文檔格式進行配置,使用相應的配置文件類讀取,並配置集群的運行。

<?xml version="1.0"?>

<?xml-stylesheettype="text/xsl" href="configuration.xsl"?>

 

<configuration>

     <property>

          <name>fs.defaultFS</name>

           <value>hdfs://cloud01:9000</value>

           <description>定義默認的文件系統主機和端口</description>

     </property>

     <property>

            <name>io.file.buffer.size</name>

            <value>131072</value>

                             <final>4096</final>

            <description>流文件的緩沖區為4K</description>

      </property>

      <property>

              <name>hadoop.tmp.dir</name>

              <value>file:/home/hduser/tmp</value>

               <description>Abase forother temporary directories.</description>

      </property>

</configuration>



在Hadoop配置文件的根元素configuration,一般只包含子元素property。每一個property元素就是一個配置項,配置文件不支持分層或分級。

 

每個配置項一般包括配置屬性 名稱 name、值value和一個關於配置項的描述description。元素final和Java中的關鍵字final類似,意味着這個配置項是“固定不變的”。final一般不出現,但在合並資源的時候,可以防止配置項的值被覆蓋。

在configuration中每個屬性都是string類型的,值類型可能是以下多種類型包括java中的基本類型,如boolean、int、long、float也可以是其他類型,如String、File、數組等。以上面的配置文件為例,定義了三個集群的參數,分別是集群主機和端口、流文件的緩沖區大小,臨時文件存放位置,只有流文件此配置項是int型,而另兩個配置項是字符串型。



三、搭建集群配置時重要參數

 

本節討論在給定的配置文件中指定重要的參數,在四個配置文件中,最重要的參數及其解釋如下:

1. core-site.xml

 

  

序號

  

參數名


默認值


參數解釋


1


fs.defaultFS


file:///


文件系統主機和端口


2


io.file.buffer.size


4096


流文件的緩沖區大小


3


hadoop.tmp.dir


/tmp/hadoop-${user.name}


臨時文件夾

2. hdfs-site.xml

  

序號

  

參數名


默認值


參數解釋


1


dfs.namenode.secondary.http-address


0.0.0.0:50090


定義HDFS對應的HTTP服務器地址和端口


2


dfs.namenode.name.dir


file://${hadoop.tmp.dir}/dfs/name


定義DFS的名稱節點在本地文件系統的位置


3


dfs.datanode.data.dir


file://${hadoop.tmp.dir}/dfs/data


定義DFS數據節點存儲數據塊時存儲在本地文件系統的位置


4


dfs.replication


3


缺省的塊復制數量


5


dfs.webhdfs.enabled


true


是否通過http協議讀取hdfs文件,如果選是,則集群安全性較差

3. mapred-site.xml

 

  

序號

  

參數名


默認值


參數解釋


1


mapreduce.framework.name


local


取值localclassicyarn其中之一,如果不是yarn,則不會使用YARN集群來實現資源的分配


2


mapreduce.jobhistory.address


0.0.0.0:10020


定義歷史服務器的地址和端口,通過歷史服務器查看已經運行完的Mapreduce作業記錄


3


mapreduce.jobhistory.webapp.address


0.0.0.0:19888


定義歷史服務器web應用訪問的地址和端口

4. yarn-site.xml

 

  

序號

  

參數名


默認值


參數解釋


1


yarn.resourcemanager.address


0.0.0.0:8032


ResourceManager 提供給客戶端訪問的地址。客戶端通過該地址向RM提交應用程序,殺死應用程序等


2


yarn.resourcemanager.scheduler.address


0.0.0.0:8030


ResourceManager提供給ApplicationMaster的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等


3


yarn.resourcemanager.resource-tracker.address


0.0.0.0:8031


ResourceManager 提供給NodeManager的地址。NodeManager通過該地址向RM匯報心跳,領取任務等


4


yarn.resourcemanager.admin.address


0.0.0.0:8033


ResourceManager 提供給管理員的訪問地址。管理員通過該地址向RM發送管理命令等。


5


yarn.resourcemanager.webapp.address


0.0.0.0:8088


ResourceManagerweb 服務提供地址。用戶可通過該地址在瀏覽器中查看集群各類信息


6


yarn.nodemanager.aux-services


 


通過該配置項,用戶可以自定義一些服務,例如Map-Reduceshuffle功能就是采用這種方式實現的,這樣就可以在NodeManager上擴展自己的服務。




四、搭建集群配置樣例

樣例中搭建的集群一共有三台機器,其yarn和namenode都在同一台機器上,該機器的機器名稱為cloud01,所用系統為unbuntu 12.10。

配置文件1:core-site.xml

<configuration>

               <property>

                               <name>fs.defaultFS</name>

                               <value>hdfs://cloud01:9000</value>

               </property>

       <property>

                               <name>io.file.buffer.size</name>

                               <value>131072</value>

               </property>

       <property>

                               <name>hadoop.tmp.dir</name>

                               <value>file:/home/hduser/tmp</value>

               </property>

</configuration>

配置文件2:hdfs-site.xml

<configuration>

       <property>

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

               <value>cloud01:9001</value>

        </property>

         <property>

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

                <value>file:/home/hduser/dfs/name</value>

            </property>

           <property>

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

                   <value>file:/home/hduser/dfs/data</value>

            </property>

            <property>

                    <name>dfs.replication</name>

                    <value>2</value>

             </property>

             <property>

                    <name>dfs.webhdfs.enabled</name>

                    <value>true</value>

         </property>

</configuration>

配置文件3:mapred-site.xml

<configuration>

               <property>

                               <name>mapreduce.framework.name</name>

                               <value>yarn</value>

               </property>

               <property>

                               <name>mapreduce.jobhistory.address</name>

                               <value>cloud01:10020</value>

               </property>

               <property>

               <name>mapreduce.jobhistory.webapp.address</name>

               <value>cloud01:19888</value>

       </property>

</configuration>

 

配置文件4: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>cloud01:8132</value>

       </property>

               <property>

               <name>yarn.resourcemanager.scheduler.address</name>

               <value>cloud01:8130</value>

               </property>

               <property>

                       <name>yarn.resourcemanager.resource-tracker.address</name>

                       <value> cloud01:8131</value>

               </property>

               <property>

                       <name>yarn.resourcemanager.admin.address</name>

                       <value> cloud01:8133</value>

               </property>

               <property>

               <name>yarn.resourcemanager.webapp.address</name>

               <value>cloud01:8188</value>

       </property>

</configuration>

 

 

四、更多的配置參數的信息

 

上面講過的對hadoop進行的配置,都是一些重要的配置信息,一個好的hadoop 管理員應該熟悉和掌握全部的配置信息,這樣才能更好地解決hadoop集群系統在運行過程中遇到的問題。通過可以通過兩個辦法獲取得全部的配置信息:

 

方法一.可以通過hadoop官方網址查詢,網址如下:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

通過這些網址,可以了解最新的全部的hadoop 配置信息,而且包括一些過時的定義標識,從而更好地維護您的集群。

 

方法二:通過集群工具查詢

集群配置好后,可以通過http://192.168.75.101:8188/conf,查看集群參數狀況,其中192.168.75.101為yarn.resourcemanager.webapp.address配置項的地址,8188為該配置項設置的端口。


免責聲明!

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



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