首页主机资讯如何在Debian上配置Hadoop集群

如何在Debian上配置Hadoop集群

时间2025-10-02 07:37:03发布访客分类主机资讯浏览1200
导读:一、环境准备 节点规划:搭建Hadoop集群需至少3个节点(1个NameNode主节点、1个NameNode备用节点、1个及以上DataNode;若启用YARN高可用,还需1个ResourceManager主节点、1个备用节点)。确保所有...

一、环境准备

  1. 节点规划:搭建Hadoop集群需至少3个节点(1个NameNode主节点、1个NameNode备用节点、1个及以上DataNode;若启用YARN高可用,还需1个ResourceManager主节点、1个备用节点)。确保所有节点处于同一局域网,能互相通信。
  2. 系统更新与基础软件安装:在所有节点执行sudo apt update & & sudo apt upgrade -y更新系统;安装OpenJDK 8(或更高版本,推荐Temurin):sudo apt install -y openjdk-8-jdk(或使用Temurin源安装);安装SSH服务:sudo apt install -y openssh-server,用于节点间无密码登录。

二、安装Hadoop

  1. 下载与解压:从Apache官网下载稳定版Hadoop(如3.3.x),解压至/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/
  2. 配置环境变量:编辑~/.bashrc(或/etc/profile),添加以下内容:
    export HADOOP_HOME=/usr/local/hadoop-3.3.6
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64  # 或Temurin路径
    
    执行source ~/.bashrc使配置生效;验证安装:hadoop version,应显示Hadoop版本信息。

三、配置SSH免密登录

  1. 生成密钥对:在主节点(如NameNode)执行ssh-keygen -t rsa -b 4096,按提示回车(默认保存路径~/.ssh/id_rsa,无需设置密码)。
  2. 分发公钥:将公钥复制到所有节点(包括自身):ssh-copy-id hadoop@namenodessh-copy-id hadoop@datanode1hadoop为集群统一用户名,需提前在各节点创建)。
  3. 测试免密登录:执行ssh hadoop@namenodessh hadoop@datanode1,无需输入密码即可登录,验证配置成功。

