/etc/sysconfig/network-scripts/ifcfg-ens33、Debian的/etc/network/interfaces),设置静态IP、子网掩码、网关和DNS,确保各节点IP在同一网段且唯一。例如:TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
重启网络服务使配置生效:systemctl restart network(CentOS)或systemctl restart networking(Debian)。hostnamectl set-hostname <主机名>(如master、slave1)修改节点主机名,重启后生效。/etc/hosts文件,添加IP与主机名的对应关系(避免依赖DNS):192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2
Hadoop集群节点间需要无密码通信(如NameNode与DataNode、ResourceManager与NodeManager),步骤如下:
master)执行ssh-keygen -t rsa(直接回车,默认保存到~/.ssh/id_rsa)。ssh-copy-id master(主节点自身)和ssh-copy-id slave1、ssh-copy-id slave2(从节点),将公钥添加到目标节点的~/.ssh/authorized_keys文件中。ssh master、ssh slave1,无需输入密码即可登录,确认配置成功。Hadoop的网络通信依赖以下核心配置文件的正确设置(位于$HADOOP_HOME/etc/hadoop目录):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value> <!-- NameNode的IP/主机名及端口 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> <!-- 临时目录,需提前创建并授权 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 副本数,生产环境建议≥3,测试环境可设为1 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value> <!-- NameNode元数据存储目录 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value> <!-- DataNode数据存储目录 -->
</property>
</configuration>
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value> <!-- ResourceManager所在节点 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- MapReduce Shuffle服务 -->
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
mapred-site.xml.template复制):配置MapReduce运行框架为YARN(所有节点通用):<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
$HADOOP_HOME/etc/hadoop),方便集群管理:slave1
slave2
systemctl stop firewalld(CentOS)或systemctl stop ufw(Ubuntu);永久禁用:systemctl disable firewalld。setenforce 0;永久设置:编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,重启生效。hdfs namenode -format
start-dfs.sh # 启动HDFS(NameNode、DataNode)
start-yarn.sh # 启动YARN(ResourceManager、NodeManager)
jps命令查看各节点进程(主节点应有NameNode、ResourceManager;从节点应有DataNode、NodeManager)。http://master:50070)、YARN(http://master:8088),确认集群运行正常。ntpdate命令同步NTP服务器时间),避免因时间差导致通信问题。log4j.properties配置),便于排查网络或服务问题。/etc/hosts映射是否正确、防火墙是否放行Hadoop端口(如HDFS的9000、YARN的8032等)。