首页 > 系统相关 >Ubuntu上Hadoop集群安装和搭建(三台虚拟机,保姆级教程)

Ubuntu上Hadoop集群安装和搭建(三台虚拟机,保姆级教程)

时间:2024-10-11 16:17:26浏览次数:3  
标签:虚拟机 sudo hadoop Hadoop export Ubuntu 节点

目录

1.安装三台虚拟机

2.配置静态网络(三台虚拟机都要操作)

2.1 查看网络是否连通

 2.2 安装net-tools

2.3.查看物理地址

2.4 查看ip地址的起始和结束地址

2.5 修改网络配置文件

 2.6 修改三台主机名

3. 配置hosts文件和ssh免密登录 

3.1 修改hosts配置文件(所有虚拟机都需要)

​3.2 开启ssh服务

​3.3 开机自启动

3.4 查看是否配置成功

4. Hadoop集群配置

4.1 在所有虚拟机根目录下新建文件夹export,export文件夹中新建data、servers和software文件

4.2 准备安装包 

4.3 先修改三台虚拟机的export权限

4.4 安装jdk(所有虚拟机都要有的操作)

4.4 Hadoop安装(所有虚拟机都要操作) 

​4.5 Hadoop集群配置

5.  Hadoop集群测试

5.1 启动集群:在主节点启动所有HDFS服务进程

5.2  在主节点启动所有YARN服务进程

5.3 使用jps命令查看进程 

5.4 通过UI界面查看Hadoop运行状态

5.5 查看Yarn集群状态 

6 hadoop集群时间同步

6.1. 确保日志一致性

6.2. 分布式文件系统的一致性

6.3. YARN 作业调度和执行

6.4 配置hadoop集群中主机hadoop01、hadoop02、hadoop03时间同步

7.  Ubuntu搭建Hadoop集群搭建常见问题

7.1 配置 HADOOP_NICENESS 变量

7.2 修改文件夹hadoop-3.3.6的权限


1.安装三台虚拟机

 注意:这里不要使用克隆去克隆虚拟机,因为ub克隆后网络会出现问题,所建议大家直接安装三台虚拟机

2.配置静态网络(三台虚拟机都要操作)

2.1 查看网络是否连通

ping baidu.com

 2.2 安装net-tools

sudo su
apt upgrade
apt install net-tools

2.3.查看物理地址

ifconfig

2.4 查看ip地址的起始和结束地址

ip addr show

