• 超级无敌详细使用ubuntu搭建hadoop完全分布式集群


    一、软件准备

    1. 安装VMware
    2. 下载ubuntu镜像(阿里源ubuntu下载地址)选择自己适合的版本,以下我使用的是18.04-server版就是没有桌面的。安装桌面版如果自己电脑配置不行的话启动集群容易卡死。

    (说明一下哈就是桌面版和服务器版没什么太大的区别,桌面版为个人电脑所配置,预装了图形界面和一些其他软件,比如LibreOffice,音乐播放器,游戏等等,而服务器版没有这些东西,服务器版启动之后只有一个黑屏+光标,所有的操作都是命令形式的)


    1. 下载Hadoop和jdk(链接:https://pan.baidu.com/s/1QL4flw5_XRhVrGouZyPhjg
      提取码:a0z6 )也可以去官网下载。
    2. 准备xshell和xftp后期要使用xftp网虚拟机上上传文件(链接:https://pan.baidu.com/s/1nkMCSxuVPFKO6wiLdAB7cA
      提取码:mbb6 )

    二、安装过程

    1. 首先在VMware里创建一个名为master的虚拟机(在已经安装完VMware的前提下)
    • 打开VMware点击-----创建新的虚拟机弹出窗口选择典型安装即可----下一步:

    • 弹出以下窗口 选择 稍后安装操作系统----下一步:
      在这里插入图片描述

    • 选择需要安装的操作系统----下一步:
      在这里插入图片描述

    • 这里设置虚拟机的名字和要安装的位置----下一步:
      在这里插入图片描述

    • 设置磁盘容量----下一步:
      在这里插入图片描述

    • 这里先不要点击完成选择自定义硬件
      在这里插入图片描述

    • 这里指定自己ISO镜像的位置----关闭
      在这里插入图片描述

    • 点击完成
      在这里插入图片描述

    • 可以看到VMware下生成了一个名为master的虚拟机----点击开启此虚拟机。
      (现在虚拟机还不能使用,现在就相当于一个没有安装操作系统的空电脑,只有躯体没有灵魂)
      在这里插入图片描述

    • 点开之后会一阵加载文件,等一会会出现下面界面:
      在这里插入图片描述

    • 这里选择继续而不更新----摁回车
      在这里插入图片描述

    • 这里是设置键盘默认就可以了----摁回车
      在这里插入图片描述

    • 这里也是直接默认就可以了----摁回车
      在这里插入图片描述

    • 这里是设置代理服务器的,不用填写直接回车就可以了
      在这里插入图片描述

    • 设置下载源
      在这里插入图片描述
      在这里插入图片描述

    • 选择Done直接回车就可以了
      在这里插入图片描述

    • 这里也是默认直接回车
      在这里插入图片描述

    • 上一步回车之后会弹出一个对话框如下图:----选择Continue回车
      在这里插入图片描述

    • 设置用户名和主机名设置完之后选在Done进行下一步
      在这里插入图片描述

    • 选择安装OpenSSH 服务
      在这里插入图片描述

    • 直接选择Done进行下一步
      在这里插入图片描述

    • 安装页面
      在这里插入图片描述

    • 更新包和重启虚拟机,选择完之后还要等一会
      在这里插入图片描述

    • 经过漫长的等待出现下面界面直接按回车继续执行
      在这里插入图片描述

    • 出现下面界面摁回车就可以
      在这里插入图片描述

    • 执行上一步的话会出现下面界面使用用户密码登录
      在这里插入图片描述

    • 使用用户名登陆上去就说明这台虚拟机已经可以工作了
      在这里插入图片描述

    三、环境基础配置

    节点

    IP地址

    主机名

    master

    192.168.100.100

    master

    slave1

    192.168.100.101

    slave1

    slave2

    192.168.100.102

    slave2

    1.配置静态IP、hosts文件、克隆虚拟机、更改主机名

    在配置静态IP之前要看一下VMware虚拟网卡的网段

    在这里插入图片描述

    • 配置静态IP

      cd /etc/netplan
      ls

    在这里插入图片描述

    • 查看完配置文件使用 vi 命令进行配置

      sudo vi 00-installer-config.yaml

    在这里插入图片描述

    • vi 进入配置文件

    vi 编辑器刚进入的时候默认是命令模式,要按一下 i 进入编辑模式。如果编辑完成想要退出,首先先按一下Esc到命令模式然后输如 :wq!
    保存退出,如果不想保存退出就使用:q!命令。

    在这里插入图片描述
    在这里插入图片描述

    • 退出之后启动网卡

      sudo netplan apply
      ip a 查看IP的命令

    在这里插入图片描述

    • 配置hosts文件

    hosts文件是本地域名解析,一个本地的DNS。它将IP地址和主机名相互解析

    也是使用vi 编辑器进行编辑
    vi  /etc/hosts
    
    • 1
    • 2

    在这里插入图片描述

    • 克隆虚拟机

    先关闭master虚拟机然后点击虚拟机-----管理----克隆----下一步----下一步----选择创建完全克隆----下一步----更改虚拟机名称为slave1,位置自己选择即可。点击完成。即可看到VMware里多了一台名为slave1的虚拟机。slave2操作相同,就是虚拟机名称改为slave2即可。创建完如下图:

    在这里插入图片描述

    • 配置slave1和slave2

    注意此时slave1和slave2虚拟机是克隆的,所以说配置文件和master是完全相同的,登录的话也是master的用户和密码(用户:hadoop 密码:你自己设置的)登录上咱们要给他更改一下主机名和IP地址。打开slave1、slave2虚拟机进行以下操作:

    对slave1虚拟机进行操作的命令,操作的时候会让你输入密码
    就输入hadoop用户的密码

    hostnamectl set-hostname slave1          这个命令是永久更改主机名
    sudo login           执行完这个命令会让你重新登录以下直接hadoop用户登录
    
    • 1
    • 2

    对slave2虚拟机进行相同操作

    hostnamectl set-hostname slave2          注意这里是slave2
    sudo login           
    
    • 1
    • 2

    更改slave1的IP地址

    vi /etc/netplan/00-installer-config.yaml
    sudo netplan apply                          配置完启动一下网络服务
    ip a                                        查看一下是否配置成功
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    • 更改slave2的IP地址

    操作跟slave1命令一样,把 0 改成 2 保存退出即可,也要使用sudo netplan apply
    命令启动一下网络服务。使用ip a查看一下是否配置成功

    在这里插入图片描述

    2.配置ssh免密登录

    ssh-keygen -t rsa    每台机器都要执行这个命令,一路回车就可以了
    
    • 1
    • 执行完上面的命令,会发现用户目录下有一个.ssh的目录,使用下面的命令查看一下

      cd ~/.ssh/
      ls

    在这里插入图片描述

    现在在master节点touch一个名为authorized_keys的文件然后使用cat命令将master的公钥追加到这个文件里。命令如下:

    touch authorized_keys
    cat id_rsa.pub >> authorized_keys
    
    • 1
    • 2

    在这里插入图片描述

    然后将slave1的公钥使用scp命令传到master节点上

    scp ~/.ssh/id_rsa.pub hadoop@msater:~/
    
    • 1

    在这里插入图片描述

    • 可以看到master节点用户命令下多了一个id_rsa_pub的文件
      在这里插入图片描述

    • 同样使用cat命令将slave1的公钥追加到authorized_keys文件里

      cat id_rsa_pub >> .ssh/authorized_keys
      cat .ssh/authorized_keys

    在这里插入图片描述

    使用相同的命令将slave2的公钥传到master节点里并写入authorized_keys文件里

    scp /home/hadoop/.ssh/id_rsa.pub hadoop@master:~/ 在slave2里执行
    
    • 1

    (这里说明一下执行完上面这个命令会把之前咱们传的slave1的公钥文件覆盖掉,没什么影响。在master节点里执行下面的命令)

    cat id_rsa_pub >> .ssh/authorized_keys
    cat .ssh/authorized_keys
    
    • 1
    • 2

    在这里插入图片描述

    然后使用scp命令将master节点里的authorized_keys文件分别上传到slave1和slave2节点的.ssh/目录下

    scp /home/hadoop/.ssh/authorized_keys hadoop@slave1:~/.ssh/
    scp /home/hadoop/.ssh/authorized_keys hadoop@slave2:~/.ssh/
    
    • 1
    • 2
    • 验证ssh免密登录

      ssh slave1 远程登录slave1命令,如果想登录其他节点,将slave1改成其他主机的主机名即可
      exit 这个是退出命令

    在这里插入图片描述

    3.上传并解压JDK、Hadoop压缩包

    • 使用Xftp软件进行上传

    注意:使用Xftp之前要确保宿主机(就是自己的电脑)和虚拟机相互通信。

    在这里插入图片描述

    • 点击连接会出现下面界面

    出现下面界面,咱们可以直接把左面电脑里的文件拖到右面的虚拟机里。当然虚拟机里的文件也可以直接拖到自己电脑里。

    在这里插入图片描述

    • 将hadoop、jdk压缩文件拖到虚拟机里
      在这里插入图片描述

    • 也可以到master用户目录下查看
      在这里插入图片描述

    • 解压hadoop、jdk

      sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/ -C参数是指定解压到哪个目录下
      sudo tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local/
      cd /usr/local/ 到这个目录下
      ls 查看一下

    在这里插入图片描述

    • 给这两个权限,归hadoop用户所有

      sudo chown -R hadoop hadoop-2.7.7/
      sudo chown -R hadoop jdk1.8.0_251
      ll 查看一下

    在这里插入图片描述

    4.添加环境变量

    vi .bashrc        在这个文件最后添加如下内容,三台机器都需要添加。
    source .bashrc     添加完成之后执行这个条命令,让其生效。
    
    • 1
    • 2

    在这里插入图片描述

    • 验证一下是否添加成功

      java -version

    在这里插入图片描述

    四、配置Hadoop文件

    • 首先进入存放Hadoop配置文件的目录

      cd /usr/local/hadoop-2.7.7/etc/hadoop/ 进入此目录
      ls 查看一下

    在这里插入图片描述

    1.配置核心组件core-site.xml

    vi core-site.xml    打开文件,添加以下内容
    
    
    	fs.defaultFS
    	hdfs://192.168.100.100:9000
    
    
    	hadoop.tmp.dir
    	/home/hadoop/hadoopdata
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    2.配置hadoop-env.sh

    vi hadoop-env.sh   添加JDK的安装目录
    
    export JAVA_HOME=/usr/local/jdk1.8.0_251
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    3.配置hdfs-site.xml

    vi hdfs-site.xml
    
    
    	dfs.replication
    	3
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    4.配置yarn-site.xml

    vi yarn-site.xml
    	
    
    	yarn.nodemanager.aux-services
    	mapreduce_shuffle
    
    
    	yarn.resourcemanager.address
    	192.168.100.100:18040
    								        
    
    	yarn.resourcemanager.scheduler.address
    	192.168.100.100:18030
    
    
    	yarn.resourcemanager.resource-tracker.address
    	192.168.100.100:18025
    
    
    	yarn.resourcemanager.admin.address
    	192.168.100.100:18141
    
    
    	yarn.resourcemanager.webapp.address
    	192.168.100.100:18088
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    在这里插入图片描述

    5.配置mapred-site.xml

    使用cp命令复制mapred-site.xml.template文件为mapred-site.xml
    
    cp mapred-site.xml.template  mapred-site.xml     使用cp命令进行复制
    
    vi mapred-site.xml   添加以下内容
    
    
    	mapreduce.framework.name
    	yarn
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述

    6.配置yarn-env.sh

    vi yarn-env.sh
    
    export JAVA_HOME=/usr/local/jdk1.8.0_251
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    五、复制文件

    1.使用scp命令将hadoop、jdk文件复制到slave1和slave2节点上。

    在master节点执行下面命令
    
    sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave1:~/
    sudo scp -r /usr/local/hadoop-2.7.7 hadoop@slave2:~/
    sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave1:~/
    sudo scp -r /usr/local/jdk1.8.0_251 hadoop@slave2:~/
    此时已经将这两个文件复制到slave1、slave2节点的用户目录下
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.移动文件

    在slave1、slave2节点执行下面命令
    sudo mv /home/hadoop/hadoop-2.7.7/ /usr/local/
    sudo mv /home/hadoop/jdk1.8.0_251/ /usr/local/
    
    source .bashrc    生效一下环境变量,每台节点都要执行。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    六、启动集群

    1.在master节点格式化namenode

    hdfs namenode -format       进行格式化
    
    • 1

    2.start-all.sh启动集群

    start-all.sh 
    
    • 1

    在这里插入图片描述

    • 查看slave1节点的进程
      在这里插入图片描述

    • 查看slave2节点的进程
      在这里插入图片描述

    3.通过浏览器访问UI 集群信息图

    192.168.100.100:50070
    
    • 1

    在这里插入图片描述

    4.通过浏览器访问Yarn web 信息图

    在这里插入图片描述

    至此Hadoop完全分布式搭建完成

  • 相关阅读:
    FormItem添加必填星号而不验证
    Apollo自动驾驶平台的未来展望:从智能出行到城市管理
    Python的sort()与sorted()函数详解
    一文了解深度学习实战——分类篇
    有关电力电子技术的一些相关仿真和分析:⑥单相相控调压电路与单相斩控调压电路(MATLAB/Siumlink仿真)
    Short read or OOM loading DB. Unrecoverable error, aborting now
    Java23种设计模式
    第1章 Java、IDEA环境部署与配置
    Spring Boot整合Lombok全过程及详细用法
    清华陆向谦教授提到的纽约时报的一篇文章-探讨学历贬值
  • 原文地址:https://blog.csdn.net/web18334137065/article/details/126617462