以下是在 CentOS 7 上安装 Hadoop 集群的详细教程:
一、环境准备
- 硬件环境:至少需要三台物理机或虚拟机。
- 软件环境:所有节点安装 CentOS 7 操作系统,关闭防火墙和 SELinux。
systemctl stop firewalld systemctl disable firewalld setenforce 0
二、网络配置
配置主机名和 IP 映射:
- 在所有节点上编辑
/etc/hosts
文件,添加集群节点的 IP 和主机名映射。例如:192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102
- 修改各节点的主机名,例如在
hadoop100
上执行:hostnamectl set-hostname hadoop100
- 在所有节点上编辑
配置静态 IP:编辑
/etc/sysconfig/network-scripts/ifcfg-ens33
文件(网卡名称可能不同),设置静态 IP。
三、安装 JDK
- 上传 JDK 安装包:将 JDK 安装包(如
jdk-8u241-linux-x64.tar.gz
)上传到主节点的/opt
目录下。 - 解压并配置环境变量:
cd /opt tar zxvf jdk-8u241-linux-x64.tar.gz mv jdk1.8.0_241 jdk1.8 echo "export JAVA_HOME=/opt/jdk1.8" >> /etc/profile echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar" >> /etc/profile source /etc/profile
- 分发 JDK 到其他节点:
scp -r jdk1.8 root@hadoop101:/opt scp -r jdk1.8 root@hadoop102:/opt
四、配置 SSH 免密登录
- 生成密钥对:在主节点执行以下命令生成密钥对:
按提示操作,直接回车即可。ssh-keygen -t rsa
- 分发公钥:将生成的公钥分发到所有节点:
ssh-copy-id hadoop101 ssh-copy-id hadoop102
五、安装 Hadoop
- 上传 Hadoop 安装包:将 Hadoop 安装包(如
hadoop-2.7.2.tar.gz
)上传到主节点的/opt/server
目录下。 - 解压 Hadoop:
cd /opt/server tar zxvf hadoop-2.7.2.tar.gz
- 配置环境变量:
echo "export HADOOP_HOME=/opt/server/hadoop-2.7.2" >> /etc/profile echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> /etc/profile source /etc/profile
- 修改 Hadoop 配置文件:
hadoop-env.sh
:设置 JDK 路径。vi /opt/server/hadoop-2.7.2/etc/hadoop/hadoop-env.sh export JAVA_HOME=/opt/jdk1.8
core-site.xml
:设置 NameNode 地址和临时目录。<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop100:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/server/hadoop-2.7.2/data/tmp</value> </property> </configuration>
hdfs-site.xml
:设置 NameNode 和 DataNode 的存储路径。<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/opt/server/hadoop-2.7.2/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/server/hadoop-2.7.2/hdfs/data</value> </property> </configuration>
yarn-site.xml
:配置 ResourceManager。<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop100</value> </property> <property> <name>yarn.nodemanager