Hadoop集群搭建配置教程

Hadoop集群搭建配置教程Hadoop3 1 3 集群搭建前言集群规划集群搭建具体步骤 1 下载 hadoop 3 1 3 tar gz 2 上传并解压 3 配置 path 变量 4 修改配置文件 4 1 修改文件 hadoop env sh 4 2 修改文件 workers4 3 修改文件 core site xml 4 4 修改文件 hdfs site xml 4 5 修改文件 mapred site xml 4 6 修改文件 yarn site xml 5 把 opt module hadoop 复制到其他节点上 6 在其他节点上操作 7

前言

当Hadoop采用分布式模式部署和运行时,存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。这时,数据就可以分布到多个节点上,不同数据节点上的数据计算可以并行执行,这时的MapReduce分布式计算能力才能真正发挥作用。

集群规划

我们使用三个虚拟机节点来搭建集群环境:

ip 主机名 功能
192.168.36.121 hadoop1 NameNode DataNode ResourceManager NodeManager
192.168.36.122 hadoop2 DataNode NodeManager
192.168.36.123 hadoop3 SecondryNameNode DataNode NodeManager

分别在上述的节点上修改hosts文件,增加IP和主机名的映射关系:

# 打开hosts文件 vim /etc/hosts # 添加如下内容 192.168.36.121 hadoop1 192.168.36.122 hadoop2 192.168.36.123 hadoop3 

另外,Hadoop 集群运行需要 Java 运行环境,所以,在各个节点上需要安装 JDK

集群搭建具体步骤

注意:以下步骤均在hadoop1节点上进行操作,特殊说明除外!

1、下载hadoop-3.1.3.tar.gz

hadoop官网下载:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

2、上传并解压

将下载好的 hadoop-3.1.3.tar.gz 上传到 hadoop1 虚拟机节点 /opt/module 目录下。

cd /opt/module # 解压 tar -zxvf hadoop-3.1.3.tar.gz # 修改目录名 mv hadoop-3.1.3 hadoop 

3、配置path变量

vim ~/.bashrc # 添加如下内容: export PATH=$PATH:/opt/module/hadoop/bin:/opt/module/hadoop/sbin # :wq! 保存退出后执行如下命令,使配置生效 source ~/.bashrc 

4、修改配置文件

cd /opt/module/hadoop/etc/hadoop 

4.1 修改文件hadoop-env.sh

vim hadoop-env.sh # 添加如下内容 export JAVA_HOME=/usr/java/jdk1.8.0_131 

4.2 修改文件workers

vim workers # 将localhost去掉添加如下内容 hadoop1 hadoop2 hadoop3 

注意:需要把所有数据节点的主机名写入该文件,每行一个,默认为localhost(即把本机作为数据节点),所以,在伪分布式配置时,就采用了这种默认的配置,使得节点既作为名称节点也作为数据节点。在进行分布式配置时,可以保留localhost,让hadoop1节点同时充当名称节点和数据节点,或者也可以删掉localhost这行,让hadoop1节点仅作为名称节点使用。

4.3 修改文件core-site.xml

 
    <configuration> <property> <name>fs.defaultFS 
     name> <value>hdfs://hadoop1:8020 
      value>  
       property> <property> <name>hadoop.tmp.dir 
        name> <value>file:/opt/module/hadoop/tmp 
         value> <description>Abase for other temporary directories. 
          description>  
           property>  
            configuration> 

4.4 修改文件hdfs-site.xml

dfs.replication的值还是设置为 3, 也就是说,一份数据保存三份副本,Hadoop的分布式文件系统HDFS一般都是采用冗余存储。

<configuration> <property> <name>dfs.namenode.secondary.http-address 
     name> <value>hadoop1:50090 
      value>  
       property> <property> <name>dfs.replication 
        name> <value>3 
         value>  
          property> <property> <name>dfs.namenode.name.dir 
           name> <value>file:/opt/module/hadoop/tmp/dfs/name 
            value>  
             property> <property> <name>dfs.datanode.data.dir 
              name> <value>file:/opt/module/hadoop/tmp/dfs/data 
               value>  
                property>  
                 configuration> 

4.5 修改文件mapred-site.xml

 
    <configuration> <property> <name>mapreduce.framework.name 
     name> <value>yarn 
      value>  
       property> <property> <name>mapreduce.jobhistory.address 
        name> <value>hadoop1:10020 
         value>  
          property> <property> <name>mapreduce.jobhistory.webapp.address 
           name> <value>hadoop1:19888 
            value>  
             property> <property> <name>yarn.app.mapreduce.am.env 
              name> <value>HADOOP_MAPRED_HOME=/opt/module/hadoop 
               value>  
                property> <property> <name>mapreduce.map.env 
                 name> <value>HADOOP_MAPRED_HOME=/opt/module/hadoop 
                  value>  
                   property> <property> <name>mapreduce.reduce.env 
                    name> <value>HADOOP_MAPRED_HOME=/opt/module/hadoop 
                     value>  
                      property>  
                       configuration> 

