(base) xiaokkk@xiaokkkdeMacBook-Pro homebrew % hadoop version
Hadoop 3.4.0
Source code repository git@github.com:apache/hadoop.git -r bd8b77f398f626bb7791783192ee7a5dfaeec760
Compiled by root on 2024-03-04T06:35Z
Compiled on platform linux-x86_64
Compiled with protoc 3.21.12
From source with checksum f7fe694a3613358b38812ae9c31114e
This command was run using /opt/homebrew/Cellar/hadoop/3.4.0/libexec/share/hadoop/common/hadoop-common-3.4.0.jar
配置文件路径:/opt/homebrew/Cellar/hadoop/3.4.0/libexec/etc/hadoop
Hadoop 的配置文件用于设置 Hadoop 集群的各个方面,包括 HDFS (Hadoop Distributed File System)、YARN (Yet Another Resource Negotiator) 和 MapReduce。下面是 Hadoop 中常用的配置文件及其作用:
(base) xiaokkk@xiaokkkdeMacBook-Pro hadoop % cat core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/xiaokkk/Hadoop/hdfs/tmp/</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
(base) xiaokkk@xiaokkkdeMacBook-Pro hadoop % cat hdfs-site.xml
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/Users/xiaokkk/Hadoop/hdfs/namenode/</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/Users/xiaokkk/Hadoop/hdfs/datanode/</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>127.0.0.1:50070</value>
</property>
</configuration>
(base) xiaokkk@xiaokkkdeMacBook-Pro hadoop % cat yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>127.0.0.1</value>
</property>
<property>
<name>yarn.acl.enable</name>
<value>0</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
Hadoop 配置文件
-
core-site.xml
- 作用:
- 配置 Hadoop 的核心系统设置,如 HDFS 和 Hadoop 客户端的基本配置。
- 包括 HDFS 名称节点(NameNode)的地址、临时目录、文件系统默认 URI 等。
- 示例配置项:
fs.defaultFS
: 设置 Hadoop 文件系统的默认 URI。hadoop.tmp.dir
: 设置 Hadoop 的临时目录。
- 作用:
-
hdfs-site.xml
- 作用:
- 配置 HDFS 的具体参数,如副本的数量、块大小、数据节点的存活时间等。
- 示例配置项:
dfs.replication
: 设置文件块的默认副本数。dfs.blocksize
: 设置 HDFS 中文件块的默认大小。dfs.namenode.name.dir
: 设置 NameNode 的存储目录。
- 作用:
-
yarn-site.xml
- 作用:
- 配置 YARN 的资源管理器、节点管理器和其他组件的设置。
- 示例配置项:
yarn.resourcemanager.address
: 设置 ResourceManager 的地址。yarn.resourcemanager.scheduler.address
: 设置 ResourceManager 的调度器地址。yarn.nodemanager.aux-services
: 设置 NodeManager 的辅助服务。
- 作用:
-
mapred-site.xml
- 作用:
- 配置 MapReduce 的作业提交、任务跟踪等参数。
- 示例配置项:
mapreduce.framework.name
: 设置 MapReduce 框架的名称。mapreduce.jobhistory.address
: 设置 MapReduce JobHistory Server 的地址。mapreduce.jobhistory.webapp.address
: 设置 JobHistory Server 的 Web UI 地址。
- 作用:
-
hadoop-env.sh
- 作用:
- 设置 Hadoop 运行所需的环境变量,如 Java 的路径、日志文件位置等。
- 示例配置项:
export JAVA_HOME
: 设置 Java 的安装路径。export HADOOP_LOG_DIR
: 设置 Hadoop 日志文件的目录。
- 作用:
-
yarn-env.sh
- 作用:
- 设置 YARN 运行所需的环境变量。
- 示例配置项:
export JAVA_HOME
: 设置 Java 的安装路径。export YARN_LOG_DIR
: 设置 YARN 日志文件的目录。
- 作用:
-
mapred-env.sh
- 作用:
- 设置 MapReduce 运行所需的环境变量。
- 示例配置项:
export JAVA_HOME
: 设置 Java 的安装路径。export MAPREDUCE_LOG_DIR
: 设置 MapReduce 日志文件的目录。
- 作用:
-
hdfs-log4j.properties 和 yarn-log4j.properties
- 作用:
- 配置 HDFS 和 YARN 的日志记录级别和输出格式。
- 作用:
其他配置文件
除了上述核心配置文件之外,还有一些其他的配置文件,用于特定目的或特定组件的配置:
-
capacity-scheduler.xml
- 作用:
- 配置 YARN 的 Capacity Scheduler。
- 作用:
-
fair-scheduler.xml
- 作用:
- 配置 YARN 的 Fair Scheduler。
- 作用:
-
ssl-client.xml, ssl-server.xml
- 作用:
- 配置 SSL/TLS 安全协议的相关设置。
- 作用:
-
hadoop-metrics2.properties
- 作用:
- 配置 Hadoop 的 Metrics2 监控系统。
- 作用:
-
hadoop-policy.xml
- 作用:
- 配置 Hadoop 的安全策略,如 Kerberos 认证。
- 作用:
配置文件的位置
Hadoop 的配置文件通常位于 $HADOOP_HOME/etc/hadoop
目录下。$HADOOP_HOME
是指向 Hadoop 安装目录的环境变量。
总结
Hadoop 的配置文件对于正确设置和运行 Hadoop 集群至关重要。它们定义了集群的各个方面,包括文件系统的配置、资源管理器的配置、MapReduce 的配置等。确保这些文件正确配置对于集群的稳定运行非常重要。如果你需要进一步的帮助或有关于具体配置的问题,请随时提问!