Hadoop hadoop配置文件yarn-site.xml、mapred-site.xml、hdfs-site.xml 、core-site.xml、hadoop-env.cmd詳解

前言:
配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三個配置文件。
上網找的配置可能因爲各個hadoop版本不同,導致無法生效,這裏需要經驗積累。
參數繁多,不用過多糾結每個參數的含義,先照搬配置文件,
用多幾次,總會出現bug,需要反覆調整的參數就是常用參數。

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±

正文開始:

yarn-site.xml文件參數配置
配置 ResourceManager,NodeManager 的通信端口,web 監控端口等信息。

<?xml version="1.0"?>
<configuration>

<!--nomenodeManager獲取數據的方式是shuffle-->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
	<description>NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,纔可運行MapReduce程序</description>
  </property>

<!--指定Yarn的核心角色(ResourceManager)的地址-->   
	<property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1500</value>
		<description>NM總的可用物理內存,以MB爲單位。一旦設置,不可動態修改</description>
    </property>
	<property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>1024</value>
		<description>可申請的最大內存資源</description>
    </property>
	<property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>64</value>
		<description>可申請的最少內存資源</description>
    </property>
	<property>
         <name>yarn.nodemanager.vmem-check-enabled</name>
         <value>false</value>
         <description>由於我的測試機內存少,所以就關閉虛擬內存檢測s</description>
    </property>
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>1</value>
		<description>可使用的最大cpu個數,不受核心數量限制。</description>
    </property> 
</configuration>

mapred-site.xml文件參數配置
注意,該文件不存在,需要將mapred-site.xml.template改名得到。
配置中指示其使用 Yarn 框架執行 map-reduce 處理程序,詳細如下

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>    
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
		<description>告訴hadoop以後MR運行在YARN上</description>
    </property>	
	<property>
        <name>yarn.app.mapreduce.am.resource.mb</name>
        <value>512</value>
		<description>MapReduce作業的缺省配置</description>		
    </property>
	 <property>
        <name>mapreduce.map.memory.mb</name>
        <value>256</value>
		<description>每個Map Task需要的內存量</description>		
    </property>
	<property>
        <name>mapreduce.reduce.memory.mb</name>
        <value>512</value>
		<description>每個Map Task需要的內存量</description>		
    </property>
</configuration>

hdfs-site.xml文件參數配置
注意在 hdfs-site.xml 中配置 nameNode,dataNode 的本地目錄信息,
以及分片備份詳細如下需要根據下面的配置文件的目錄結構在hadoop\data\dfs下
建立2個文件夾,datanode和namenode,
創建hadoop的namedate,datanode,temp,文件目錄。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!--指定hdfs保存數據的副本數量-->
  <property>
    <name>dfs.replication</name>
    <value>1</value>
    <description>副本個數,配置默認是3,應小於datanode機器數量</description>
  </property>

  <property>
    <name>dfs.name.dir</name>
    <value>/C:/Hadoop2.7.4/workplace/name</value>
    <description>namenode上存儲hdfs名字空間元數據 </description>
  </property>

  <property>
    <name>dfs.data.dir</name>
    <value>/C:/Hadoop2.7.4/workplace/data</value>
    <description>datanode上數據塊的物理存儲位置</description>
  </property>
</configuration>

core-site.xml文件參數配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!--指定namenode的地址-->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:8010</value>
    <description>HDFS的URI,文件系統://namenode標識:端口號</description>
  </property>
  <!--用來指定使用hadoop時產生文件的存放目錄-->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/C:/Hadoop2.7.4/workplace/tmp</value>
    <description>namenode上本地的hadoop臨時文件夾</description>
   </property>
</configuration>

hadoop-env.cmd文件參數配置

 設置java環境變量,推薦使用
	set JAVA_HOME=C:\Progra~1\Java\jdk1.8.0_xx
    不推薦用法,
	set JAVA_HOME=%JAVA_HOME%

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
總結:

yarn-site.xml
mapred-site.xml
hdfs-site.xml
core-site.xml
hadoop-env.cmd

這5個文件配置繁多,這裏只挑重點的講,感興趣的同學可以搜一下相關的博文。
有些比較細的配置在初學階段過早研究,效果可能不太好,初學者應該先有個整體把握。
理論+實踐,遇到感興趣的點可以過一輪後回過來研究,這樣效果往往比較好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章