阅读量:12
Hadoop集群在Linux上的配置步骤
1. 环境准备
- 硬件要求:确保所有节点(Master/NameNode、Slave/DataNode)满足最低配置(如双核CPU、8GB内存、100GB硬盘),并具备稳定网络连接。
- 操作系统:推荐使用CentOS 7、Ubuntu Server 20.04 LTS等稳定Linux发行版(需root或sudo权限)。
2. 安装Java环境(JDK 1.8+)
Hadoop基于Java开发,需先安装JDK。以CentOS为例:
sudo yum install -y java-1.8.0-openjdk-devel # 安装OpenJDK 8
java -version # 验证安装(需显示Java版本信息)
将Java路径添加到环境变量(所有节点):
echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
source ~/.bashrc # 使配置生效
3. 下载并解压Hadoop
从Apache官网下载稳定版本(如3.3.5),解压到指定目录(如/opt/hadoop):
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz # 下载
tar -xzvf hadoop-3.3.5.tar.gz -C /opt/ # 解压
sudo mv /opt/hadoop-3.3.5 /opt/hadoop # 重命名目录
设置目录权限(避免权限问题):
sudo chown -R root:root /opt/hadoop # 根据实际用户调整
4. 配置环境变量(所有节点)
编辑~/.bashrc(或/etc/profile),添加Hadoop环境变量:
echo 'export HADOOP_HOME=/opt/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc # 使配置生效
验证Hadoop命令:
hadoop version # 应显示Hadoop版本信息
5. 配置Hadoop核心文件(Master节点)
Hadoop配置文件位于$HADOOP_HOME/etc/hadoop目录,需修改以下核心文件:
5.1 core-site.xml(HDFS默认文件系统)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- Master节点主机名,端口9000 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> <!-- 临时目录(需提前创建) -->
</property>
</configuration>
5.2 hdfs-site.xml(HDFS副本与NameNode配置)
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 数据副本数(集群节点≥3时设为3,否则设为节点数) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/hdfs/namenode</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/hdfs/datanode</value> <!-- DataNode数据存储路径 -->
</property>
</configuration>
5.3 mapred-site.xml(MapReduce框架配置)
需先将mapred-site.xml.template重命名为mapred-site.xml:
mv $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
编辑内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> <!-- 使用YARN作为资源管理器 -->
</property>
</configuration>
5.4 yarn-site.xml(YARN资源管理器配置)
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager</value> <!-- ResourceManager节点主机名 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- 必须配置,支持MapReduce shuffle -->
</property>
</configuration>
5.5 slaves(Worker节点列表,可选)
若使用start-dfs.sh/start-yarn.sh自动启动DataNode/NodeManager,需在$HADOOP_HOME/etc/hadoop/slaves中列出所有Slave节点主机名(每行一个):
slave1
slave2
或使用workers文件(部分版本支持)。
6. 配置SSH免密登录(Master节点)
Hadoop集群节点间需通过SSH无密码通信,步骤如下:
- 生成密钥对(Master节点):
ssh-keygen -t rsa # 按回车键默认生成(路径~/.ssh/id_rsa) - 分发公钥到所有Slave节点:
ssh-copy-id slave1 # 输入Slave节点密码,完成公钥复制 ssh-copy-id slave2 - 验证免密登录:
ssh slave1 # 无需密码即可登录 ssh slave2
7. 格式化HDFS(Master节点)
首次启动前需格式化NameNode(仅执行一次,会清除HDFS所有数据):
hdfs namenode -format # 输入命令后等待格式化完成(显示"Successfully formatted")
8. 启动Hadoop集群(Master节点)
- 启动HDFS:
$HADOOP_HOME/sbin/start-dfs.sh # 启动NameNode、DataNode - 启动YARN:
$HADOOP_HOME/sbin/start-yarn.sh # 启动ResourceManager、NodeManager - 验证进程:
jps # Master节点应显示NameNode、ResourceManager;Slave节点应显示DataNode、NodeManager
9. 验证集群状态
- Web界面:
- HDFS Web UI:
http://namenode:9870(查看HDFS状态、节点列表) - YARN Web UI:
http://resourcemanager:8088(查看资源分配、任务运行情况)
- HDFS Web UI:
- 命令行工具:
hdfs dfsadmin -report # 查看HDFS集群报告(节点状态、存储容量) yarn node -list # 查看YARN集群节点列表
注意事项
- 防火墙:确保所有节点防火墙关闭(或开放相关端口,如9000、50070、8088),避免通信阻塞。
- 主机名解析:建议在
/etc/hosts中配置节点主机名与IP映射(如192.168.1.100 namenode),避免DNS问题。 - 数据备份:格式化前务必备份HDFS中的重要数据,格式化会清除所有元数据和数据块。