hadoop-2:深入探索hadoop3.3.1集群模式下的各个组件

2021-08-12 11:50:00 浏览数 (1)

(1).关于hadoop3.3.1使用的java版本

(2).准备工作

(3).配置 Hadoop 守护进程

3.1.配置etc/hadoop/core-site.xml

3.2.配置etc/hadoop/hdfs-site.xml

3.2.1.namenode配置

3.2.2.DataNode 的配置

3.3.配置etc/hadoop/yarn-site.xml

3.3.1.ResourceManager和Node的共同配置

3.3.2.ResourceManager的配置

3.3.2.NodeManager的配置

3.3.3.HistoryServer的配置

3.4.配置etc/hadoop/mapred-site.xml

3.4.1.MapReduce 应用程序的配置

3.4.2.MapReduce JobHistory 服务器的配置

(4).Slaves File

(5).Hadoop Rack Awareness

(6).Logging

(7).启动hadoop cluster

(8).目录总结

8.1.namenode相关目录与文件

8.2.datanode相关目录与文件

8.3.yarn的resourceManager的相关目录与文件

8.4.yarn的nodeManager的相关目录与文件

(9).参考资料

(10).相关阅读

(1).关于hadoop3.3.1使用的java版本

我们需要先研究一下官方给出的建议:

Hadoop Java Versions

https://cwiki.apache.org/confluence/display/HADOOP/Hadoop Java Versions

可以看到hadoop3.3.1最契合的java版本是java8:

可以看到java11编译hadoop3.3.1还有不少问题要处理,虽然官方说明可以讲java8编译的hadoop3.3.1在java11上run,但是不要这么做,容易把自己搞死。

到此,我们确认java大版本是8。再确认是哪个小版本,以及是否可以用openjdk替代。

可以看到,hadoop3.3.1的官方建议就是openjdk8,所有的build/test/release等都是基于openjdk8。

接下来确认小版本号:

显然,小版本号要使用1.8.0_242。

最终我们确定使用的java版本是:openjdk1.8.0_242。

顺带还可以关注openjdk11之于hadoop3.3.1的落地情况:

https://ci-hadoop.apache.org/job/hadoop-qbt-trunk-java11-linux-x86_64/

(2).准备工作

/app/3rd:放置大数据各个组件的运行时程序,不通组件在不同目录。

/app/logs:放置大数据各个组件的日志,不同组件在不同目录。

/app/data:放置大数据各个组件的数据,不同组件在不同目录。

在大多数情况下,最好指定目录,以便它们只能由将要运行 hadoop 守护程序的用户写入。否则就有可能发生符号链接攻击。

要保证/app在数据盘的挂载点下,做软链。

修改/app/3rd/hadoop3.3.1/etc/hadoop/hadoop-env.sh和/etc/profile:

设置hadoop程序目录:

HADOOP_HOME=/app/3rd/hadoop-3.3.1

source /etc/profile

(3).配置 Hadoop 守护进程

3.1.配置etc/hadoop/core-site.xml

fs.defaultFS:名称节点 URI,格式为hdfs://内网ip:port/

io.file.buffer.size:SequenceFiles 中使用的读/写缓冲区的大小。

什么是sequenceFile?

a1.sequenceFile文件是Hadoop用来存储二进制形式的[Key,Value]对而设计的一种平面文件(Flat File)。

a2.可以把SequenceFile当做是一个容器,把所有的文件打包到SequenceFile类中可以高效的对小文件进行存储和处理。

a3.SequenceFile文件并不按照其存储的Key进行排序存储,SequenceFile的内部类Writer提供了append功能。

a4.SequenceFile中的Key和Value可以是任意类型Writable或者是自定义Writable。

a5.在存储结构上,SequenceFile主要由一个Header后跟多条Record组成,Header主要包含了Key classname,value classname,存储压缩算法,用户自定义元数据等信息,此外,还包含了一些同步标识,用于快速定位到记录的边界。每条Record以键值对的方式进行存储,用来表示它的字符数组可以一次解析成:记录的长度、Key的长度、Key值和value值,并且Value值的结构取决于该记录是否被压缩。

增加配置:

fs.defaultFS hdfs://172.30.96.33:9000

