Hadoop集群中,需要配置的文件主要包括四个
-
配置核心Hadoop参数:
- 编辑
core-site.xml
文件,设置Hadoop集群的基本参数,如文件系统、Hadoop临时目录等。
- 编辑
-
配置HDFS参数:
- 编辑
hdfs-site.xml
文件,设置HDFS的相关参数,如数据块大小、副本数等。
- 编辑
-
配置MapReduce参数(如果使用):
- 编辑
mapred-site.xml
文件,设置MapReduce的相关参数。
- 编辑
-
配置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.dir
和 dfs.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
文件之前,请确保您已经充分了解每个参数的含义和潜在影响。