前言
- Hadoop配置文件所在目录:etc
- 配置参数并不是只有下文的那些,很多没配置都是官方默认的参数
- 默认参数查看方式:hadoop.apache.org/docs/r3.1.4… 划到最底下左下角有个Configuration模块
一、hadoop-env.sh 文件
cd /export/server/hadoop-3.1.4/etc/hadoop/
vim hadoop-env.sh
配置JAVA_HOME,找到文件中被注释掉的那行
export JAVA_HOME=/export/server/jdk1.8
设置用户以执行对应角色shell命令
只有设置了HDFS和YARN集群各角色的用户,一键启停脚本才能使用
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
二、core-site.xml文件
- 参数fs.defaultFS:配置默认的文件系统,file:/// 就是本地文件系统; hdfs:// 是hadoop分布式文件系统。
- 参数hadoop.tmp.dir:Hadoop本地数据存储目录 format时自动生成。
- 参数hadoop.http.staticuser.user:在Web UI访问HDFS使用的用户名,涉及到文件访问权限,如果不是root用户,有些目录可能无法访问。
cd /export/server/hadoop-3.1.4/etc/hadoop/
vim core-site.xml
在文件末尾的两个configuration之间插入
<!-- 默认文件系统的名称。通过URI中schema区分不同文件系统。-->
<!-- file:///本地文件系统 hdfs:// hadoop分布式文件系统 gfs://。-->
<!-- hdfs文件系统访问地址:http://nn_host:8020。-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1.itcast.cn:8020</value>
</property>
<!-- hadoop本地数据存储目录 format时自动生成 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.1.4</value>
</property>
<!-- 在Web UI访问HDFS使用的用户名。-->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
三、hdfs-site.xml文件
- 参数dfs.namenode.secondary.http-address:设置SecondaryNameNode角色运行的主机,配置了之后,一键启停脚本才知道在哪台服务器上启动SecondaryNameNode
cd /export/server/hadoop-3.1.4/etc/hadoop/
vim hdfs-site.xml
<!-- 设定SNN运行主机和端口。-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2.itcast.cn:9868</value>
</property>
四、mapred-site.xml文件
- 配置MapReduce程序的一些参数
- 参数mapreduce.framework.name:mr程序默认运行方式。yarn集群模式 local本地模式,执行mr程序时,如果不指定运行方式,就会使用这个参数配置的方式,这里不配置的话,官方默认的是local本地模式
- 参数yarn.app.mapreduce.am.env:MR App Master环境变量
- 参数mapreduce.map.env:MR MapTask环境变量
- 参数mapreduce.reduce.env:MR ReduceTask环境变量
- HADOOP_HOME这个环境变量配置bin目录的父文件夹即可
cd /export/server/hadoop-3.1.4/etc/hadoop/
vim mapred-site.xml
<!-- mr程序默认运行方式。yarn集群模式 local本地模式-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR App Master环境变量。-->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask环境变量。-->
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
五、yarn-site.xml文件
- 配置YARN集群的一些参数
- 参数yarn.resourcemanager.hostname:yarn集群主角色RM运行的机器,一键启停时知道在哪启动ResourceManager
- 参数yarn.nodemanager.aux-services:NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序,否则报错
- 参数yarn.scheduler.minimum-allocation-mb:每个容器请求的最小内存资源(以MB为单位)
- 参数yarn.scheduler.maximum-allocation-mb:每个容器请求的最大内存资源(以MB为单位)
- 参数yarn.nodemanager.vmem-pmem-ratio:容器虚拟内存与物理内存之间的比率,配置为4时,表示每有1G的物理内存,就可以使用4G的虚拟内存
- 虚拟内存:物理内存不够时,使用磁盘来计算,虽然速度慢,但是也能计算
cd /export/server/hadoop-3.1.4/etc/hadoop/
vim yarn-site.xml
<!-- yarn集群主角色RM运行机器。-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1.itcast.cn</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率。-->
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>4</value>
</property>
六、workers文件
- 配置从角色所在的服务器,一键启停时,会遍历workers文件,挨个机器启动从角色(DataNode、NodeManager)
cd /export/server/hadoop-3.1.4/etc/hadoop/
vim workers
node1.itcast.cn
node2.itcast.cn
node3.itcast.cn