四、配置Hadoop核心文件 所有节点需配置core-site.xmlmapred-site.xml;NameNode节点需配置hdfs-site.xml;若启用YARN,需配置yarn-site.xml

  1. core-site.xml:设置HDFS默认通信地址和临时目录:
    <
        configuration>
        
        <
        property>
        
            <
        name>
        fs.defaultFS<
        /name>
        
            <
        value>
        hdfs://namenode:9000<
        /value>
          <
        !-- 主节点主机名 -->
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        hadoop.tmp.dir<
        /name>
        
            <
        value>
        /opt/hadoop/tmp<
        /value>
          <
        !-- 临时目录,需提前创建 -->
        
        <
        /property>
        
    <
        /configuration>
        
    
  2. hdfs-site.xml(NameNode节点):配置HDFS副本数、NameNode数据目录、DataNode数据目录及高可用(可选):
    <
        configuration>
        
        <
        property>
        
            <
        name>
        dfs.replication<
        /name>
        
            <
        value>
        3<
        /value>
          <
        !-- 数据副本数,根据节点数量调整 -->
        
        <
        /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>
        
        <
        !-- 高可用配置(可选) -->
        
        <
        property>
        
            <
        name>
        dfs.ha.namenodes.mycluster<
        /name>
        
            <
        value>
        nn1,nn2<
        /value>
          <
        !-- NameNode ID列表 -->
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        dfs.namenode.rpc-address.mycluster.nn1<
        /name>
        
            <
        value>
        namenode1:8020<
        /value>
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        dfs.namenode.rpc-address.mycluster.nn2<
        /name>
        
            <
        value>
        namenode2:8020<
        /value>
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        dfs.namenode.shared.edits.dir<
        /name>
        
            <
        value>
        qjournal://journalnode1:8485;
        journalnode2:8485;
        journalnode3:8485/mycluster<
        /value>
          <
        !-- JournalNode共享目录 -->
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        dfs.ha.automatic-failover.enabled<
        /name>
        
            <
        value>
        true<
        /value>
          <
        !-- 启用自动故障转移 -->
        
        <
        /property>
        
    <
        /configuration>
        
    
  3. mapred-site.xml:配置MapReduce运行框架为YARN:
    <
        configuration>
        
        <
        property>
        
            <
        name>
        mapreduce.framework.name<
        /name>
        
            <
        value>
        yarn<
        /value>
        
        <
        /property>
        
    <
        /configuration>
        
    
  4. yarn-site.xml(ResourceManager节点):配置YARN资源管理器地址及Shuffle服务:
    <
        configuration>
        
        <
        property>
        
            <
        name>
        yarn.resourcemanager.hostname<
        /name>
        
            <
        value>
        resourcemanager<
        /value>
          <
        !-- ResourceManager主机名 -->
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        yarn.nodemanager.aux-services<
        /name>
        
            <
        value>
        mapreduce_shuffle<
        /value>
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        yarn.nodemanager.aux-services.mapreduce.shuffle.class<
        /name>
        
            <
        value>
        org.apache.hadoop.mapred.ShuffleHandler<
        /value>
        
        <
        /property>
        
        <
        !-- 高可用配置(可选) -->
        
        <
        property>
        
            <
        name>
        yarn.resourcemanager.ha.enabled<
        /name>
        
            <
        value>
        true<
        /value>
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        yarn.resourcemanager.cluster-id<
        /name>
        
            <
        value>
        yarn-cluster<
        /value>
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        yarn.resourcemanager.ha.rm-ids<
        /name>
        
            <
        value>
        rm1,rm2<
        /value>
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        yarn.resourcemanager.zk-address<
        /name>
        
            <
        value>
        namenode1:2181,namenode2:2181,namenode3:2181<
        /value>
        
        <
        /property>
        
    <
        /configuration>
        
    

五、配置主机名解析 编辑所有节点的/etc/hosts文件,添加集群节点的IP地址与主机名映射(替换为实际IP):

127.0.0.1   localhost
192.168.1.100 namenode
192.168.1.101 datanode1
192.168.1.102 datanode2
192.168.1.103 resourcemanager

保存后执行ping namenode测试解析是否正确。

六、初始化HDFS(仅NameNode节点) 在NameNode节点执行hdfs namenode -format,格式化HDFS元数据目录(此操作会清除原有数据,仅首次启动需执行)。

七、启动Hadoop集群

  1. 启动HDFS:在NameNode节点执行start-dfs.sh,启动NameNode和DataNode服务;执行jps查看进程,应显示NameNodeDataNode
  2. 启动YARN:在ResourceManager节点执行start-yarn.sh,启动ResourceManager和NodeManager服务;执行yarn node -list查看NodeManager列表,验证YARN启动成功。
  3. (可选)启动高可用组件:若配置了HDFS或YARN高可用,需启动JournalNode(hadoop-daemons.sh start journalnode)和ZooKeeper集群(zkServer.sh start),并验证ZooKeeper状态(zkServer.sh status)。

八、验证集群状态

  1. HDFS验证:执行hdfs dfs -ls /,若返回“Permission denied”,可执行hdfs dfs -mkdir -p /user/hadoop创建用户目录,再执行hdfs dfs -ls /查看根目录。
  2. YARN验证:执行yarn node -list,应显示所有NodeManager节点信息;提交测试任务:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 10 100,验证YARN任务调度功能。
  3. Web UI验证:访问NameNode Web界面(http://namenode:9000)、ResourceManager Web界面(http://resourcemanager:8088),查看集群状态。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Debian上配置Hadoop集群
本文地址: https://pptw.com/jishu/716861.html
Hadoop在Debian上的最佳实践是什么 ubuntu cpuinfo如何备份

游客 回复需填写必要信息