io.file.buffer.size 131072

3.2.配置etc/hadoop/hdfs-site.xml

3.2.1.namenode配置

dfs.namenode.name.dir:

Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.

dfs.hosts / dfs.hosts.exclude:

允许/排除的 DataNode 列表。 如有必要,请使用这些文件来控制允许的数据节点列表。

其中dfs.host列出了连入namenode的节点,如果为空,则所有的datanode都可以连入namenode。如果不为空,则文件中存在的datanode可以连入。dfs.hosts.exclude列出了禁止连入namenode的节点。如果一个节点同时存在于dfs.hosts和dfs.hosts.exclude则禁止连入。

很有必要,管理/元数据节点肯定不能和datanode等混搭。

dfs.blocksize:官方文档是268435456(256MB)。

默认值:268435456(256MB)

大型文件系统的 HDFS 块大小为 256MB。

dfs.namenode.handler.count:官方文档是100。

默认值:100

More NameNode server threads to handle RPCs from large number of DataNodes.

增加配置:

先建立需要的目录和文件:

mkdir -p /app/data/hadoop3.3.1/namenode/name.dir

>/app/data/hadoop3.3.1/namenode/datanode-allow-list

>/app/data/hadoop3.3.1/namenode/datanode-deny-list

dfs.namenode.name.dir /app/data/hadoop3.3.1/namenode/name.dir

dfs.hosts /app/data/hadoop3.3.1/namenode/datanode-allow-list

dfs.hosts.exclude file:///app/data/hadoop3.3.1/namenode/datanode-deny-list

dfs.blocksize 268435456

dfs.namenode.handler.count 100

在文件datanode-allow-list和datanode-deny-list中配置主机名,多个主机名通过换行区分。

由于是在一台机器部署多节点集群,所以只配置一个:datanode-allow-list

hadoop01

3.2.2.DataNode 的配置

mkdir -p /app/3rd/data/hadoop3.3.1/datanode/data

dfs.datanode.data.dir

DataNode本地文件系统上的路径列表,放置数据存储块。

如果这是逗号分隔的目录列表,则数据将存储在所有命名目录中,通常存储在不同的设备上,而不是在一台datanode放置多个目录(没意义)。

增加配置:

dfs.datanode.data.dir file:///app/data/hadoop3.3.1/datanode/data

3.3.配置etc/hadoop/yarn-site.xml

配置yarn的两个组件NodeManager和ResourceManager。

3.3.1.ResourceManager和Node的共同配置

了解一下即可,使用默认配置不修改。

yarn.acl.enable和yarn.admin.acl:维持默认值,不用修改配置。

其中yarn.acl.enable默认值为true。而对于yarn.admin.acl默认值为*,意味着所有人都可以提交任务、管理已提交 (比如取消 kill) 的任务。格式为 "以逗号分隔的用户列表+空格+以逗号分隔的用户组列表",例如 "user1,user2 group1,group2"。如果只有组信息,需要在最前端加入一个空格,例如" group1,group2"。另外特别需要注意的是必须将" yarn"加入到用户列表中,默认安装CDH后,有关YARN服务的命令会以yarn用户的身份进行运行,若yarn不设置于yarn.admin.acl中,可能出现权限相关的错误 (例如刷新动态资源池)。

yarn.log-aggregation-enable:使用默认值false,不用修改配置。

日志聚合到一台datanode。禁用,会浪费资源,是集群不稳定因素。

3.3.2.ResourceManager的配置

mkdir -p /app/data/hadoop3.3.1/yarn/resourcemanager

>/app/data/hadoop3.3.1/yarn/resourcemanager/node-allow-list

>/app/data/hadoop3.3.1/yarn/resourcemanager/node-deny-list

yarn.resourcemanager.address:不配置,使用默认。

默认值:${yarn.resourcemanager.hostname}:8032

ResourceManager主机:客户端提交作业的端口。host:port 如果设置,则覆盖在yarn.resourcemanager.hostname 中设置的主机名。

ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等。

yarn.resourcemanager.scheduler.address:不配置,使用默认。

默认值:${yarn.resourcemanager.hostname}:8030

