前言:
配置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个文件配置繁多,这里只挑重点的讲,感兴趣的同学可以搜一下相关的博文。
有些比较细的配置在初学阶段过早研究,效果可能不太好,初学者应该先有个整体把握。
理论+实践,遇到感兴趣的点可以过一轮后回过来研究,这样效果往往比较好。