【数仓】Hadoop集群配置常用参数说明

Hadoop集群中,需要配置的文件主要包括四个

  1. 配置核心Hadoop参数

    • 编辑core-site.xml文件,设置Hadoop集群的基本参数,如文件系统、Hadoop临时目录等。
  2. 配置HDFS参数

    • 编辑hdfs-site.xml文件,设置HDFS的相关参数,如数据块大小、副本数等。
  3. 配置MapReduce参数(如果使用):

    • 编辑mapred-site.xml文件,设置MapReduce的相关参数。
  4. 配置YARN参数(如果使用):

    • 编辑yarn-site.xml文件,设置YARN的相关参数。

核心Hadoop参数 core-site.xml

参考官网

Hadoop的core-site.xml文件包含了许多重要的配置参数,这些参数用于定义Hadoop集群的全局设置。以下是一些常见的core-site.xml配置参数:

配置项 默认值 说明
fs.defaultFS Hadoop集群的NameNode的URI。这是HDFS的入口点。
io.file.buffer.size 4096 SequenceFiles在读写过程中可以使用的缓存大小(以字节为单位)。
hadoop.tmp.dir /tmp/hadoop-${user.name} Hadoop的临时目录,用于存储临时文件和目录。
fs.trash.interval 0 垃圾箱中文件的保留时间(以分钟为单位)。设置为大于0的值将启用垃圾箱功能。
hadoop.proxyuser.${username}.hosts 允许代理用户从哪些主机连接到Hadoop集群。
hadoop.proxyuser.${username}.groups 允许代理用户属于哪些用户组连接到Hadoop集群。
fs.trash.checkpoint.interval 0 检查垃圾箱并删除过期文件的间隔时间(以分钟为单位)。
fs.automatic.close true 是否在读取文件后自动关闭文件系统。
fs.dummy.impl org.apache.hadoop.fs.DummyFileSystem 一个假的文件系统实现,用于测试。

请注意,上述表格中的默认值可能会因Hadoop版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的Hadoop集群的需求和配置。

在实际配置中,您应该根据您的Hadoop集群的具体要求和网络环境来设置这些参数。一些关键参数(如fs.defaultFS)在集群设置中是必需的,而其他参数则可以根据需要进行调整。在修改core-site.xml文件之前,请确保您已经充分了解每个参数的含义和潜在影响。

HDFS参数 hdfs-site.xml

参考官网

hdfs-site.xml 是 Hadoop 分布式文件系统(HDFS)的配置文件,它包含了许多参数,用于定义 HDFS 的行为和特性。以下是一些常见的 hdfs-site.xml 配置参数:

配置项 默认值 说明
dfs.namenode.name.dir file://${hadoop.tmp.dir}/dfs/name NameNode 存储其持久化元数据的本地文件系统路径。
dfs.datanode.data.dir file://${hadoop.tmp.dir}/dfs/data DataNode 存储其块的本地文件系统路径。
dfs.replication 3 数据的默认副本数。
dfs.permissions.enabled true 是否启用 HDFS 权限检查。
dfs.block.size 134217728 (128 MB) HDFS 块的大小。
dfs.namenode.handler.count 10 NameNode 服务器可以同时处理的客户端请求数。
dfs.datanode.handler.count 10 DataNode 服务器可以同时处理的客户端请求数。
dfs.client.read.shortcircuit false 允许 DFS 客户端绕过 DataNode 直接读取本地文件。
dfs.client.read.shortcircuit.skip.checksum false 在短路读取时跳过校验和检查。
dfs.https.address 0.0.0.0:50470 NameNode HTTPS 服务的地址和端口。
dfs.http.address 0.0.0.0:50070 NameNode HTTP 服务的地址和端口。
dfs.datanode.http.address 0.0.0.0:50075 DataNode HTTP 服务的地址和端口。
dfs.datanode.ipc.address 0.0.0.0:50020 DataNode IPC 服务的地址和端口。
dfs.namenode.http-address 0.0.0.0:50070 NameNode HTTP 服务的地址和端口(用于 Web UI)。
dfs.namenode.secondary.http-address 0.0.0.0:50090 Secondary NameNode HTTP 服务的地址和端口。