ResourceManager主机:ApplicationMasters 与调度程序对话以获取资源的端口。host:port 如果设置,则覆盖在yarn.resourcemanager.hostname 中设置的主机名。

ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。

yarn.resourcemanager.resource-tracker.address:不配置,使用默认。

默认值:${yarn.resourcemanager.hostname}:8031

ResourceManager主机:NodeManager 的端口。host:port 如果设置,则覆盖在yarn.resourcemanager.hostname 中设置的主机名。

ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。

yarn.resourcemanager.admin.address:不配置,使用默认。

默认值:${yarn.resourcemanager.hostname}:8033

ResourceManager主机:管理命令的端口。 host:port 如果设置,则覆盖在yarn.resourcemanager.hostname 中设置的主机名。

ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。

yarn.resourcemanager.webapp.address:不配置,使用默认。

默认值:${yarn.resourcemanager.hostname}:8088

ResourceManager web-ui 主机:端口。 host:port 如果设置,则覆盖在yarn.resourcemanager.hostname 中设置的主机名。

ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。

yarn.resourcemanager.hostname:不配置,使用默认。

ResourceManager主机名。

yarn.resourcemanager.scheduler.class:不配置,使用默认。

默认值:

org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

启用的资源调度器主类。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler。

ResourceManager调度程序类。 CapacityScheduler(推荐)、FairScheduler(也推荐)或FifoScheduler。使用完全限定的类名,例如org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler。

yarn.scheduler.minimum-allocation-mb/yarn.scheduler.maximum-allocation-mb:关键配置,要配置。

默认配置:1024/8192

在资源管理器中分配给每个容器请求的最小/最大内存限制。以 MB 为单位

单个可申请的最小/最大内存资源量。比如设置为1024和3072,则运行MapRedce作业时,每个Task最少可申请1024MB内存,最多可申请3072MB内存。

yarn.scheduler.minimum-allocation-vcores/yarn.scheduler.maximum-allocation-vcores:关键配置,要配置。

默认配置:1/32

单个可申请的最小/最大core数。比如设置为1和4,则运行MapRedce作业时,每个Task最少可申请1个core,最多可申请4个core。

yarn.resourcemanager.nodes.include-path / yarn.resourcemanager.nodes.exclude-path:关键配置,要配置。

默认值:""

允许/排除的 NodeManager 列表。 如有必要,请使用这些文件来控制允许的 NodeManager 列表。

NodeManager黑白名单。如果发现若干个NodeManager存在问题,比如故障率很高,任务运行失败率高,则可以将之加入黑名单中。注意,这两个配置参数可以动态生效。(调用一个refresh命令即可)。

增加配置:

yarn.scheduler.minimum-allocation-mb 3000

yarn.scheduler.maximum-allocation-mb 3000

yarn.scheduler.minimum-allocation-vcores 1

yarn.scheduler.maximum-allocation-vcores 1

yarn.resourcemanager.nodes.include-path >/app/3rd/data/hadoop3.3.1/yarn/resourcemanager/node-allow-list

yarn.resourcemanager.nodes.exclude-path /app/3rd/data/hadoop3.3.1/yarn/resourcemanager/node-deny-list

在文件node-allow-list和node-deny-list中配置主机名,多个主机名通过换行区分。

由于是在一台机器部署集群,所以只配置一个:node-allow-list

hadoop01

3.3.2.NodeManager的配置

mkdir -p /app/data/hadoop3.3.1/yarn/nodemanager/nm-local-dir

mkdir -p /app/data/hadoop3.3.1/yarn/nodemanager/log-dirs-0

yarn.nodemanager.resource.memory-mb:非常关键,要配置。

以MB为单位,定义NodeManager上可供运行容器使用的总可用内存。

默认值:8192MB

我是这么设的:总物理内存-2G或3G。给操作系统和hadoop/yarn自身运行留2G。

NodeManager总的可用物理内存。注意,该参数是不可修改的,一旦设置,整个运行过程中不可动态修改。另外,该参数的默认值是8192MB,即使你的机器内存不够8192MB,YARN也会按照这些内存来使用,因此,这个值通过一定要配置。不过,Apache已经正在尝试将该参数做成可动态修改的。

yarn.nodemanager.vmem-pmem-ratio:不用配置,使用默认值。

