前言
在我们安装好hadoop之后,需要对其内部的一些配置文件进行修改,以满足特定的需求和环境,确保Hadoop集群的正常运行和数据的正确处理。
一、配置文件类型
1、Hadoop默认配置文件
2、Hadoop自定义配置文件
我们要修改的就是主要的自定义配置文件。
二、修改配置文件
进入配置文件所在路径,它们位于$HADOOP_HOME/etc/hadoop
这个路径下,在我这就是 /export/servers/hadoop-3.3.0/etc/hadoop
。
cd /export/servers/hadoop-3.3.0/etc/hadoop
1、hadoop-env.sh
作用:指定jdk路径、指定各进程(namenode等)的用户名
vi hadoop-env.sh
追加至文件末尾,注意JAVA_HOME
是你安装jdk的路径。
export JAVA\_HOME=/export/servers/jdk1.8.0_241
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
2、core-site.xml
这一块添加的内容比较多,但主要先了解两个:为hadoop挑选文件系统 和 指定 hadoop数据保存路径。
1)创建保存hadoop数据的目录
mkdir -p /export/data/hadoop-3.3.0
scp -r /export/data root@node2:/export
scp -r /export/data root@node3:/export
2)修改文件
vi core-site.xml
#在configuration标签内添加以下内容
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/data/hadoop-3.3.0</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<!-- 文件系统垃圾桶保存时间 -->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
3、hdfs-site.xml
作用:指定SNN进程的位置信息 和 每个block的备份数量
vi hdfs-site.xml
#在configuration标签内添加内容
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
补充:这里指定secondarynamenode在node2上,也就意味着我们jps时,这个进程是显示在node2节点上,而不是node1,如果想要放在node1上,只需修改value的值即可。
4、mapred-site.xml
作用:mapreduce相关的
注意:有些版本是没有mapred-site.xml文件的,只有mapred-site.xml.template模板,可以先复制一份这样的模板,再去修改。
1)备份mapred-site.xml.template
cp mapred-site.xml.template mapred-site.xml
如果有mapred-site.xml,忽略这一步。
2)修改文件
vi mapred-site.xml
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程序历史服务地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- MR程序历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP\_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP\_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP\_HOME}</value>
</property>
5、yarn-site.xml
作用:与yarn相关的,指定resourcemanager的位置信息。
vi yarn-site.xml
#在configuration标签内添加内容
<!-- 设置YARN集群主角色运行机器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
<!-- 历史日志保存的时间 7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
6、workers
作用:指定工作的节点有哪些。
注意:在hadoop3.0以前,这个文件叫slaves,3.0之后叫做workers。由于我这里是hadoop3.3.0,所以
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
workers
作用:指定工作的节点有哪些。
注意:在hadoop3.0以前,这个文件叫slaves,3.0之后叫做workers。由于我这里是hadoop3.3.0,所以
[外链图片转存中…(img-bdi29Gf9-4701985239630)]
[外链图片转存中…(img-hifyB0Ds-4701985239631)]
[外链图片转存中…(img-Qq1aMs2H-4701985239631)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!