4.6 修改文件 yarn-site.xml

 
    <configuration> <property> <name>yarn.resourcemanager.hostname 
     name> <value>hadoop1 
      value>  
       property> <property> <name>yarn.nodemanager.aux-services 
        name> <value>mapreduce_shuffle 
         value>  
          property>  
           configuration> 

5、把/opt/module/hadoop复制到其他节点上

cd /opt/module rm -r ./hadoop/tmp # 删除 Hadoop 临时文件 rm -r ./hadoop/logs/* # 删除日志文件 tar -zxcf hadoop.tar.gz ./hadoop # 先压缩再复制 scp ./hadoop.tar.gz hadoop2:/opt/module scp ./hadoop.tar.gz hadoop3:/opt/module 

6、在其他节点上操作

cd /opt/module rm -r ./hadoop # 删掉旧的(如果存在) tar -zxvf hadoop.tar.gz 

7、名称节点的格式化

首次启动Hadoop集群时,需要先在hadoop1节点执行名称节点的格式化(只需要执行这一次,后面再启动Hadoop时,不要再次格式化名称节点)

hdfs namenode -format 

8、启动Hadoop集群

需要在hadoop1节点上进行

# 启动hdfs start-dfs.sh # 启动yarn start-yarn.sh # 启动历史服务 mr-jobhistory-daemon.sh start historyserver 

9、验证是否启动成功

通过命令jps可以查看各个节点所启动的进程。如果已经正确启动,则在hadoop1节点上可以看到NameNodeResourceManager、和JobHistoryServer以及DataNodeNodeManager进程
在其他两个节点可以看到DataNodeNodeManager进程,在hadoop3节点上还可以看到SecondryNameNode进程
缺少任一进程都表示出错。




10、查看运行实例

在执行过程中,可以在Linux系统中打开浏览器,在地址栏输入http://hadoop1:8088/cluster,通过Web界面查看任务进度,在Web界面点击 Tracking UI 这一列的History连接,可以看到任务的运行信息。

11、关闭Hadoop集群

关闭Hadoop集群,需要在hadoop1节点执行如下命令:

stop-yarn.sh stop-dfs.sh mr-jobhistory-daemon.sh stop historyserver 

至此,就顺利完成了Hadoop集群搭建。

微信公众号:扫描下方二维码或 搜索 笑看风云路 关注
笑看风云路

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224438.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:56
下一篇 2026年3月17日 上午11:56


相关推荐

  • python(BS4模块)

    python(BS4模块)BS4 简介 1 什么时 BS4 BS4 全称是 BeatifulSoup 它提供一些简单的 python 式的函数用来处理导航 搜索 修改分析树等功能 它是一个工具箱 通过解析文档为 tifulSoup 自动将输入文档转换为 Unicode 编码 输出文档转换为 utf 8 编码 你不需要考虑编码方式 除非文档没有指定一个编一下原始编码方式就可以了 2 BS4 的 4 中对象 Tag 对象 是 html 中的一个标签

    2026年3月19日
    2
  • pom文件的 spring-boot-maven-plugin报红

    pom文件的 spring-boot-maven-plugin报红报红是因为缺少版本号 后面加上即可 version 2 3 5 RELEASE version build plugins plugin groupId org springframew boot groupId artifactId spring boot maven p artifactId plugin plugins build

    2026年3月18日
    2
  • Guohua Diffusion 智能体(Agent)协作创作:多轮对话生成连环画

    Guohua Diffusion 智能体(Agent)协作创作:多轮对话生成连环画

    2026年3月16日
    2
  • Android TextView两端对齐、文本两端对齐

    Android TextView两端对齐、文本两端对齐如题 在开发中 经常会用到比如说类似于表格的排版 效果图 这样的效果 谷歌也没给出这样效果的方法 网上查也没找到实现方法 然后想 中间用空格填充呢 试试 然后写了几个 TextView 对比一下 如下 放大效果 可以看出 不能完美对齐 这肯定不是想要的效果 然后就发现了两个占字符来实现 nbsp 他们与汉字换算关系就是 1 个汉字 4 个

    2025年11月5日
    5
  • bzero 和memset的区别[通俗易懂]

    bzero 和memset的区别[通俗易懂]bzero  原型:externvoidbzero(void*s,intn);  用法:#include  功能:置字节字符串s的前n个字节为零且包括‘\0’。  说明:bzero无返回值,并且使用strings.h头文件,strings.h曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐使用。在P

    2022年10月13日
    6
  • PHP面向对象

    PHP面向对象

    2022年1月12日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号