温馨提示×

Hadoop如何在Linux上部署

小樊
44
2025-10-25 01:09:47
栏目: 智能运维

Hadoop在Linux上的部署步骤

1. 环境准备

  • 选择Linux发行版:推荐使用Ubuntu Server 24.2、CentOS Stream 9等稳定版本(具备长期支持和丰富文档)。
  • 安装Java环境:Hadoop依赖Java 8或11(推荐OpenJDK),通过包管理器安装:
    sudo apt update && sudo apt install -y openjdk-11-jdk  # Ubuntu/Debian
    sudo yum install -y java-11-openjdk-devel              # CentOS/RHEL
    
    验证安装:java -version(需显示Java版本信息)。
  • 下载并解压Hadoop:从Apache官网下载稳定版本(如3.3.5),解压至指定目录(如/opt/hadoop):
    wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
    sudo mkdir -p /opt/hadoop
    sudo tar -xzvf hadoop-3.3.5.tar.gz -C /opt/hadoop --strip-components=1
    
    --strip-components=1用于去除压缩包内的顶层目录)。

2. 配置环境变量

编辑用户家目录下的.bashrc文件(全局配置可修改/etc/profile),添加Hadoop和Java路径:

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

3. 配置Hadoop核心文件

Hadoop的主配置文件位于$HADOOP_HOME/etc/hadoop/目录,需修改以下文件:

  • core-site.xml(Hadoop核心设置):
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>  <!-- HDFS的默认文件系统URI -->
        </property>
    </configuration>
    
  • hdfs-site.xml(HDFS配置):
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>  <!-- 数据副本数(单节点设为1,集群需调整) -->
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop/tmp/dfs/name</value>  <!-- NameNode元数据存储路径 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop/tmp/dfs/data</value>  <!-- DataNode数据存储路径 -->
        </property>
    </configuration>
    
  • mapred-site.xml(MapReduce配置):
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>  <!-- MapReduce运行在YARN上 -->
        </property>
    </configuration>
    
  • yarn-site.xml(YARN配置):
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>  <!-- Shuffle服务支持 -->
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>localhost</value>  <!-- ResourceManager主机(单节点设为localhost) -->
        </property>
    </configuration>
    
    (注:若需多节点集群,需将localhost替换为对应节点IP,并配置slaves文件)。

4. 格式化HDFS

首次启动HDFS前,需格式化NameNode(会清除原有数据,仅首次需要):

hdfs namenode -format

格式化后,会在dfs.namenode.name.dirdfs.datanode.data.dir指定的路径下生成元数据和数据目录。

5. 启动Hadoop集群

  • 启动HDFS
    start-dfs.sh
    
  • 启动YARN
    start-yarn.sh
    
    启动后,可通过jps命令查看进程:
    • NameNode(HDFS主节点)
    • DataNode(HDFS数据节点)
    • ResourceManager(YARN资源管理器)
    • NodeManager(YARN节点管理器)
      若上述进程均存在,说明启动成功。

6. 验证部署

  • Web界面验证
    • HDFS Web UI:http://localhost:9870(Hadoop 3.x版本端口)
    • YARN ResourceManager Web UI:http://localhost:8088
      通过浏览器访问上述地址,查看集群状态和资源使用情况。
  • 命令行验证
    • 查看HDFS根目录:hdfs dfs -ls /
    • 上传本地文件到HDFS:hdfs dfs -put ~/test.txt /user/hadoop/
    • 下载HDFS文件到本地:hdfs dfs -get /user/hadoop/test.txt ~/
      若命令执行成功,说明Hadoop功能正常。

7. 可选配置(提升安全性与便利性)

  • 配置SSH免密登录:避免每次操作Hadoop集群都需要输入密码,步骤如下:
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  # 生成密钥对
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  # 添加公钥到授权文件
    chmod 600 ~/.ssh/authorized_keys  # 设置权限
    ssh localhost  # 测试免密登录(无需输入密码则成功)
    
  • 防火墙配置:开放Hadoop所需端口(如9000、50070、8088),允许节点间通信:
    sudo firewall-cmd --permanent --zone=public --add-port=9000/tcp
    sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp
    sudo firewall-cmd --permanent --zone=public --add-port=8088/tcp
    sudo firewall-cmd --reload
    

0