安装Ubuntu

Linux元信息

  1. 两台机器,每台机器两台Ubuntu
  2. Ubuntu版本:ubuntu-22.04.3-desktop-amd64.iso
  3. 处理器数量2,每个处理器的核心数量2,总处理器核心数量4
  4. 单个虚拟机内存8192MB(8G),最大磁盘大小30G

参考链接

  1. 清华大学开源软件镜像站

    https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/

  2. 虚拟机(VMware)安装Linux(Ubuntu)安装教程

    https://blog.csdn.net/qq_39657434/article/details/112252844

具体步骤

  1. 把下载好的iso文件保存到一个位置

  2. 开始在VMware安装Ubuntu

  3. 选择网络类型(图片错了,应该是“桥接网络”,详见“配置虚拟机网络”)

  4. 指定磁盘容量

  5. 设置镜像文件

  6. 开始安装Ubuntu

配置虚拟机网络

配置桥接模式

  1. 查看宿主机WLAN硬件配置信息

  2. 打开VMware中的虚拟网络编辑器,根据宿主机WLAN硬件配置如下信息

设置虚拟机静态IP

​ 防止每次开机随机IP,导致无法连接到其他虚拟机

  1. 切换root用户(第一次切换root用户需要配置root密码)

    sudo passwd
  2. 打开01-network-manager-all.yaml文件(网卡配置文件)

    vim /etc/netplan/01-network-manager-all.yaml
  3. 删除原内容,复制粘贴如下信息(根据实际情况更改)

    # Let NetworkManager manage all devices on this system
    network:
    ethernets:
    ens33:
    dhcp4: false
    addresses: [192.168.139.101/24]
    routes:
    - to: default
    via: 192.168.139.92
    nameservers:
    addresses: [8.8.8.8]
    version: 2
  4. 在宿主机的cmd中运行ipconfig命令查看网络信息,如下图所示:

  5. 根据第四步更改第三步的部分信息

    • via:宿主机的默认网关
    • addresses:前三位和宿主机默认网关保持一致,后一位自己随便设置(但要避免和已有ip重复)

安装Hadoop

Hadoop元信息

  1. 统一用户名:hjm,密码:000000

  2. 四台虚拟机分别为gyt1,gyt2,hjm1,hjm2

  3. 四台虚拟机用桥接模式,连接一台手机的热点,虚拟机ip如下:

    hjm1:192.168.139.101

    hjm2:192.168.139.102

    gyt1:192.168.139.103

    gyt2:192.168.139.104

  4. 集群部署规划

    hjm1 hjm2 gyt1 gyt2
    HDFS NameNode、DataNode DataNode SecondaryNameNode、DataNode DataNode
    YARN NodeManager NodeManager NodeManager ResourceManager、NodeManager

配置用户sudo权限

​ 配置以后,每次使用sudo,无需输入密码

  1. 用sudo权限打开sudoers文件

    sudo vim /etc/sudoers
  2. 增加修改sudoers文件,在%sudo下面新加一行(这里以hjm用户为例)

    # Allow members of group sudo to execute any command
    %sudo ALL=(ALL:ALL) ALL hjm ALL=(ALL) NOPASSWD: ALL

创建目录并更改权限

  1. 创建module和software文件夹

    sudo mkdir /opt/module
    sudo mkdir /opt/software
  2. 修改 module、software 文件夹的所有者和所属组均为hjm用户

    sudo chown hjm:hjm /opt/module
    sudo chown hjm:hjm /opt/software

Ubuntu查看、安装和开启ssh服务

  1. 查看ssh服务的开启状态,如果开启,则可以跳过这一部分

    ps -e|grep ssh
  2. 安装ssh服务

    sudo apt-get install openssh-server
  3. 启动ssh服务

    sudo /etc/init.d/ssh start

​ 注意:

​ 当你用ssh软件(这里默认是Xhell 7)连接时,不要用root用户连,ssh默认 不能用root直接连,除非修改配置文件

安装JDK

  1. 用xftp工具将jdk导入到opt目录下面的software文件夹下面

  2. 解压jdk到opt/module目录下

    tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
  3. 配置jdk环境变量

    (1)新建/etc/profile.d/my_env.sh 文件

    sudo vim /etc/profile.d/my_env.sh

    (2)添加以下内容

    #JAVA_HOME
    export JAVA_HOME=/opt/module/jdk1.8.0_212
    export PATH=$PATH:$JAVA_HOME/bin

    (3)保存后退出,source 一下/etc/profile 文件,让新的环境变量 PATH 生效

    source /etc/profile

    (4)测试jdk是否安装成功

    java -version

