环境准备

  1. vm虚拟机(自行安装Centos7系统)
  2. hadoop3.x安装包(linux版本)
  3. java1.8安装包(linux版本)

为了能够按照教程顺利操作,需要注意几点细节

  1. 不要不看文字直接复制粘贴
  2. 操作命令的用户很重要,否则后续会引发关于权限的问题
  3. ftp 与 终端工具需要自己操作使用本教程不涵盖操作,如有需要,自行百度,本教程均使用终端shell工具截图,其性质与linux系统右键打开终端相同。

开始啦!

  1. 使用root用户登录,用一个单独的用户管理hadoop集群,所以要用管理员(root)用户创建一个名字为hadoop的用户。
[root@hadoop102 ~]# useradd hadoop
  1. 设置 hadoop 用户的密码
[root@hadoop102 ~]# passwd hadoop
  1. 给 hadoop 用户提权,编辑如下路径文件
[root@hadoop102 ~]# vim /etc/sudoers

​ 将文件此处修改为这样(在100行左右)

  1. 修改静态IP
[root@hadoop102 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

​ 静态ip文件修改如下

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="385ea190-1b85-42cf-9df4-916f2dd86bc7"
DEVICE="ens33"
ONBOOT="yes"
#ip 写自己设置的
IPADDR=192.168.127.112
#子网掩码 固定的
NETMASK=255.255.255.0
#网关 就是将你ip最后一段改成1
GATEWAY=192.168.127.1
  1. 修改主机名
[root@hadoop102 ~]# vim /etc/hostname

​ 文件内写入自己的主机名字即可

  • ![](https://img2022.cnblogs.com/blog/1900844/202203/1900844-20220309231329713-802217411.png)
  1. 修改主机域名映射
[root@hadoop102 ~]# vim /etc/hosts

​ hosts文件内容如下

  1. 关闭防火墙(运行b即可永久关闭)

    1. 一次性关闭 -- 重启之后系统会默认打开防火墙

      [root@hadoop102 ~]# systemctl stop firewalld
    2. 永久关闭防火墙

      [root@hadoop102 ~]# systemctl disable firewalld
    3. 查看当前防火墙状态

      [root@hadoop102 ~]# systemctl status firewalld

      状态截图

  2. 重启机器,生效所有配置,注意 下次登录直接使用 hadoop 账户信息登录系统,这样子直接创建目录权限就是属于hadoop的

    1. 如果想要终端连接虚拟机,待重启之后即可输入ip与用户信息即可登录终端。
    [root@hadoop102 ~]# reboot
  3. 创建javajdk 和 hadoop 安装所需目录

    1. 创建软件安装包存放目录

      1. software目录用于存放安装包
      2. module目录用于软件的安装目录(或者叫解压目录)
      [hadoop@hadoop102 /]$ sudo mkdir /opt/software
      [hadoop@hadoop102 /]$ sudo mkdir /opt/module
    2. 赋予software目录上传权限,可以看到下面的权限已经允许外部读取写入

      [root@hadoop102 opt]# chmod +777 /opt/software /opt/module
      [root@hadoop102 opt]# ll
      总用量 12
      drwxrwxrwx. 2 root root 4096 3月 9 21:56 module
      drwxr-xr-x. 2 root root 4096 10月 31 2018 rh
      drwxrwxrwx. 2 root root 4096 3月 9 21:56 software
    3. 上传hadoop和java安装包(本操作不涵盖,注意:使用任意的ftp工具登录连接时候请使用 hadoop 用户登录操作)

    4. 解压至module目录

      [hadoop@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C ../module/
      [hadoop@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C ../module/
  4. 配置java 和 hadoop的环境变量

    1. 切换至root用户操作系统文件,操作完成之后切换成hadoop用户

      [hadoop@hadoop102 software]$ su root
    2. 使用root用户修改环境变量文件,在文件末尾追加如下信息,如果你的安装路径跟我不同这里需要写你自己的,跟着教程走且是同一个版本安装包或者同一个安装文件夹名字的不需要任何修改

      #java
      export JAVA_HOME=/opt/module/jdk1.8.0_212
      export PATH=$PATH:$JAVA_HOME/bin #hadoop3.1.3
      export HADOOP_HOME=/opt/module/hadoop-3.1.3
      export PATH=$PATH:$HADOOP_HOME/bin
    3. 切换至hadoop用户,并生效配置文件,查看效果

      [hadoop@hadoop102 software]$ source /etc/profile
    4. 自行运行如下命令进行环境测试,足够自行不测试也可以的。

      [hadoop@hadoop102 software]$ java
      [hadoop@hadoop102 software]$ javac
      [hadoop@hadoop102 software]$ java -version
      [hadoop@hadoop102 software]$ hadoop version
  5. 配置hadoop

    1. 编辑core-site.xml文件

      [hadoop@hadoop102 /]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
      <!-- 指定NameNode的地址 -->
      <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop102:8020</value>
      </property> <!-- 指定hadoop数据的存储目录 -->
      <property>
      <name>hadoop.tmp.dir</name>
      <value>/opt/module/hadoop-3.1.3/data</value>
      </property>
    2. 编辑hdfs-site.xml文件

      [hadoop@hadoop102 /]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
      <!-- nn web端访问地址-->
      <property>
      <name>dfs.namenode.http-address</name>
      <value>hadoop102:9870</value>
      </property>
      <!-- 2nn web端访问地址-->
      <property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop104:9868</value>
      </property>
    3. 编辑yarn-site.xml文件

      [hadoop@hadoop102 /]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
      <!-- 指定MR走shuffle -->
      <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
      </property> <!-- 指定ResourceManager的地址-->
      <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>hadoop103</value>
      </property> <!-- 环境变量的继承 -->
      <property>
      <name>yarn.nodemanager.env-whitelist</name>
      <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
      </property>
    4. 编辑mapred-site.xml文件

      [hadoop@hadoop102 /]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
      <!-- 指定MapReduce程序运行在Yarn上 -->
      <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
      </property>
    5. 编辑hadoop-env.sh文件

      [hadoop@hadoop102 /]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
      1. 文件末尾追加一行
      export JAVA_HOME=/opt/module/jdk1.8.0_212
    6. 编辑workers文件

      [hadoop@hadoop102 hadoop]$ vim workers
      1. 写入如下内容
      hadoop102
      hadoop103
      hadoop104
  6. 到此步骤,关闭虚拟机,克隆两台,请自行百度,待克隆完成之后,开启两个克隆的机器,不要通过终端连接,然后做下面操作,在vm中进行。

    1. 三台主机都使用root用户登录

      1. 修改克隆1机器的主机名

        [root@hadoop102 hadoop]# vim /etc/hostname

        内容如下

        hadoop103
      2. 修改克隆1的ip

        [root@hadoop102 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

        内容如下

        TYPE="Ethernet"
        PROXY_METHOD="none"
        BROWSER_ONLY="no"
        BOOTPROTO="static"
        DEFROUTE="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_FAILURE_FATAL="no"
        IPV6_ADDR_GEN_MODE="stable-privacy"
        NAME="ens33"
        UUID="385ea190-1b85-42cf-9df4-916f2dd86bc7"
        DEVICE="ens33"
        ONBOOT="yes"
        IPADDR=192.168.127.113
        NETMASK=255.255.255.0
        GATEWAY=192.168.127.1
      3. 修改克隆2机器的主机名

        [root@hadoop102 hadoop]# vim /etc/hostname

        内容如下

        hadoop104
      4. 修改克隆2机器的ip

        [root@hadoop102 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

        内容如下

        TYPE="Ethernet"
        PROXY_METHOD="none"
        BROWSER_ONLY="no"
        BOOTPROTO="static"
        DEFROUTE="yes"
        IPV4_FAILURE_FATAL="no"
        IPV6INIT="yes"
        IPV6_AUTOCONF="yes"
        IPV6_DEFROUTE="yes"
        IPV6_FAILURE_FATAL="no"
        IPV6_ADDR_GEN_MODE="stable-privacy"
        NAME="ens33"
        UUID="385ea190-1b85-42cf-9df4-916f2dd86bc7"
        DEVICE="ens33"
        ONBOOT="yes"
        IPADDR=192.168.127.114
        NETMASK=255.255.255.0
        GATEWAY=192.168.127.1
      5. 重启两台克隆机器,使配置重新加载生效。

        [root@hadoop102 ~]#reboot
  7. 配置免密登录

    1. hadoop102生成免密并发送给其余两个节点(hadoop102,hadoop103,hadoop104)

      [hadoop@hadoop102 .ssh]$ ssh-keygen -t rsa
      [hadoop@hadoop104 .ssh]$ ssh-copy-id hadoop102
      [hadoop@hadoop102 .ssh]$ ssh-copy-id hadoop103
      [hadoop@hadoop102 .ssh]$ ssh-copy-id hadoop104
    2. hadoop103生成免密并发送给其余两个节点(hadoop102,hadoop103,hadoop104)

      [hadoop@hadoop103 .ssh]$ ssh-keygen -t rsa
      [hadoop@hadoop103 .ssh]$ ssh-copy-id hadoop102
      [hadoop@hadoop104 .ssh]$ ssh-copy-id hadoop103
      [hadoop@hadoop103 .ssh]$ ssh-copy-id hadoop104
    3. hadoop104生成免密并发送给其余两个节点(hadoop102,hadoop104,hadoop103)

      [hadoop@hadoop104 .ssh]$ ssh-keygen -t rsa
      [hadoop@hadoop104 .ssh]$ ssh-copy-id hadoop102
      [hadoop@hadoop104 .ssh]$ ssh-copy-id hadoop103
      [hadoop@hadoop104 .ssh]$ ssh-copy-id hadoop104
  8. 格式化(必须主节点操作,既hadoop102这个节点)

    [hadoop@hadoop102 sbin]$ hdfs namenode -format
  9. 然后可以通过如下文本查看对应的信息

    192.168.127.112:9870  --访问hadoop集群前台页面
    192.168.127.113:8088 --访问hadoop的所有应用页面
    还可以通过各个节点jps命令查看启动的任务节点状态。

Hadoop3.x完全分布式搭建(详细)的更多相关文章

  1. VM上Hadoop3.1伪分布式模式搭建

    https://www.cnblogs.com/asker009/p/9126354.html 最近要搭建一个Hadoop做实验,因为版本的问题遇到不少的坑,本文记录VM上搭建的CentOS7.0+H ...

  2. hadoop3自学入门笔记(2)—— HDFS分布式搭建

    一些介绍 Hadoop 2和Hadoop 3的端口区别 Hadoop 3 HDFS集群架构 我的集群规划 name ip role 61 192.168.3.61 namenode,datanode ...

  3. Centos7完全分布式搭建Hadoop2.7.3

    (一)软件准备 1,hadoop-2.7.3.tar.gz(包) 2,三台机器装有cetos7的机子 (二)安装步骤 1,给每台机子配相同的用户 进入root : su root ---------& ...

  4. Solr集群搭建详细教程(一)

    一.Solr集群的系统架构 注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. SolrCloud(solr 云)是So ...

  5. 3.hadoop完全分布式搭建

    3.Hadoop完全分布式搭建 1.完全分布式搭建 配置 #cd /soft/hadoop/etc/ #mv hadoop local #cp -r local full #ln -s full ha ...

  6. 2.hadoop基本配置,本地模式,伪分布式搭建

    2. Hadoop三种集群方式 1. 三种集群方式 本地模式 hdfs dfs -ls / 不需要启动任何进程 伪分布式 所有进程跑在一个机器上 完全分布式 每个机器运行不同的进程 2. 服务器基本配 ...

  7. hadoop2.8 集群 1 (伪分布式搭建)

    简介: 关于完整分布式请参考: hadoop2.8 ha 集群搭建   [七台机器的集群] Hadoop:(hadoop2.8) Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户 ...

  8. Solr集群搭建详细教程(二)

    注:欢迎大家转载,非商业用途请在醒目位置注明本文链接和作者名dijia478,商业用途请联系本人dijia478@163.com. 之前步骤:Solr集群搭建详细教程(一) 三.solr集群搭建 注意 ...

  9. hadoop分布式搭建

    1.新建三台机器,分别为: hadoop分布式搭建至少需要三台机器: master extension1 extension2 本文利用在VMware Workstation下安装Linux cent ...

随机推荐

  1. VS Code拓展--Language Support for Java(TM) by Red Hat(1.3.0)

    Language Support for Java(TM) by Red Hat(1.3.0) 注意:版本问题,可能会有部分出入 功能目录 设置 java.home 作用: 指定用于启动 Java 语 ...

  2. 求一个number数组中的最大值和最小值的差

    <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...

  3. ABC209 E Shiritori

    考虑对这个问题进行转化: 显然我们只关注每个串前三个棋子和后三个棋子,并且根据题目的特性,我们可以将任意的三个字符看作点,将一个字符串看作连接两个点的边,这样我们得到了一张点数为 \(52 ^ 3\) ...

  4. Guava学习之EventBus

    一.EventBus的使用案例 EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现.对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单 ...

  5. vue中的钩子函数

    什么是vue的钩子函数? Vue 实例在被创建时,会经过一系列的初始化过程,初始化过程中会运行一些函数,叫做生命周期钩子函数,通过运用钩子函数,用户在可以在Vue实例初始化的不同阶段添加自己的代码,以 ...

  6. 详解 Apache SkyWalking OAP 的分布式计算

    SkyWalking的OAP(Observability Analysis Platform,观测分析平台)是一个用于链路数据的分布式计算系统. 因为它巧妙的设计,使得在链路数据计算和聚合过程中,不需 ...

  7. MXNet学习-第一个例子:训练MNIST数据集

    一个门外汉写的MXNET跑MNIST的例子,三层全连接层最后验证率是97%左右,毕竟是第一个例子,主要就是用来理解MXNet怎么使用. #导入需要的模块 import numpy as np #num ...

  8. Solution -「AGC 026D」Histogram Coloring

    \(\mathcal{Description}\)   Link.   有 \(n\) 列下底对齐的方格纸排成一行,第 \(i\) 列有 \(h_i\) 个方格.将每个方格染成黑色或白色,求使得任意完 ...

  9. 生成式AI会成为是人工智能的未来吗

    生成式 AI 是一项创新技术,可帮助算法人员生成以前依赖于业务员的模型,提供创造性的结果,而不会因业务员思想和经验而产生任何差错. 人工智能中的这项新技术确定了输入的原始模型,以生成演示训练数据特征. ...

  10. Virtual Box 中的虚拟系统无法调整分辨率(无法自适应窗口大小)

    关于 Virtual Box 中安装好虚拟机后无法调整分辨率,即无法随 vbox 窗口大小自动调整内部虚拟机的屏幕. 网上找了百度了一遍,很多方法并不凑效,好在最后解决了,现将过程记录,以飨来者. 1 ...