Hadoop集群搭建详细步骤
一、准备工作
1. 硬件要求
- 至少3台服务器(1个NameNode + 2个DataNode,生产环境建议更多)
- 每台服务器建议配置:
- CPU: 4核以上
- 内存: 8GB以上
- 硬盘: 100GB以上(根据数据量调整)
- 网络: 千兆以太网
2. 软件要求
- 操作系统: Linux(推荐CentOS 7/8或Ubuntu 18.04/20.04)
- Java: JDK 8或11(推荐OpenJDK)
- Hadoop: 3.x版本
二、环境配置
1. 系统设置(所有节点)
# 1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 2. 禁用SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 3. 修改主机名(分别在每台机器上执行)
hostnamectl set-hostname master # 主节点
hostnamectl set-hostname slave1 # 从节点1
hostnamectl set-hostname slave2 # 从节点2
# 4. 配置hosts文件(所有节点相同)
vim /etc/hosts
# 添加以下内容(根据实际IP修改)
192.168.1.100 master
192.168.1.101 slave1
192.168.1.102 slave2
# 5. 创建hadoop用户(所有节点)
useradd hadoop
passwd hadoop # 设置密码
2. SSH无密码登录配置(主节点)
# 1. 切换到hadoop用户
su - hadoop
# 2. 生成密钥对
ssh-keygen -t rsa
# 3. 将公钥复制到本机和从节点
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
# 4. 测试SSH连接
ssh master
ssh slave1
ssh slave2
3. 安装Java(所有节点)
# 1. 安装OpenJDK
yum install -y java-1.8.0-openjdk-devel # CentOS
# 或
apt install -y openjdk-8-jdk # Ubuntu
# 2. 配置环境变量
vim ~/.bashrc
# 添加以下内容
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
# 3. 使配置生效
source ~/.bashrc
# 4. 验证安装
java -version
三、Hadoop安装与配置
1. 下载并安装Hadoop(主节点)
# 1. 切换到hadoop用户
su - hadoop
# 2. 下载Hadoop(以3.3.0为例)
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
# 3. 解压
tar -xzvf hadoop-3.3.0.tar.gz -C /usr/local/
mv /usr/local/hadoop-3.3.0 /usr/local/hadoop
# 4. 配置环境变量
vim ~/.bashrc
# 添加以下内容
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
# 5. 使配置生效
source ~/.bashrc
2. 配置Hadoop(主节点)
修改core-site.xml
vim $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
修改hdfs-site.xml
vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/hdfs/data</value>
</property>
</configuration>
修改mapred-site.xml
vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml
vim $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
修改workers文件(Hadoop 3.x之前是slaves文件)
vim $HADOOP_HOME/etc/hadoop/workers
slave1
slave2
3. 分发Hadoop到从节点
scp -r /usr/local/hadoop slave1:/usr/local/
scp -r /usr/local/hadoop slave2:/usr/local/
# 分发环境变量配置
scp ~/.bashrc slave1:~/
scp ~/.bashrc slave2:~/
# 在从节点上使配置生效
ssh slave1 "source ~/.bashrc"
ssh slave2 "source ~/.bashrc"
四、启动Hadoop集群
1. 格式化HDFS(仅在首次启动前执行)
hdfs namenode -format
2. 启动HDFS
start-dfs.sh
3. 启动YARN
start-yarn.sh
4. 验证集群状态
# 检查Java进程
jps
# 主节点应有以下进程:
# NameNode
# ResourceManager
# SecondaryNameNode
# 从节点应有以下进程:
# DataNode
# NodeManager
# 检查HDFS状态
hdfs dfsadmin -report
# 访问Web界面
# NameNode: http://master:9870
# ResourceManager: http://master:8088
五、测试Hadoop集群
1. 创建HDFS目录
hdfs dfs -mkdir -p /user/hadoop
hdfs dfs -mkdir input
2. 上传测试文件
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml input/
3. 运行MapReduce示例
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep input output 'dfs[a-z.]+'
4. 查看结果
hdfs dfs -cat output/*
六、常见问题解决
-
SSH连接问题:
- 确保所有节点的防火墙已关闭
- 检查
/etc/hosts文件配置是否正确 - 确认SSH密钥已正确分发
-
HDFS无法启动:
- 检查日志文件
$HADOOP_HOME/logs/ - 确保已经格式化NameNode(仅在首次启动前)
- 检查
hdfs-site.xml中的路径权限
- 检查日志文件
-
从节点无法连接主节点:
- 检查主节点的防火墙设置
- 验证网络连接
- 检查主节点和从节点的Hadoop配置是否一致
-
资源不足错误:
- 调整
yarn-site.xml中的资源分配参数 - 增加集群节点或提升硬件配置
- 调整
七、集群管理命令
常用命令
# 启动/停止HDFS
start-dfs.sh
stop-dfs.sh
# 启动/停止YARN
start-yarn.sh
stop-yarn.sh
# 启动/停止所有服务
start-all.sh
stop-all.sh
# 检查HDFS状态
hdfs dfsadmin -report
# 检查YARN节点
yarn node -list
日志查看
# NameNode日志
tail -f $HADOOP_HOME/logs/hadoop-hadoop-namenode-master.log
# DataNode日志
tail -f $HADOOP_HOME/logs/hadoop-hadoop-datanode-slave1.log
# ResourceManager日志
tail -f $HADOOP_HOME/logs/yarn-hadoop-resourcemanager-master.log
# NodeManager日志
tail -f $HADOOP_HOME/logs/yarn-hadoop-nodemanager-slave1.log
以上是Hadoop集群搭建的详细步骤,根据实际环境和需求,可能需要进行适当调整。

1444

被折叠的 条评论
为什么被折叠?