请注意,这些默认值可能会因 Hadoop 的版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的 HDFS 集群的需求和配置。

在实际配置中,您应该根据您的 HDFS 集群的具体要求和网络环境来设置这些参数。一些关键参数(如 dfs.namenode.name.dirdfs.datanode.data.dir)在集群设置中是必需的,而其他参数则可以根据需要进行调整。在修改 hdfs-site.xml 文件之前,请确保您已经充分了解每个参数的含义和潜在影响。

此外,请注意 hdfs-site.xml 文件通常还包含一些高级参数,用于调优 HDFS 的性能和可靠性,例如设置 NameNode 和 DataNode 的堆大小、调整各种超时设置等。这些参数的具体设置应该基于您的集群规模和工作负载进行调整。

MapReduce参数 mapred-site.xml

参考官网

mapred-site.xml 是 Hadoop MapReduce 的配置文件,它包含了许多参数,用于定义 MapReduce 作业的行为和特性。以下是一些常见的 mapred-site.xml 配置参:

配置项 默认值 说明
mapreduce.framework.name local 执行框架设置为本地模式(单机模式),在集群上应设置为 yarn
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.jobtracker.address local MapReduce JobTracker 的地址和端口(旧版 API,YARN 中不再使用)。
mapreduce.tasktracker.address 0.0.0.0:50060 MapReduce TaskTracker 的地址和端口(旧版 API,YARN 中不再使用)。
mapreduce.map.output.compress false 是否压缩 Map 任务的输出。
mapreduce.map.output.compress.codec org.apache.hadoop.io.compress.DefaultCodec Map 任务输出压缩使用的编解码器。
mapreduce.task.io.sort.mb 100 排序时使用的内存缓冲区大小(以 MB 为单位)。
mapreduce.task.io.sort.factor 10 合并小文件时一次合并的流的数量。
mapreduce.reduce.shuffle.parallelcopies 5 从 Map 到 Reduce 拷贝数据的并行度。
mapreduce.reduce.shuffle.fetch.retry.enabled true 是否启用 shuffle 阶段获取数据的重试机制。
mapreduce.reduce.shuffle.retry-delay.ms 1000 shuffle 阶段重试之间的延迟时间(以毫秒为单位)。
mapreduce.reduce.shuffle.input.buffer.percent 0.7 shuffle 阶段用于存储数据的内存比例。
mapreduce.job.reduces 1 每个作业的默认 Reduce 任务数。
mapreduce.job.maps 无默认值 每个作业的 Map 任务数(通常由 AM 根据数据自动计算)。
mapreduce.map.speculative true 是否启用 Map 任务的推测执行。
mapreduce.reduce.speculative true 是否启用 Reduce 任务的推测执行。

请注意,这些默认值可能会因 Hadoop 的版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的 MapReduce 作业的需求和配置。

在实际配置中,您应该根据您的 MapReduce 作业的具体要求和网络环境来设置这些参数。一些关键参数(如 mapreduce.framework.name)在集群设置中是必需的,以指定执行框架,而其他参数则可以根据需要进行调整。在修改 mapred-site.xml 文件之前,请确保您已经充分了解每个参数的含义和潜在影响。

另外,值得注意的是,随着 Hadoop 的发展,MapReduce 已经被 YARN 和其他框架(如 Spark、Flink)所取代,因此在新版本的 Hadoop 中,mapred-site.xml 文件可能不再存在,或者其重要性已经降低。在使用新版本的 Hadoop 时,请确保查看相关文档以了解最新的配置方法和最佳实践。

YARN参数 yarn-site.xml

参考官网