从上图中我们可以看到,网络接口 enp0s5 的详细信息如下:

  • 接口名称enp0s5
  • IPv4 地址10.211.55.9/24
  • 广播地址10.211.55.255
  • 子网掩码/24(等价于 255.255.255.0

/24 表示前 24 位用于表示网络号,剩下 8 位

用于主机号。这意味着该子网的 IP 地址范围是 10.211.55.010.211.55.255

2.5 修改网络配置文件

  •  ip地址设置参照2.4小节中IP地址范围自行选择(在起始地址和结束地址的范围内)
  • 子网掩码设置为默认值:255.255.255.0
  • 采用route -n命令查看主机的网关,把网关IP改为10.211.55.1:

  • DNS使用谷歌提供的免费dns:8.8.8.8
  • 然后重启网卡。激活配置 测试ip是否配置完成:
ip a

  • 测试DNS是否配置成功,测试能否访问百度:
ping 8.8.8.8
ping baidu.com

 2.6 修改三台主机名

hostnamectl set-hostname hadoop01
reboot
hostnamectl set-hostname hadoop0
reboot
hostnamectl set-hostname hadoop03
reboot

3. 配置hosts文件和ssh免密登录 

3.1 修改hosts配置文件(所有虚拟机都需要)

apt install vim
vim /etc/hosts

3.2 开启ssh服务

sudo apt-get update
sudo apt-get install openssh-server
  • 当安装完后 
sudo service ssh start
  •  检查是否运行
sudo service ssh status
  • 运行成功会显示 

 3.3 开机自启动

sudo systemctl enable ssh
  • 生成密钥文件 
ssh-keygen -t rsa

  •   将本机公钥文件复制到其他虚拟机上
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03

一定要切回初始用户,因为Ubuntu的root用户密码是随机的确定不了 

3.4 查看是否配置成功

ssh分别连接hadoop02、hadoop03:

 4. Hadoop集群配置

4.1 在所有虚拟机根目录下新建文件夹export,export文件夹中新建data、servers和software文件

cd /
sudo mkdir -p /export/{data,servers,software}

4.2 准备安装包 

hadoop-3.3.6.tar.gz:Apache Hadoop

jdk-8u391-linux-x64.tar.gz:Java Archive Downloads - Java SE 8u211 and later

4.3 先修改三台虚拟机的export权限

sudo chmod 777 /export
sudo chmod 777 /export/software

4.4 安装jdk(所有虚拟机都要有的操作)

  • 解压jdk
sudo su
cd /export/software
tar -zxvf jdk-8u391-linux-x64.tar.gz -C /export/servers/
  • 重命名jdk目录 
cd /export/servers
mv jdk1.8.0_391 jdk
vim /etc/profile

#在配置文件末尾追加
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 使配置文件生效 
source /etc/profile
  • 查看是否生效 
java -version

4.4 Hadoop安装(所有虚拟机都要操作) 

  • 解压hadoop
cd /export/software
tar -zxvf hadoop-3.3.6.tar.gz -C /export/servers/
  • 打开配置文件 
vim /etc/profile
  •  配置hadoop环境变量
#在文件末尾追加
export HADOOP_HOME=/export/servers/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  • 使配置文件生效 
source /etc/profile
  •  查看是否配置成功 
hadoop version

 4.5 Hadoop集群配置

  • 进入主节点设置目录
cd /export/servers/hadoop-3.3.6/etc/hadoop/
  • 修改hadoop-env.sh文件 
vim hadoop-env.sh
# 添加
export JAVA_HOME=/export/servers/jdk
  •  修改core-site.xml
vim core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop01:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/export/servers/hadoop-3.3.6/tmp</value>
    </property>
</configuration>
  • 修改hdfs-site.xml
vim hdfs-site.xml

<configuration>
     <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///export/servers/hadoop-3.3.6/tmp/dfs/name</value>
    </property>

    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop01:50070</value>
    </property>
    <property>
        <name>dfs.namenode.rpc-address</name>
       <value>hadoop01:9000</value>
    </property>

    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop02:50090</value>
    </property>
</configuration>
  • 修改mapred-site.xml 
vim mapred-site.xml

<configuration>
 <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
  • 修改yarn-site.xml 
vim yarn-site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
  • 修改slaves文件 
#将文件中的localhost删除,添加主节点与子节点的hostname
vim workers

  •  将主节点中配置好的文件和hadoop目录copy给子节点
scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
scp -r /export/ hadoop02:/
scp -r /export/ hadoop03:/
  •  使子节点中的配置文件生效 
# 返回子节点hadoop02,hadoop03
source /etc/profile
  • 在主节点格式化文件系统 
hdfs namenode -format

5.  Hadoop集群测试

5.1 启动集群:在主节点启动所有HDFS服务进程

start-dfs.sh

5.2  在主节点启动所有YARN服务进程

start-yarn.sh

5.3 使用jps命令查看进程 

主节点hadoop01:

hadoop02:

hadoop03:

  • NameNode(名称节点):有时候也叫MasterNode(主节点),它不保存实际数据,只保存元数据(数据块的数目、大小、存储位置)。它也维护着文件系统的命名空间和路径信息。名称节点应当位于可靠的服务器上。
  • SecondaryNameNode(第二名称节点):用于在名称节点失效时进行替换。
  • DataNode(数据节点):有时候也叫SlaveNode(从节点)。它保存实际的数据,根据名称节点的指令,执行数据块的创建、删除、复制。数据节点的数量可以很庞大,但对服务器的要求不高。

5.4 通过UI界面查看Hadoop运行状态

在Windows系统下,访问http://hadoop01:50070,查看HDFS集群状态。如果查看不了关闭虚拟机防火墙:

sudo ufw disable

 

5.5 查看Yarn集群状态 

 在Windows系统下,访问http://hadoop01:8088

6 hadoop集群时间同步

6.1. 确保日志一致性

Hadoop 集群中的各个节点需要有一致的时间戳,以确保各节点产生的日志能够按照时间顺序正确地排列和分析。如果节点之间的时间不同步,日志的时间戳可能会出现错乱,导致以下问题:

  • 难以定位故障:分析日志时,时间戳错乱可能导致难以关联不同节点之间发生的事件。
  • 数据处理流程混乱:调度任务、数据写入和读取等操作依赖时间顺序,时间不同步可能会导致调度错误或者数据异常。

6.2. 分布式文件系统的一致性

Hadoop 使用的 HDFS(Hadoop Distributed File System)是一个分布式文件系统,文件的创建、修改和访问时间(时间戳)在分布式环境中都依赖于系统时间来维护一致性。如果节点之间时间不同步,可能导致以下问题:

  • 文件冲突:文件在多个节点之间同步时,时间戳不同可能导致文件被错误覆盖或丢失。
  • 数据一致性错误:HDFS 依赖文件的创建和修改时间来进行数据管理和同步,时间不同步会破坏 HDFS 的一致性。

6.3. YARN 作业调度和执行

Hadoop 中的 YARN(Yet Another Resource Negotiator)负责作业的调度和资源分配,调度和执行流程中对各个节点的时钟有以下依赖:

  • 任务启动和结束时间的记录:调度器需要记录每个任务的开始和结束时间,用来计算任务的执行时间、判断是否需要重试、是否超时等。
  • 任务重启机制:如果节点之间的时间不一致,调度器可能会认为某些任务没有按时完成而触发重启机制,从而导致任务的无效重启或失败。

6.4 配置hadoop集群中主机hadoop01、hadoop02、hadoop03时间同步

  • 1. 在所有虚拟机上安装 chrony,在三台虚拟机上分别执行以下命令:

sudo apt update
sudo apt install chrony -y
  • 2. 配置时间服务器(hadoop01),在时间服务器(hadoop01)上编辑 chrony 配置文件:
sudo vim /etc/chrony/chrony.conf

在配置文件中进行以下修改:

  • 注释掉默认的时间服务器(poolserver 行)。
  • 添加本机作为服务器的配置。
  • 允许客户端(hadoop02和 hadoop03)访问此服务器。

配置文件如下:

10.211.55.0使本机作为时间源,local stratum 10 设置本机的层次结构,allow 10.211.55.0/24 允许局域网内的所有设备访问时间服务器。

  •  启动并启用 chrony 服务:
sudo systemctl restart chrony
sudo systemctl enable chrony
  • 检查 chrony 服务状态,确保其正常运行: 
sudo systemctl status chrony

  • 检查时间服务器状态:

  • 3. 配置客户端(hadoop02和 hadoop03)

编辑 chrony 配置文件:

sudo vim /etc/chrony/chrony.conf

在配置文件中进行以下修改:

  • 注释掉默认的时间服务器。
  • 设置时间服务器为 hadoop01 的 IP 地址。

配置文件示例如下:

  • 保存配置并退出。启动并启用 chrony 服务
sudo systemctl restart chrony
sudo systemctl enable chrony
  • 检查 chrony 服务状态: 
sudo systemctl status chrony

  •  检查客户端是否成功连接到时间服务器:
chronyc sources

  • 4. 验证集群时间同步 

在所有虚拟机上分别运行以下命令,查看时间是否同步:

timedatectl

或者使用 chronyc 查看同步状态: 

chronyc tracking

  •  5. 如果你希望 hadoop02 和 hadoop03也可以作为时间源(冗余配置)

可以将 hadoop02 和 hadoop03配置成时间服务器(类似于 hadoop01 的配置),并在每台机器上设置彼此为时间源。这样就形成了一个完整的时间同步集群结构,任何一台服务器故障时,其余机器仍能保持时间同步。

配置文件可以修改如下(三台虚拟机都需要):

server10.211.55.8 iburst
server 10.211.55.9 iburst
server 10.211.55.10 iburst

这样设置后,即使某台时间服务器不可用,其他客户端仍然可以与剩余的服务器同步时间。 

7.  Ubuntu搭建Hadoop集群搭建常见问题

当我们启动hdfs服务时,即运行如下命令:

start-dfs.sh

报错:hadoop01: ERROR: Cannot set priority of datanode process 540655

找了很多篇帖子,很多都没有把问题说清楚,下面我提供一种解决方案:

首先这个问题可能是由如下几种情况引起的:

7.1 配置 HADOOP_NICENESS 变量

HADOOP_NICENESS 配置为默认值 0,这将禁止 Hadoop 在启动时尝试更改进程优先级。可以在 hadoop-env.sh 中进行配置。

  • 打开 hadoop-env.sh 配置文件(通常位于 $HADOOP_HOME/etc/hadoop/hadoop-env.sh

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

export HADOOP_NICENESS=0
  • 保存并退出文件,然后重新启动 Hadoop 集群:
stop-dfs.sh
stop-yarn.sh
start-dfs.sh
start-yarn.sh

这会确保 Hadoop 在启动各个服务时不会更改进程的优先级,从而避免该错误。 

7.2 修改文件夹hadoop-3.3.6的权限

  • 首先停掉所有服务:
stop-all.sh
  • 在主节点格式化文件系统 
hdfs namenode -format
  •  修改文件夹hadoop-3.3.6的权限
sudo chmod -R 777 /home/user/hadoop-3.3.6/
  • 最后重启所有服务:
start-all.sh

经过上面一系列操作,我们就可以查看HDFS集群状态和Yarn集群状态 

 

参考的帖子:

https://zhuanlan.zhihu.com/p/669223842?utm_medium=social&utm_psn=1820168962375282688&utm_source=wechat_session [Hadoop] Namenode Error (localhost: ERROR: Cannot set priority of datanode process ) — B's

标签:虚拟机,sudo,hadoop,Hadoop,export,Ubuntu,节点
From: https://blog.csdn.net/wangjian530/article/details/142781899

相关文章

  • VMware虚拟机17.6安装Ubuntu20.04教程(宝宝级攻略)
    前言我了解到虚拟机的17.6版本不能安装太高版本的Ubuntu,可能会出现不兼容的情况,所以我选择了20.04版本的Ubuntu(也是我目前正在用的一个版本)。1.下载相关资源1.本文章默认好你已经下载好了虚拟机VMware,若未下载好请去参考这篇文章:VMware虚拟机17.6版本下载与安装(宝宝级攻略)......
  • IOS(ipad)上安装UTM虚拟机并安装ubuntu22.04
    如果是升级了IOS17以上的朋友可以不用想了,没得玩安装步骤准备环境安装AltStore安装巨魔商店安装Dopamine安装UTM虚拟机安装ubuntu服务端准备环境1、准备环境IOS14.0beta2-16.6.1,16.7RC(20H18),17.0准备AltStore、巨魔商店TrollStore、Dopamine、......
  • 关于不建议使用北京新网数码信息技术公司的服务器和虚拟机的说明(重要说明)
    尊敬的用户们,我们注意到了关于北京新网数码信息技术有限公司服务器和虚拟机服务的一些用户反馈,特别是关于虚拟机不支持根目录设置、免费查杀以及WAF防护效果的问题。此外,还有用户提到云主机的保护措施不到位,并且实际提供的防护服务与官网描述不匹配。这些问题可能会影响到用户......
  • [自用] 虚拟机windows11-x64,安装MySQL 8.0.32,记录
    前面忘截图了提示要求电脑里安装VS2015/2017/2019,但虚拟机里只有VS2013。网上说可以一起装,但是我虚拟机配置不太行,再说吧,不行用我自己笔记本,虽然也有点菜,但比虚拟机强。虚拟机配置安装之后的配置密码三个旧的特殊符号这少一步,写的是点击execute来应用配置apply......
  • Ubuntu系统 用docker安装jenkins
    1.1.1服务器准备如果刚买的服务器是ubuntu一开始默认用户是ubuntu需要在Ubuntu云服务器上使用root用户登录实例1.设置root密码sudopasswdroot输入两次密码返回一下内容表示密码设置成功passwd:passwordupdatedsuccessfully执行以下命令,打开sshd_config配置文件......
  • 魔力宝贝6.0+单机版安装教程+无需虚拟机
    今天给大家带来一款单机游戏的架设:魔力宝贝6.0。官方任务无任何bug优化的很完美,添加了半山系列;系列系列;砍狗系列;暗流系列;炼金系列等。另外:本人承接各种游戏架设(单机+联网)本人为了学习和研究软件内含的设计思想和原理,带了架设教程仅供娱乐。教程是本人亲自搭建成功的,绝对是完整......
  • 虚拟机安装openEuler、Linux系统常见问题--(1) 网络不通
    本文以openEuler22.03LTSSP4系统为例:openEuler系统和Windows桌面切换1、使用Ctrl+G切换2、使用Ctrl+alt切换NAT桥接-网络不通问题1、查看Windows网络配置以NAT桥接网络,VMware使用网卡“VMwareNetworkAdapterVMnet8”与虚拟机通信,可通过以下方法查看VMn......
  • linux-vm-tools/ubuntu/24.04 /install.sh
    一、#!/bin/bash##ThisscriptisforUbuntu22.04JammyJellyfishtodownloadandinstallXRDP+XORGXRDPvia#source.##Majorthanksto:http://c-nergy.be/blog/?p=11336forthetips.#################################################################......
  • hadoop伪分布式模式
    1.下载,上传,解压,配置环境变量2.修改配置文件2.1HDFScore-site.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>2.2NameNode......
  • 【Ubuntu】在Ubuntu上安装IDEA
    【Ubuntu】在Ubuntu上安装IDEA零、前言最近换了Ubuntu系统,但是还得是要写代码,这样就不可避免地用到IDEA,接下来介绍一下如何在Ubuntu上安装IDEA。壹、下载这一步应该很容易的,直接打开IDEA的下载页面,点击下载即可开始下载:https://www.jetbrains.com.cn/idea/download/?section=l......