默认值:2.1。

每使用1MB物理内存,最多可用的虚拟内存数。NodeManager 上的任务使用的虚拟内存总量可能会超过其物理内存使用量这个比例。

yarn.nodemanager.local-dirs:要配置,指定到数据盘挂载点下的目录。

默认值:${hadoop.tmp.dir}/nm-local-dir

本地文件系统上写入中间数据的路径的逗号分隔列表。多条路径有助于分散磁盘 I/O(无所谓了,都是ssd)。

yarn.nodemanager.log-dirs :要配置,指定到数据盘挂载点下的目录。

默认值:${yarn.log.dir}/userlogs

日志存放目录。多条路径有助于分散磁盘 I/O(无所谓了,都是ssd)。

yarn.nodemanager.log.retain-seconds:不用配置,使用默认值。

默认值:10800(3小时)

NodeManager上日志最多存放时间(不启用日志聚集功能时有效)。

yarn.nodemanager.remote-app-log-dir:不用配置,使用默认值(默认禁用此功能)。

默认值:/tmp/logs

当应用程序运行结束后,日志被转移到的HDFS目录(启用日志聚集功能时有效)。这功能很鸡肋,别用,集群不稳定因素。

yarn.nodemanager.remote-app-log-dir-suffix:不用配置,使用默认值(默认禁用此功能)。

日志 附加到远程日志目录的后缀。日志将聚合到 {yarn.nodemanager.remote-app-log-dir}/{user}/

yarn.nodemanager.aux-services:关键配置,要配置。

默认值:""

mapreduce_shuffle,需要为 Map Reduce 应用程序设置的 Shuffle 服务。

NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序。

配置shuffle机制。map 阶段处理的数据如何传递给 reduce 阶段,是 MapReduce 框架中最关键的一个流 程,这个流程就叫 shuffle。shuffle是洗牌、发牌 ——(核心机制:数据分区,排序,分组,规约,合并等过程)。

yarn.nodemanager.env-whitelist:要配置。

容器可能会覆盖的环境变量,而不是使用NodeManager的默认值。

容器从 NodeManager 继承的环境属性 对于 mapreduce 应用程序,除了默认值之外,还应该添加 HADOOP_MAPRED_HOME。属性值应该是 JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME

增加配置:

<< span="">property> yarn.nodemanager.resource.memory-mb 29000

yarn.nodemanager.local-dirs /app/data/hadoop3.3.1/yarn/nodemanager/nm-local-dir

yarn.nodemanager.log-dirs /app/data/hadoop3.3.1/yarn/nodemanager/log-dirs-0

yarn.nodemanager.aux-services mapreduce_shuffle

yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME

3.3.3.HistoryServer的配置

什么是历史服务器?

Hadoop自带了一个历史服务器,可以通过历史服务器查看已经运行完的Mapreduce作业记录,比如用了多少个Map、用了多少个Reduce、作业提交时间、作业启动时间、作业完成时间等信息。

yarn.log-aggregation.retain-seconds:不用配置,使用默认值(默认是禁用)

默认值:-1

在删除聚合日志之前保留聚合日志的时间。-1 禁用。小心,将其设置得太小,您将向名称节点发送垃圾邮件。

yarn.log-aggregation.retain-check-interval-seconds:不用配置,使用默认值(默认是禁用)

检查聚合日志保留的时间间隔。如果设置为 0 或负值,则该值计算为聚合日志保留时间的十分之一。小心,将其设置得太小,您将向名称节点发送垃圾邮件。

3.4.配置etc/hadoop/mapred-site.xml

3.4.1.MapReduce 应用程序的配置

mapreduce.framework.name:关键配置,要配置。配置为:yarn

mapreduce/flink等 基于yarn来实现计算的,基础开关。

mapreduce.map.memory.mb:关键配置,要配置。

默认值:1536

每个Map Task需要的内存量

mapreduce.map.java.opts:关键配置,要配置。

默认值:-Xmx1024M

运行的map程序的最大堆大小。

mapreduce.reduce.memory.mb:关键配置,要配置。

默认值:3072

每个Reduce Task需要的内存量

