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