当前位置:   article > 正文

hadoop修改配置文件和环境变量_hadoop命令环境变量export配置

hadoop命令环境变量export配置

前言

在我们安装好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

1、hadoop-env.sh

作用:指定jdk路径、指定各进程(namenode等)的用户名

vi hadoop-env.sh
  • 1

追加至文件末尾,注意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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

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
  • 1
  • 2
  • 3

2)修改文件

vi core-site.xml
  • 1

#在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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

3、hdfs-site.xml

作用:指定SNN进程的位置信息 和 每个block的备份数量

vi hdfs-site.xml
  • 1

#在configuration标签内添加内容

<!-- 设置SNN进程运行机器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:9868</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

补充:这里指定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
  • 1

如果有mapred-site.xml,忽略这一步。

2)修改文件

vi mapred-site.xml
  • 1
<!-- 设置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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

5、yarn-site.xml

作用:与yarn相关的,指定resourcemanager的位置信息。

vi yarn-site.xml
  • 1

#在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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

6、workers

作用:指定工作的节点有哪些。
注意:在hadoop3.0以前,这个文件叫slaves,3.0之后叫做workers。由于我这里是hadoop3.3.0,所以

vi workers
  • 1

把文件里面的localhost删除,添加以下内容

node1
node2
node3
  • 1
  • 2
  • 3

补充: /etc/hosts 和 workers 这两个文件里的主机名写法应该保持一致,否则会导致启动集群时,系统无法识别主机名。比如我/etc/hosts 里写的是node1,那 workers 里写的也应该是node1,而不是node1.itcast.cn。

至此,配置文件修改完成。

三、分发同步hadoop

先前并没有同步hadoop服务,是因为想等修改好配置文件后,再把整个hadoop目录同步过去。
1)回到服务安装路径下,也就是我这里的/export/servers

cd /export/servers
  • 1

2)执行以下命令

scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
  • 1
  • 2

补充:$PWD表示当前节点所在的绝对路径,在这里就是/export/servers,
在执行上述命令后,会把node1当前路径下的hadoop-3.3.0目录及其子目录、文件 复制到 node2和node3 的相同路径(/export/servers)下。也就是root@node2:/export/servers 的另一种写法。

至此,所有节点都安装了hadoop。

四、配置环境变量

光是下载好jdk和hadoop是不行的,系统不知道它们的路径,也就无法正常使用它们。就像我们在命令符界面使用某些工具时,都需要去到相应的路径才能正常使用一样。
负责环境变量的文件是/etc/profile

1、修改环境变量

vi /etc/profile
  • 1

将下面内容添加到profile文件中,然后保存退出。

#java path
export JAVA_HOME=/export/servers/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#hadoop path
export HADOOP_HOME=/export/servers/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

补充:一定要以自己的jdk和hadoop安装路径为准

2、分发环境变量文件

将修改好的profile分件分发给其它节点,就无需每个都配置一次。

scp /etc/profile root@node2:/etc/
scp /etc/profile root@node3:/etc/
  • 1
  • 2

3、使文件生效

一般情况下,保存的配置文件会在下一次启动时更新,使用以下命令可以在当前会话生效,每个节点都执行一次

source /etc/profile 
  • 1

4、查看版本,检验安装

java -version
hadoop version
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/633906
推荐阅读
相关标签
  

闽ICP备14008679号