mapreduce.reduce.java.opts:关键配置,要配置。

默认值:-Xmx2560M

运行的reduce程序的最大堆大小。

mapreduce.task.io.sort.mb:关键配置,要配置。

默认值:512

任务内部排序缓冲区大小。更高的内存限制,同时对数据进行排序以提高效率。

mapreduce.task.io.sort.factor:关键配置,要配置。

默认值:100

More streams merged at once while sorting files.

mapreduce.reduce.shuffle.parallelcopies :关键配置,要配置。

默认值:50

Reduce Task启动的并发拷贝数据的线程数目。

增加配置:

<< span="">property> mapreduce.framework.name yarn

<< span="">property> mapreduce.map.memory.mb 1536

<< span="">property> mapreduce.map.java.opts -Xmx1024M

<< span="">property> mapreduce.reduce.memory.mb 3072

<< span="">property> mapreduce.reduce.java.opts -Xmx2560M

<< span="">property> mapreduce.task.io.sort.mb 512

<< span="">property> mapreduce.task.io.sort.factor 100

<< span="">property> mapreduce.reduce.shuffle.parallelcopies 50

3.4.2.MapReduce JobHistory 服务器的配置

mkdir -p /app/data/hadoop3.3.1/mapreduce/mr-history/tmp

mkdir -p /app/data/hadoop3.3.1/mapreduce/mr-history/done

MapReduce JobHistory 和“3.3.3.HistoryServer的配置”是一个东西。

mapreduce.jobhistory.address:不用配置,使用默认值。

默认值:0.0.0.0:10020

MapReduce JobHistory Server地址。

mapreduce.jobhistory.webapp.address:不用配置,使用默认值。

默认值:0.0.0.0:19888

MapReduce JobHistory Server Web UI地址。

mapreduce.jobhistory.intermediate-done-dir:要配置。

默认值:/mr-history/tmp

MapReduce作业产生的日志存放位置。

mapreduce.jobhistory.done-dir:要配置。

默认值:/mr-history/done

MR JobHistory Server管理的日志的存放位置。

增加配置:

<< span="">property> mapreduce.jobhistory.intermediate-done-dir /app/data/hadoop3.3.1/mapreduce/mr-history/tmp

<< span="">property> mapreduce.jobhistory.done-dir /app/data/hadoop3.3.1/mapreduce/mr-history/done

(4).Slaves File

首先要明白什么是slave:

HDFS是Hadoop的分布式文件系统(Hadoop Distributed File System),实现大规模数据可靠的分布式读写。HDFS针对的使用场景是数据读写具有“一次写,多次读”的特征,而数据“写”操作是顺序写,也就是在文件创建时的写入或者在现有文件之后的添加操作。HDFS保证一个文件在一个时刻只被一个调用者执行写操作,而可以被多个调用者执行读操作。

HDFS结构:HDFS包含主、备NameNode和多个DataNode。

HDFS是一个Master/Slave的架构,在Master上运行NameNode,而在每一个Slave上运行DataNode,ZKFC需要和NameNode一起运行。

NameNode和DataNode之间的通信都是建立在TCP/IP的基础之上的。NameNode、DataNode、ZKFC和JournalNode能部署在运行Linux的服务器上。

可以认为slave是所有的datanode节点。

修改配置文件etc/hadoop/workers,将所有的slave节点都写到这个文件中,不通slave节点用换行隔开:

(5).Hadoop Rack Awareness

需要先陈述一下这个概念:

一直都说Hadoop的HDFS默认会把所有文件复制三份:第一份随机选一个datanode,第二份在另一个机架(rack)上随机选一个datanode,第三份在第二份的机架上再选一个datanode。

在扩而广之,可以做到跨机房,这样数据安全性会更高。

接着修改core-site.xml,添加如下内容:

topology.script.file.name

/home/qianwen/hadoop-2.9.2/etc/hadoop/rack_topology.sh

然后在文件rack_topology.sh中写选择算法。

这玩意至少得是百亿市值的公司玩的东西,我们不考虑。

(6).Logging

都在这里配置,很简单:

etc/hadoop/log4j.properties

(7).启动hadoop cluster

7.1.格式化文件系统

命令格式:bin/hdfs namenode -format

