温馨提示×

怎样在Ubuntu上部署Hadoop应用

小樊
48
2025-10-29 13:36:15
栏目: 智能运维

环境准备

  • 安装OpenJDK:Hadoop依赖Java环境,推荐使用OpenJDK 8或11(兼容性更好)。执行以下命令安装:
    sudo apt update && sudo apt install -y openjdk-11-jdk
    安装完成后,通过java -version验证是否成功(需显示Java版本信息)。
  • 配置SSH免密登录:Hadoop的NameNode与DataNode通信需要免密登录,避免每次输入密码。
    生成密钥对: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

  • 从Apache官网下载稳定版本(如3.3.6),使用清华镜像加速:
    wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
  • 解压到/opt目录(系统级软件推荐路径):
    sudo tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
  • (可选)重命名目录便于管理:sudo mv /opt/hadoop-3.3.6 /opt/hadoop

配置环境变量

  • 编辑~/.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
  • 验证环境变量:echo $HADOOP_HOME(应显示Hadoop安装路径)

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

  • core-site.xml(HDFS默认文件系统):
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>  <!-- HDFS的URI,localhost表示单机模式 -->
        </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框架,需先创建):
    复制模板文件并修改:
    cp mapred-site.xml.template mapred-site.xml
    内容如下:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>  <!-- 使用YARN作为资源管理器 -->
        </property>
    </configuration>
    
  • yarn-site.xml(YARN配置):
    <configuration>
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>  <!-- Shuffle服务,支持MapReduce -->
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
    </configuration>
    

初始化与启动Hadoop

  • 格式化NameNode:首次启动前必须格式化,清除旧数据(此操作仅第一次需要):
    hdfs namenode -format
  • 启动HDFS:启动NameNode和DataNode服务:
    start-dfs.sh
  • 启动YARN:启动ResourceManager和NodeManager服务(支持MapReduce作业调度):
    start-yarn.sh

验证部署

  • 查看进程:执行jps,若显示以下进程则表示启动成功:
    NameNodeDataNodeSecondaryNameNode(HDFS相关);
    ResourceManagerNodeManager(YARN相关)。
  • 访问Web界面
    • HDFS NameNode:http://localhost:9870(Hadoop 3.x版本端口,旧版本为50070);
    • YARN ResourceManager:http://localhost:8088(查看作业调度情况)。

(可选)运行示例程序

  • 执行内置的WordCount程序(统计文本单词数量):
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output
    
    其中/input是HDFS上的输入目录(需提前创建并上传文件),/output是输出目录(需不存在,Hadoop会自动创建)。
  • 查看结果:hdfs dfs -cat /output/part-r-00000(显示单词统计结果)。

0