ubuntu

Hadoop集群如何在Ubuntu搭建

小樊
62
2025-10-02 02:07:37
栏目: 智能运维

Hadoop集群在Ubuntu上的搭建步骤

一、环境准备

1. 硬件要求

2. 软件准备

二、安装Java环境

在所有节点执行以下命令安装OpenJDK 11(Hadoop 3.x推荐版本):

sudo apt update
sudo apt install -y openjdk-11-jdk

验证Java安装是否成功:

java -version

输出应包含openjdk version "11.x.x",确认Java环境配置正确。

三、配置SSH无密码登录(主节点操作)

Hadoop集群需要主节点与从节点之间通过SSH无密码通信,步骤如下:

  1. 生成SSH密钥对(主节点本地操作):

    ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
    

    (直接按回车键,使用默认路径和空密码)

  2. 将公钥复制到所有从节点: 假设从节点IP为slave1_ipslave2_ip,执行:

    ssh-copy-id hadoop@slave1_ip
    ssh-copy-id hadoop@slave2_ip
    

    hadoop为从节点的用户名,需提前创建并设置密码)

  3. 测试无密码登录

    ssh hadoop@slave1_ip
    ssh hadoop@slave2_ip
    

    若无需输入密码即可登录,说明配置成功。

四、下载并解压Hadoop

  1. 下载Hadoop(主节点操作): 从Apache官网下载最新稳定版(如3.3.6),使用清华镜像加速:

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
    
  2. 解压并移动到指定目录

    sudo tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
    sudo mv /opt/hadoop-3.3.6 /opt/hadoop
    sudo chown -R hadoop:hadoop /opt/hadoop  # 修改所有者为hadoop用户
    
  3. 创建数据目录(主节点操作): HDFS需要指定NameNode和DataNode的存储路径:

    sudo mkdir -p /opt/hadoop/hdfs/namenode
    sudo mkdir -p /opt/hadoop/hdfs/datanode
    sudo chown -R hadoop:hadoop /opt/hadoop/hdfs  # 修改所有者
    
  4. 配置环境变量(主节点操作): 编辑~/.bashrc文件,添加以下内容:

    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64  # 根据实际Java路径调整
    export HADOOP_HOME=/opt/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    使配置生效:

    source ~/.bashrc
    
  5. 验证Hadoop命令

    hadoop version
    

    输出Hadoop版本信息,说明安装成功。

五、配置Hadoop核心文件

进入Hadoop配置目录(/opt/hadoop/etc/hadoop),修改以下文件:

1. core-site.xml(Hadoop核心配置)

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>  <!-- master为主节点IP或主机名 -->
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/tmp</value>  <!-- Hadoop临时目录 -->
    </property>
</configuration>

2. hdfs-site.xml(HDFS配置)

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>2</value>  <!-- 数据副本数(根据从节点数量调整,如2个从节点设为2) -->
    </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>

3. mapred-site.xml(MapReduce配置)

若文件不存在,先复制模板:

cp mapred-site.xml.template mapred-site.xml

修改内容:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>  <!-- 使用YARN作为资源管理器 -->
    </property>
</configuration>

4. yarn-site.xml(YARN配置)

<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.resource.memory-mb</name>
        <value>4096</value>  <!-- 每个NodeManager可用内存(单位:MB) -->
    </property>
</configuration>

5. workers(从节点列表)

编辑/opt/hadoop/etc/hadoop/workers文件,添加所有从节点的主机名或IP(每行一个):

slave1_ip
slave2_ip

(主节点不需要添加到该文件)。

六、格式化HDFS并启动集群

1. 格式化NameNode(主节点操作)

hdfs namenode -format

(首次启动必须执行,格式化会清除HDFS中的所有数据,生产环境需谨慎)

2. 启动HDFS

start-dfs.sh

启动后,NameNode和DataNode进程会自动运行。

3. 启动YARN

start-yarn.sh

启动后,ResourceManager和NodeManager进程会自动运行。

4. 验证进程状态

jps

输出应包含以下进程(主节点):

NameNode
SecondaryNameNode
ResourceManager

以及从节点的:

DataNode
NodeManager

5. 访问Web界面

七、常见问题排查

  1. SSH连接失败:检查~/.ssh/authorized_keys文件权限(需设为600),或重新生成密钥;
  2. 端口冲突:修改core-site.xml中的fs.defaultFS端口(如9000改为其他未被占用的端口);
  3. 进程无法启动:查看日志文件(/opt/hadoop/logs/目录下),定位具体错误原因;
  4. 数据目录权限问题:确保/opt/hadoop/hdfs/namenode/opt/hadoop/hdfs/datanode的所有者为hadoop用户。

按照以上步骤操作,即可在Ubuntu上成功搭建Hadoop集群。集群搭建完成后,可通过hadoop fs -put命令上传文件到HDFS,或使用hadoop jar命令运行MapReduce程序。

0
看了该问题的人还看了