安装Hadoop

  1. 用xftp工具将hadoop导入到opt目录下面的software文件夹下面

  2. 解压hadoop到opt/module目录下

    tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
  3. 配置hadoop环境变量

    (1)打开/etc/profile.d/my_env.sh 文件

    sudo vim /etc/profile.d/my_env.sh

    (2)在 my_env.sh 文件末尾添加如下内容

    #HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-3.1.3
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin

    (3)保存后退出,source 一下/etc/profile 文件,让新的环境变量 PATH 生效

    source /etc/profile

    (4)测试hadoop是否安装成功

    hadoop version

修改配置文件

​ cd到$HADOOP_HOME/etc/hadoop目录

core-site.xml

<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hjm1:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 hjm -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>hjm</value>
</property>
</configuration>

hdfs-site.xml

<configuration>
<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hjm1:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>gyt1:9868</value>
</property>
</configuration>

yarn-site.xml

<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>gyt2</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
</configuration>

mapred-site.xml

<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

workers

hjm1
hjm2
gyt1
gyt2

克隆虚拟机

  1. 在hjm1和gyt1的两台宿主机上分别克隆出hjm2和gyt2

  2. 按照“配置虚拟机网络-设置虚拟机静态IP”的方式,配置hjm2的ip为192.168.139.102,gyt2的ip为192.168.139.104

  3. 改每台虚拟机的ubuntu映射文件,这里以gyt2为例

    127.0.0.1       localhost
    # 127.0.1.1 gyt2 记得删除这一行
    192.168.139.101 hjm1
    192.168.139.102 hjm2
    192.168.139.103 gyt1
    192.168.139.104 gyt2
  4. 修改四台虚拟机的主机名分别为hjm1,hjm2,gyty1,gyt2

    sudo vim /etc/hostname
  5. 重启虚拟机

ssh免密登录

  1. 分别要配置16种免密登录,如下图所示

  1. 切换hjm用户,cd到~/.ssh,生成公钥和私钥

    ssh-keygen -t rsa
  2. 将公钥复制到目的机上,这里以hjm1举例

    ssh-copy-id hjm1

xsync集群分发脚本

  1. 在/home/hjm/bin目录下创建xsync文件

  2. 在该文件中编写如下代码

    #!/bin/bash
    #1. 判断参数个数
    if [ $# -lt 1 ]
    then
    echo Not Enough Arguement!
    exit;
    fi
    #2. 遍历集群所有机器
    for host in hadoop102 hadoop103 hadoop104
    do
    echo ==================== $host ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
    #4. 判断文件是否存在
    if [ -e $file ]
    then
    #5. 获取父目录
    pdir=$(cd -P $(dirname $file); pwd)
    #6. 获取当前文件的名称
    fname=$(basename $file)
    ssh $host "mkdir -p $pdir"
    rsync -av $pdir/$fname $host:$pdir
    else
    echo $file does not exists!
    fi
    done
    done
  3. 修改脚本xsync具有执行权限

    chmod +x xsync
  4. 测试脚本

    xsync /home/atguigu/bin
  5. 将脚本复制到/bin中,以便全局调用

    sudo cp xsync /bin/
  6. 在客户端电脑(默认windows)配置映射

    (1)windows + R

    (2)输入drivers,回车

    (3)进入etc文件夹

    (4)编辑hosts文件

    192.168.139.101 hjm1
    192.168.139.102 hjm2
    192.168.139.103 gyt1
    192.168.139.104 gyt2

测试hadoop

  1. 格式化NameNode

    如果集群是第一次启动,需要在 hadoop102 节点格式化 NameNode(注意:格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化。)

    hdfs namenode -format
  2. 在hjm1上启动hdfs

    sbin/start-dfs.sh
  3. 在gyt2上启动yarn

    sbin/start-yarn.sh
  4. Web 端查看 HDFS 的 NameNode

    http://hjm1:9870

  5. Web 端查看 YARN 的 ResourceManager

    http://gyt2:8088

  6. 测试结果

    (1)datanode

    (2)Yarn

    (3)WordCount

报错及解决

  1. https://blog.csdn.net/sinat_23225111/article/details/127497281

两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)的更多相关文章

  1. 沉淀,再出发——手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群

    手把手教你使用VirtualBox搭建含有三个虚拟节点的Hadoop集群 一.准备,再出发 在项目启动之前,让我们看一下前面所做的工作.首先我们掌握了一些Linux的基本命令和重要的文件,其次我们学会 ...

  2. 三节点Hadoop集群搭建

    1. 基础环境搭建 新建3个CentOS6.5操作系统的虚拟机,命名(可自定)为masternode.slavenode1和slavenode2.该过程参考上一篇博文CentOS6.5安装配置详解 2 ...

  3. kafka系列一:单节点伪分布式集群搭建

    Kafka集群搭建分为单节点的伪分布式集群和多节点的分布式集群两种,首先来看一下单节点伪分布式集群安装.单节点伪分布式集群是指集群由一台ZooKeeper服务器和一台Kafka broker服务器组成 ...

  4. Hadoop集群搭建(完全分布式版本) VMWARE虚拟机

    Hadoop集群搭建(完全分布式版本) VMWARE虚拟机 一.准备工作 三台虚拟机:master.node1.node2 时间同步 ntpdate ntp.aliyun.com 调整时区 cp /u ...

  5. 大数据之虚拟机配置和环境准备及hadoop集群搭建

    一.VMnet1和VMnet8路由器 VMware-workstation软件选择默认安装时,会自动创建VMnet1和VMnet8路由器设备.(安装失败使用CCleaner清理vm软件) VMnet1 ...

  6. 从VMware虚拟机安装到hadoop集群环境配置详细说明(第一期)

    http://blog.csdn.net/whaoxysh/article/details/17755555 虚拟机安装 我安装的虚拟机版本是VMware Workstation 8.04,自己电脑上 ...

  7. spark集群搭建(三台虚拟机)——hadoop集群搭建(2)

    !!!该系列使用三台虚拟机搭建一个完整的spark集群,集群环境如下: virtualBox5.2.Ubuntu14.04.securecrt7.3.6_x64英文版(连接虚拟机) jdk1.7.0. ...

  8. Hadoop集群搭建(一)~虚拟机的创建

    Hadoop集群的搭建包括,虚拟机系统的安装:安装JDK,Hadoop:克隆虚拟机:伪分布式的搭建:安装zookeeper:Hive:Hbae:Spark等等: 我将分为多篇文章来记录.这篇文章主要写 ...

  9. hadoop集群搭建——单节点(伪分布式)

    1. 准备工作: 前提:需要电脑安装VM,且VM上安装一个Linux系统 注意:本人是在学习完尚学堂视频后,结合自己的理解,在这里做的总结.学习的视频是:大数据. 为了区分是在哪一台机器做的操作,eg ...

  10. 虚拟机zookeeper和hbase集群搭建

    集群zookeeper dataDir=/usr/local/zookeeper/dataDir dataLogDir=/usr/local/zookeeper/dataLogDir # the po ...

