两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

这篇具有很好参考价值的文章主要介绍了两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装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文件保存到一个位置

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

  2. 开始在VMware安装Ubuntu

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

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

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

  4. 指定磁盘容量

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

  5. 设置镜像文件

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

  6. 开始安装Ubuntu

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

配置虚拟机网络

配置桥接模式

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

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

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

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

设置虚拟机静态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命令查看网络信息,如下图所示:

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

  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

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

  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种免密登录,如下图所示

两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

  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

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

    (2)Yarn

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)

    (3)WordCount

    两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)文章来源地址https://www.toymoban.com/news/detail-710975.html

报错及解决

  1. https://blog.csdn.net/sinat_23225111/article/details/127497281
  2. shell脚本执行jps时:-bash: jps: command not found
    我构建了hadoop集群。我们一定会写一个shell脚本去每一个节点上去jps,查看每个节点的进程情况。
    原先以为shell很简单:
    !/bin/bash
    查看每个节点运行情况
    for((host=101;host<108;host++));do
    echo -----------hadoop\(host------------- ssh hadoop\)host "jps" done
    这里默认服务器节点的名字是hadoop101-hadoop107
    默认已经配置了ssh_key的公钥和私钥
    看是运行这段程序的时候会弹出一个错误:
    -bash: jps: command not found
    错误原因:
    在shell脚本写的ssh到其他节点的时候默认是不加载配置文件的。linux并不能去找到java中jps的命令。
    解决方案一:在ssh到其他节点的时候source 一下配置文件。
    具体操作为:ssh hadoop\(host “source /etc/profile;jps” 解决方案二:在ssh到其他节点的时候输入jps命令下的绝对路径。 在笔者的linux的jdk的绝对路径为:/opt/module/jdk1.8.0_144/bin这个目录下就有jps的命令。 具体操作为:ssh hadoop\)host “/opt/module/jdk1.8.0_144/bin/jps” 解决方案三:在当前用户的家目录中输入命令ll -a会显示隐藏文件,修改配置文件.bashrc。
    .bashrc 是当你登入shell时执行
    在.bashrc里面加入source /etc/profile就行了。
    但是这种方法不推荐,容易出错

到了这里,关于两台实体机器4个虚拟机节点的Hadoop集群搭建(Ubuntu版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三台虚拟机搭建Hadoop集群(云计算实验新)

    本文将介绍利用三台虚拟机实现互相免密访问并搭建Hadoop集群。 1. 下载操作系统镜像源 本文利用Centos7.9版本,下载地址,需要其他版本可在阿里镜像源下载。 2. 下载虚拟机软件VMware VMware官网链接,VMware下载指南 3. 配置三台Centos虚拟机 VMware中创建虚拟机教程,创建完成一个

    2024年02月10日
    浏览(39)
  • hadoop 3.1.3集群搭建 ubuntu20

    hyper-v安装ubuntu-20-server hyper-v建立快照 hyper-v快速创建虚拟机-导入导出虚拟机 采用hyper-v方式安装ubuntu-20虚拟机和koolshare hostname ip h01 192.168.66.20 h02 192.168.66.21 h03 192.168.66.22 所有机器都需要按需设置 00-installer-config.yaml addresses中192.168.66.10是机器的IP地址 gateway4是koolshare的地址 每台

    2024年02月14日
    浏览(25)
  • ubuntu服务器版本搭建Hadoop集群

    实验环境: 虚拟化软件:VMware® Workstation 16 Pro 镜像:ubuntu-22.04.2-live-server-amd64.iso Hadoop版本:hadoop-3.3.4.tar.gz ubuntu镜像链接 hadoop文件链接 配置虚拟机 (1)新建虚拟机,选择实验镜像【ubuntu-22.04.2-live-server-amd64.iso】 (2)调整硬件配置,配置如图 安装操作系统 (1)选择虚拟

    2024年02月08日
    浏览(41)
  • 大数据开发·关于虚拟机Hadoop完全分布式集群搭建教程

    官网链接 进入后网站如图,各位按需下载 官网链接 进入页面点击下载 再根据我们需要下载的软件进入下载页面 点击右侧红框内的免费授权页面获取免费许可 进入后如图,两者我们都需要所以都勾选,填写的邮箱用于接收下载链接,下载后进行安装即可 这里先和大家强调一

    2024年02月07日
    浏览(40)
  • 三台CentOS7.6虚拟机搭建Hadoop完全分布式集群(一)

    这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例,已成功搭建完全分布式集群,并测试跑实例。 1.1安装完虚拟机发现没有sudo命令和hadoop用户执行命令失败 我在安装CentOS 7.6虚拟机后,我发现不能执行sudo命令,同时hadoop用户执行命令失败。

    2024年02月03日
    浏览(45)
  • 多个节点搭建以太坊私有链(两台电脑测试)

     我用的是一台学校发的电脑(ip:),一台自己的笔记本 学校电脑:   笔记本电脑 台式电脑: ”enode://902d5ae2ac8f3707becc83050a8b4cd5e32bd82ff8c911896cbdfb875b0b83dcdb898caad6b1c7c842b079e2fdea1f0fa74cb9abda0fab5ab634a85ae7090191@127.0.0.1:1111?discport=0 “ 笔记本电脑 \\\"enode://0d1d38a234a12c4d2726c2852ecc3735acfb5da

    2024年02月16日
    浏览(30)
  • Ubuntu搭建Hadoop3.X分布式和高可用集群,一步步深入

    目录 1. 介绍 2. 基础环境 2.1 关闭防火墙 2.2 修改主机名和主机映射 2.3 免密登录 2.4 安装jdk 3. 搭建hadoop3.x完全分布式 3.1 下载包地址 3.2 上传并解压 3.3 创建目录 3.4 修改配置文件  3.4.1 core.site.xml  3.4.2 hdfs-site.xml  3.4.3 yarn-site.xml 3.4.4 mapred-site.xml 3.4.5 workers 3.4.6 hadoop-env.sh

    2024年02月04日
    浏览(55)
  • 国内环境下ubuntu22.04+kubeadm搭建v1.27.2多节点k8s集群

    按说,使用kubeadm搭建k8s集群最权威的方法、步骤,应该是直接参考kubeadm官网,里边描述了从OS基础配置到containerd,再到kubeadm安装、initjoin的全过程。 只是,kubernetes的官网对整个过程的描述并不是一种step by step的方式,而是把相关的步骤分散于各个富含上下文知识的页面中,

    2024年02月14日
    浏览(49)
  • 大数据集群搭建全部过程(Vmware虚拟机、hadoop、zookeeper、hive、flume、hbase、spark、yarn)

    1.网关配置(参照文档) 注意事项:第一台虚拟机改了,改为centos 101 ,地址为192.168.181.130 网关依然是192.168.181.2,但是一定要注意,它在D盘的文件名称是Hadoop 101,后面重新搭建的会命名文件夹为hadoop 101,hadoop 102和hadoop 103,然后发到一个总的文件夹hadoop_03里面去 VMnet8的IP地址一定

    2024年02月02日
    浏览(85)
  • 【Hadoop】创建Hadoop集群(3个节点)—— 安装部署一个3个节点构成的hbase集群

    前言 此实验搭建3个虚拟节点,一个mater,一个slave1,一个slave2 集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但在物理上常在一起。 HDFS集群负责海量数据的存储,集群中的角色主要有: NameNode、DataNode、SecondaryNode YARN集群负责海量数据运算

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包