192.168.88.101、192.168.88.102、192.168.88.103),避免DHCP导致IP变动。hadoop01,Slave节点为hadoop02、hadoop03),命令:hostnamectl set-hostname hadoop01。/etc/hosts中添加IP与主机名映射,确保节点间可通过主机名互相访问:192.168.88.101 hadoop01
192.168.88.102 hadoop02
192.168.88.103 hadoop03
ping命令测试节点间网络是否畅通(如ping hadoop02)。rpm -qa | grep jdk | xargs rpm -e --nodeps。/export/servers目录,配置环境变量(/etc/profile中添加JAVA_HOME、PATH),并分发至所有节点:scp -r /export/servers/jdk hadoop02:/export/servers/。/export/servers目录并重命名:cd /export/software
tar -zxvf hadoop-3.4.1.tar.gz -C /export/servers/
mv /export/servers/hadoop-3.4.1 /export/servers/hadoop
/etc/profile中添加):export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source /etc/profile使配置生效。进入$HADOOP_HOME/etc/hadoop目录,修改以下关键配置文件:
hadoop-env.sh:设置Java路径,取消JAVA_HOME注释并修改为:
export JAVA_HOME=/export/servers/jdk
core-site.xml:配置HDFS默认文件系统和临时目录:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value> <!-- NameNode地址 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop/tmp</value> <!-- 临时目录 -->
</property>
</configuration>
hdfs-site.xml:配置HDFS副本数、NameNode/DataNode目录:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 副本数(集群节点≥3时设为3) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/export/servers/hadoop/tmp/dfs/name</value> <!-- NameNode元数据目录 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/export/servers/hadoop/tmp/dfs/data</value> <!-- DataNode数据目录 -->
</property>
</configuration>
mapred-site.xml(需先复制模板文件mapred-site.xml.template):配置MapReduce运行框架为YARN:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml:配置YARN资源管理器及Shuffle服务:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value> <!-- ResourceManager地址 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- Shuffle服务 -->
</property>
</configuration>
slaves文件:指定Slave节点列表(每行一个主机名):
hadoop02
hadoop03
分发slaves文件至所有节点:scp slaves hadoop02:/export/servers/hadoop/etc/hadoop/。
hadoop01)生成SSH密钥:ssh-keygen -t rsa -P ""(直接回车,默认保存至~/.ssh/id_rsa)。ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
ssh hadoop02、ssh hadoop03(无需输入密码)。仅在首次启动时执行,用于初始化HDFS元数据:
hdfs namenode -format
(注意:格式化会清除原有数据,生产环境需谨慎。)
在Master节点执行以下命令,启动HDFS相关进程(NameNode、DataNode):
start-dfs.sh
查看进程是否启动:jps(Master节点应看到NameNode、SecondaryNameNode;Slave节点应看到DataNode)。
在Master节点执行以下命令,启动YARN相关进程(ResourceManager、NodeManager):
start-yarn.sh
查看进程是否启动:jps(Master节点应看到ResourceManager;Slave节点应看到NodeManager)。
http://hadoop01:9870(查看NameNode状态、DataNode列表)。http://hadoop01:8088(查看ResourceManager状态、集群资源使用情况)。hdfs dfsadmin -report(查看DataNode数量、存储容量)。yarn node -list(查看NodeManager状态)。使用Hadoop自带的WordCount示例验证集群功能:
# 创建输入目录并上传文件
hdfs dfs -mkdir -p /input
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input
# 运行WordCount程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.1.jar wordcount /input /output
# 查看输出结果
hdfs dfs -cat /output/part-r-00000
若输出单词统计结果,则说明集群搭建成功。
/export/servers/hadoop属主为hadoop用户)。hadoop.tmp.dir指定的临时目录(如/export/servers/hadoop/tmp),避免元数据冲突。