随机推荐

  1. Kafka 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?

    如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? >幂等性,通俗点说,就一个数据,或者一个请求,给你重复来多次,你得确保对应的数据是不会改变的,不能出错. kafka 的机制:  K ...

  2. 当cmd运行python无法显示中文报错 SyntaxError: Non-UTF-8 code starting with 时

    报错图片: 解决方法: 在python的脚本开头加上 再运行后

  3. T-star高校挑战赛部分wp

    web-1签到 checkin还是很基础的 网站上传存在js检测,禁用js即可上传 写PHP一句话木马上传,http://588f25a5.yunyansec.com/upload/test.php连 ...

  4. Day02_Java_作业

    A:选择题 1. 若有定义:int a,b; a=a+10;则执行上述语句后,a的值是(d). A. 10 B. 11 C. 0 D. 编译产生错误 2. 以下选项中变量均已正确定义,合法的赋值语句是 ...

  5. Maven配置UTF8,JDK版本

    <!-- 局部jdk配置,pom.xml中 --> <build> <plugins> <plugin> <groupId>org.apac ...

  6. PTA 21级数据结构与算法实验7—查找表

    目录 7-1 电话聊天狂人 7-2 两个有序序列的中位数 7-3 词频统计 7-4 集合相似度 7-5 悄悄关注 7-6 单身狗 7-7 词典 7-8 这是二叉搜索树吗? 7-9 二叉搜索树 7-1 ...

  7. react中常见hook的使用方式与区别

    1.什么是hook?react hook是react 16.8推出的方法,能够让函数式组件像类式组件一样拥有state.ref.生命周期等属性. 2.为什么要出现hook?函数式组件是全局当中一个普通 ...

  8. 用Python语言进行多元时间序列ARIMAX模型分析

    1.ARIMAX模型定义 ARIMAX模型是指带回归项的ARIMA模型,又称扩展的ARIMA模型.回归项的引入有利于提高模型的预测效果.引入的回归项一般是与预测对象(即被解释变量)相关程度较高的变量. ...

  9. HTTP.SYS远程代码执行漏洞验证及其复现(CVE-2015-1635蓝屏洞)

    HTTP.SYS远程代码执行漏洞验证及其复现(CVE-2015-1635蓝屏洞) @ 目录 HTTP.SYS远程代码执行漏洞验证及其复现(CVE-2015-1635蓝屏洞) 漏洞概述 http.sys ...

  10. U盘目录穿越获取车机SHELL - 分析与复现

    github上破解日系车机的文章 - https://github.com/ea/bosch_headunit_root 其中有利用 U 盘获取车机 shell 的操作 主要根据下面这篇文章进行环境搭 ...