温馨提示×

Debian如何部署Hadoop应用

小樊
49
2025-09-30 08:11:02
栏目: 智能运维

1. 系统准备
确保Debian系统已更新至最新版本,安装必要工具包:

sudo apt update && sudo apt upgrade -y
sudo apt install -y net-tools vim ssh

关闭防火墙(若需开启,需配置Hadoop相关端口放行):

sudo ufw disable

2. 安装Java环境
Hadoop依赖Java 8及以上版本,推荐使用OpenJDK(Debian默认仓库提供):

sudo apt install -y openjdk-11-jdk

验证Java安装:

java -version

设置JAVA_HOME环境变量(全局生效):

echo 'JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"' | sudo tee -a /etc/environment
source /etc/environment

3. 下载并解压Hadoop
从Apache官网下载最新稳定版Hadoop(如3.3.6),解压至/usr/local目录:

wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop  # 重命名为hadoop方便管理

4. 配置Hadoop环境变量
编辑~/.bashrc(当前用户)或/etc/profile(全局),添加Hadoop路径:

echo 'export HADOOP_HOME=/usr/local/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc  # 使配置生效

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

  • core-site.xml(Hadoop核心设置):

    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>  <!-- 单节点用localhost,集群用NameNode主机名 -->
        </property>
    </configuration>
    
  • hdfs-site.xml(HDFS设置):

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>  <!-- 单节点设为1,集群根据节点数调整(如3) -->
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/usr/local/hadoop/data/namenode</value>  <!-- NameNode元数据存储路径 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/usr/local/hadoop/data/datanode</value>  <!-- DataNode数据存储路径 -->
        </property>
    </configuration>
    
  • mapred-site.xml(MapReduce设置):
    若文件不存在,先复制模板:

    cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/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>  <!-- 启用MapReduce Shuffle服务 -->
        </property>
        <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
    </configuration>
    

6. 格式化HDFS
首次启动前需格式化NameNode(仅第一次执行,会清除原有数据):

hdfs namenode -format

7. 启动Hadoop服务
启动HDFS(NameNode和DataNode):

$HADOOP_HOME/sbin/start-dfs.sh

启动YARN(ResourceManager和NodeManager):

$HADOOP_HOME/sbin/start-yarn.sh

8. 验证安装

  • 检查Hadoop进程是否运行:

    jps
    

    正常应看到NameNodeDataNodeResourceManagerNodeManager等进程。

  • 查看HDFS文件系统:

    hdfs dfs -ls /
    
  • 访问Web界面:

    • HDFS Web UI:http://localhost:9870(Hadoop 3.x版本)
    • YARN ResourceManager Web UI:http://localhost:8088

9. 运行Hadoop示例程序(可选)
Hadoop自带WordCount示例,用于验证MapReduce功能:

# 创建输入目录并上传测试文件
hdfs dfs -mkdir -p /input
echo "hello world hello hadoop" > file.txt
hdfs dfs -put file.txt /input

# 运行WordCount程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input/file.txt /output

# 查看输出结果
hdfs dfs -cat /output/part-r-00000

输出应显示单词统计结果(如hello 2world 1hadoop 1)。

0