温馨提示×

Debian下HDFS配置步骤是什么

小樊
40
2025-11-09 16:02:57
栏目: 智能运维

Debian下HDFS配置步骤

1. 系统初始化

  • 安装必要工具:安装网络工具、文本编辑器和SSH服务,用于节点间通信。
    sudo apt update && sudo apt install -y net-tools vim openssh-server
    
  • 关闭防火墙(测试环境可选):避免防火墙阻止HDFS服务通信。
    sudo ufw disable
    
  • 设置主机名与hosts文件:统一节点主机名,并在/etc/hosts中添加所有节点的IP与主机名映射(如192.168.1.100 master192.168.1.101 slave1),确保节点间可通过主机名访问。

2. 安装Java环境

Hadoop依赖Java运行,推荐安装OpenJDK 8或11:

sudo apt install -y openjdk-11-jdk

验证Java安装:

java -version  # 应输出Java版本信息

配置Java环境变量(可选,若未自动设置):编辑/etc/profile,添加:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile

3. 下载并解压Hadoop

  • 下载Hadoop:从Apache官网获取最新稳定版(如3.3.15),使用wget下载:
    wget https://downloads.apache.org/hadoop/core/hadoop-3.3.15/hadoop-3.3.15.tar.gz
    
  • 解压与移动:将压缩包解压至/usr/local/,并重命名目录:
    sudo tar -xzvf hadoop-3.3.15.tar.gz -C /usr/local/
    sudo mv /usr/local/hadoop-3.3.15 /usr/local/hadoop
    
  • 设置目录权限:确保当前用户对Hadoop目录有读写权限:
    sudo chown -R $USER:$USER /usr/local/hadoop
    

4. 配置Hadoop环境变量

编辑~/.bashrc(用户级)或/etc/profile(系统级),添加Hadoop路径:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

使配置生效:

source ~/.bashrc  # 或 source /etc/profile

5. 配置HDFS核心文件

Hadoop配置文件位于$HADOOP_HOME/etc/hadoop,需修改以下关键文件:

  • core-site.xml:定义HDFS默认文件系统和临时目录。
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://namenode:9000</value>  <!-- NameNode主机名与端口 -->
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/data/hadoop/hdfs/tmp</value>  <!-- 临时文件目录 -->
        </property>
    </configuration>
    
  • hdfs-site.xml:配置NameNode/Datanode目录及副本数(生产环境建议设为3)。
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>  <!-- 单节点设为1,集群设为3 -->
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/data/hadoop/hdfs/namenode</value>  <!-- NameNode元数据目录 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/data/hadoop/hdfs/datanode</value>  <!-- Datanode数据目录 -->
        </property>
    </configuration>
    
  • mapred-site.xml(若不存在则复制模板):指定MapReduce运行框架为YARN。
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </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>
    </configuration>
    

6. 配置SSH免密码登录

Hadoop需要SSH无密码登录NameNode,生成密钥并授权:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  # 生成密钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  # 添加公钥到授权文件
chmod 600 ~/.ssh/authorized_keys  # 设置权限

测试免密码登录:

ssh localhost  # 应无需输入密码

7. 格式化NameNode

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

hdfs namenode -format

格式化后会创建dfs.name.dir指定的目录,存储元数据。

8. 启动HDFS服务

  • 启动HDFS:在NameNode上运行以下命令,启动NameNode和DataNode:
    $HADOOP_HOME/sbin/start-dfs.sh
    
  • 验证进程:使用jps命令检查是否启动成功,应看到NameNodeDataNode进程:
    jps  # 输出应包含 NameNode、DataNode
    

9. 验证HDFS功能

  • 查看HDFS状态:通过Web界面(默认端口50070)访问http://namenode:50070,查看集群状态。
  • 操作HDFS文件:使用hdfs dfs命令创建目录、上传文件:
    hdfs dfs -mkdir -p /test  # 创建测试目录
    hdfs dfs -put /usr/src/linux-source-2.6.27/Doc*/memory-barriers.txt /test  # 上传测试文件
    hdfs dfs -ls /test  # 列出目录内容
    

注意事项

  • 单节点与集群区别:单节点环境下dfs.replication设为1,集群需设为3并配置所有节点的/etc/hosts
  • 目录权限:确保dfs.namenode.name.dirdfs.datanode.data.dir目录存在且有写入权限。
  • 日志排查:若启动失败,查看$HADOOP_HOME/logs下的日志文件(如NameNode.log)定位问题。

0