执行:bin/hdfs namenode -format dev-hadoop-cluster

需要check一下输出日志的一些关键信息:

从上图中可以看到,自动将这台机器加入了datanode-allow-list,所以我们之前不需要配置,现在这个文件中应该有两行hadoop01么?

实际上并没有,说明程序会自行check。

acl我并没有开,但是打印出了true,这里后边需要有个印象。

metrics应该是监控相关,暂时先不管。

到namenode的目录下看一看:

和下图就对上了:

7.2.启动namenode

bin/hdfs --daemon start namenode

访问web:http://namenode-ip:9870/

7.3.启动datanode

bin/hdfs --daemon start datanode

访问web:http://namenode-ip:9864

7.3.启动yarn的resourcemanager

bin/yarn --daemon start resourcemanager

7.4.启动yarn的nodemanager

bin/yarn --daemon start nodemanager

7.5.启动yarn的proxyserver

bin/yarn --daemon start proxyserver

7.6.启动MapReduce JobHistory

bin/mapred --daemon start historyserver

(8).目录总结

8.1.namenode相关目录与文件

file:///app/3rd/data/hadoop3.3.1/namenode/name.dir:

通过etc/hadoop/hdfs-site.xml文件中的dfs.namenode.name.dir来配置。

Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.

/app/data/hadoop3.3.1/namenode/datanode-allow-list与/app/data/hadoop3.3.1/namenode/datanode-deny-list

通过etc/hadoop/hdfs-site.xml文件中的dfs.hosts / dfs.hosts.exclude来配置。

datanode黑白名单,只有在白名单里的节点才会被加入集群。

8.2.datanode相关目录与文件

file:///app/3rd/data/hadoop3.3.1/datanode/data

通过etc/hadoop/hdfs-site.xml文件中的dfs.datanode.name.dir来配置。

DataNode本地文件系统上的路径列表,放置数据存储块。

8.3.yarn的resourceManager的相关目录与文件

/app/data/hadoop3.3.1/yarn/resourcemanager/node-allow-list与/app/data/hadoop3.3.1/yarn/resourcemanager/node-deny-list

通过etc/hadoop/etc/hadoop/yarn-site.xml文件中的yarn.resourcemanager.nodes.include-path / yarn.resourcemanager.nodes.exclude-path来配置。

允许/排除的 NodeManager 列表。 如有必要,请使用这些文件来控制允许的 NodeManager 列表。

NodeManager黑白名单。如果发现若干个NodeManager存在问题,比如故障率很高,任务运行失败率高,则可以将之加入黑名单中。注意,这两个配置参数可以动态生效。(调用一个refresh命令即可)。

8.4.yarn的nodeManager的相关目录与文件

/app/data/hadoop3.3.1/yarn/nodemanager/nm-local-dir

通过etc/hadoop/yarn-site.xml文件中的yarn.nodemanager.local-dirs来配置。

本地文件系统上写入中间数据的路径的逗号分隔列表。多条路径有助于分散磁盘 I/O(无所谓了,都是ssd)。

/app/data/hadoop3.3.1/yarn/nodemanager/log-dirs-0

通过etc/hadoop/yarn-site.xml文件中的yarn.nodemanager.log-dirs来配置。

日志存放目录。多条路径有助于分散磁盘 I/O(无所谓了,都是ssd)。

8.5.MapReduce JobHistory 服务器的相关目录与文件

/app/data/hadoop3.3.1/mapreduce/mr-history/tmp

通过etc/hadoop/mapred-site.xml文件中的yarn.nodemanager.log-dirs来配置。

MapReduce作业产生的日志存放位置。

mkdir -p /app/data/hadoop3.3.1/mapreduce/mr-history/done

通过etc/hadoop/mapred-site.xml文件中的mapreduce.jobhistory.done-dir来配置。

MR JobHistory Server管理的日志的存放位置。

(9).参考资料

1.hadoop SequenceFile 简介/优缺点

https://blog.csdn.net/qq_33813365/article/details/82864241

2.YARN配置

https://www.jianshu.com/p/73442811773f

(10).相关阅读

hadoop-1:部署并初探hadoop3.3.1的单节点集群

0 人点赞