yarn-site.xml 是 Apache Hadoop YARN 的配置文件,它包含了许多参数,用于定义 YARN 集群的行为和特性。以下是一些常见的 yarn-site.xml 配置参数:

配置项 默认值 说明
yarn.resourcemanager.hostname ResourceManager 的主机名。
yarn.resourcemanager.scheduler.address ${yarn.resourcemanager.hostname}:8030 ResourceManager 调度器服务的地址和端口。
yarn.resourcemanager.resource-tracker.address ${yarn.resourcemanager.hostname}:8031 ResourceManager 资源追踪服务的地址和端口。
yarn.resourcemanager.address ${yarn.resourcemanager.hostname}:8032 ResourceManager RPC 服务的地址和端口。
yarn.resourcemanager.webapp.address ${yarn.resourcemanager.hostname}:8088 ResourceManager Web UI 的地址和端口。
yarn.resourcemanager.admin.address ${yarn.resourcemanager.hostname}:8033 ResourceManager 管理服务的地址和端口。
yarn.scheduler.minimum-allocation-mb 1024 单个容器可申请的最小内存(以 MB 为单位)。
yarn.scheduler.maximum-allocation-mb 8192 单个容器可申请的最大内存(以 MB 为单位)。
yarn.nodemanager.resource.memory-mb 8192 NodeManager 可用的总物理内存(以 MB 为单位)。
yarn.scheduler.minimum-allocation-vcores 1 单个容器可申请的最小虚拟 CPU 个数。
yarn.scheduler.maximum-allocation-vcores 32 单个容器可申请的最大虚拟 CPU 个数。
yarn.nodemanager.vmem-pmem-ratio 2.1 虚拟内存与物理内存的比例。
yarn.nodemanager.local-dirs ${hadoop.tmp.dir}/nm-local-dir NodeManager 存储本地化资源的目录列表。
yarn.nodemanager.log-dirs ${yarn.log.dir}/userlogs NodeManager 存储容器日志的目录列表。
yarn.nodemanager.aux-services mapreduce_shuffle NodeManager 提供的辅助服务列表。
yarn.nodemanager.remote-app-log-dir /tmp/logs 存储应用程序日志的远程目录(通常用于日志聚合)。
yarn.nodemanager.recovery.enabled false 是否启用 NodeManager 恢复功能。
yarn.nodemanager.recovery.dir 用于存储 NodeManager 恢复数据的目录。

请注意,这些默认值可能会因 Hadoop 的版本和特定环境而有所不同。此外,还有许多其他可用的配置参数,具体取决于您的 YARN 集群的需求和配置。在实际配置中,您应该根据您的 YARN 集群的具体要求和网络环境来设置这些参数。在修改 yarn-site.xml 文件之前,请确保您已经充分了解每个参数的含义和潜在影响。

参考

相关推荐
大数据深度洞察10 分钟前
Hive企业级调优[2]—— 测试用表
数据仓库·hive·hadoop
DolphinScheduler社区12 分钟前
怎么办?用DolphinScheduler调度执行复杂的HiveSQL时无法正确识别符号
大数据
goTsHgo15 分钟前
Hive自定义函数——简单使用
大数据·hive·hadoop
码爸17 分钟前
flink 例子(scala)
大数据·elasticsearch·flink·scala
FLGB17 分钟前
Flink 与 Kubernetes (K8s)、YARN 和 Mesos集成对比
大数据·flink·kubernetes
码爸19 分钟前
flink 批量压缩redis集群 sink
大数据·redis·flink
core51219 分钟前
Flink官方文档
大数据·flink·文档·官方
周全全23 分钟前
Flink1.18.1 Standalone模式集群搭建
大数据·flink·集群·主从·standalone
Hello.Reader25 分钟前
StarRocks实时分析数据库的基础与应用
大数据·数据库
txtsteve1 小时前
es由一个集群迁移到另外一个集群es的数据迁移
大数据·elasticsearch·搜索引擎