Hadoop集群搭建详细步骤总结

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/*

六、常见问题解决

  1. SSH连接问题:

    • 确保所有节点的防火墙已关闭
    • 检查/etc/hosts文件配置是否正确
    • 确认SSH密钥已正确分发
  2. HDFS无法启动:

    • 检查日志文件$HADOOP_HOME/logs/
    • 确保已经格式化NameNode(仅在首次启动前)
    • 检查hdfs-site.xml中的路径权限
  3. 从节点无法连接主节点:

    • 检查主节点的防火墙设置
    • 验证网络连接
    • 检查主节点和从节点的Hadoop配置是否一致
  4. 资源不足错误:

    • 调整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集群搭建的详细步骤,根据实际环境和需求,可能需要进行适当调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值