hadoop全分布式搭建(三台虚拟机,一个主节点,两个从节点)

news2024/12/23 22:22:03

根据尚硅谷哔哩哔哩视频搭建:bilibili.com/video/BV1Qp4y1n7EN/

安装虚拟机教程可参考:VMware虚拟机 安装 Centos7(linux)(新手超详细教程)_vmware安装centos7教程-CSDN博客

集群配置如下: 

 

一、先配置一台虚拟机hadoop101

1‘安装完修改ip 

以下内容都在root用户下进行

vim /etc/sysconfig/network-scripts/ifcfg-ens33

注意: 网络配置不使用虚拟机设置修改就要与安装时一致,ip可以修改

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="922b4573-63d9-44ae-ac4a-411515a8f4e4"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.100.10

GATEWAY=与配置的时网卡中的一致
DNS1=与配置的时网卡中的一致

注意:本教程安装,将hadoop的相关配置全部配置完毕后再克隆虚拟机,没有使用视频中的分发脚本。

2.修改主机名

vim /etc/hostname

内容如下:

hadoop101

3.测试网络是否通畅

​ping www.baidu.com

4.创建目录

cd /opt

mkdir software

mkdir module

5.卸载系统自带的jdk

查找是否有jdk:

rpm -qa | grep -i java

 删除jdk:

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

检查是否删除干净:

rpm -qa | grep -i java

6.安装jdk

将jdk的包拖入虚拟机

出现的信息即为压缩包所在地址,如果没有出现可能在桌面/home目录下,或者上传不成功。上传不成功再次上传即可。

解压到module目录下和视频中一样:

tar -zxvf /tmp/VMwareDnD/w7eciW/jdk-8u281-linux-x64.tar.gz -C /opt/module

删除压缩包:

rm -rf /tmp/VMwareDnD/w7eciW/jdk-8u281-linux-x64.tar.gz

进入/opt/module/jdk1.8.0_281

cd /opt/module/jdk1.8.0_281/
ll 

进入/etc/profile.d/,配置环境变量

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

内容如下:

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

加载环境变量

source /etc/profile

查看java信息

java

 7.安装Hadoop

将hadoop的包拖入虚拟机

解压到module目录下: 

tar -zxvf /tmp/VMwareDnD/w7eciW/hadoop-3.2.4.tar.gz /opt/module/

进入/opt/module/hadoop-3.2.4/目录,配置环境变量

cd /opt/module/hadoop-3.2.4/

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

加入以下内容:

#HADOOP_HOME

export HADOOP_HOME=/opt/module/hadoop-3.2.4

export PATH=$PATH:$HADOOP_HOME/bin

export PATH=$PATH:$HADOOP_HOME/sbin

加载环境变量

source /etc/profile

查看hadoop信息

hadoop

 8.提前设置hadoop之间ip映射

vim /etc/hosts
192.168.100.10 hadoop101
192.168.100.11 hadoop102
192.168.100.12 hadoop103

9.Hadoop配置文件修改

 首先进入$HADOOP_HOME/etc/hadoop

cd $HADOOP_HOME/etc/hadoop

根据集群规划,配置文件:

core-site.xml:

vim core-site.xml

加入以下内容:

<configuration>

    <!-- 指定 NameNode 的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop101:8020</value>
    </property>

    <!-- 指定 Hadoop 数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.2.4/data</value>
    </property>
    
    <!-- 配置 HDFS 网页登录使用的静态用户为 root-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
</configuration>

注意:不同的hadoop版本目录不同需要修改

 hdfs-site.xml:

vim hdfs-site.xml

加入内容如下:

<configuration>

	<!-- nn(NameNode) web 端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop101:9870</value>
    </property>
    
	<!-- 2nn(SecondaryNameNode) web 端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop103:9868</value>
    </property>
    
</configuration>

yarn-site.xml:

vim 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>hadoop102</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>
 
</configuration>

mapred-site.xml:

vim mapred-site.xml

加入以下内容:

<configuration>

        <!-- 指定 MapReduce 程序运行在 Yarn 上 -->

    <property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

</property>

</configuration>

10.群起集群

配置workers

vim /opt/module/hadoop-3.2.4/etc/hadoop/workers

内容如下:

hadoop101
hadoop102
Hadoop103

注:该文件中添加内容结尾不允许有空格,文件中不允许有空行,删除local等信息

二、克隆两台虚拟机 

 1.分别修改三台虚拟机的ip和主机名

修改ip:只用改IPADDR与下面一致

vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改主机名:

vim /etc/hostname

重启虚拟机它才会更新

reboot

重启后,输入如下内容查看ens33下的inet是否与修改的ip一致

ifconfig

查看网络是否连接

ping www.baidu.com

查看hostname

hostname

2.设置免密登录

在hadoop101中:

获取公钥

ssh-keygen -t rsa

按三次空格

分发公钥

ssh-copy-id hadoop103

ssh-copy-id hadoop104

ssh-copy-id hadoop102

第一次访问要输入yes,输入每个虚拟机的root密码

在hadoop102和hadoop103中重复以上步骤

 三、启动集群

在hadoop101(主节点)上格式化

cd /opt/module/hadoop-3.2.4

hdfs namenode -format

查看目录下是否有data和logs文件夹

ll

配置hadoop环境变量,定义hadoop组件以root用户运行

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

在第一行加入一下内容:

export HDFS_NAMENODE_USER=root

export HDFS_DATANODE_USER=root

export HDFS_SECONDARYNAMENODE_USER=root

在hadoop103中

配置hadoop环境变量,定义hadoop组件以root用户运行

cd $HADOOP_HOME/etc/hadoop

vim hadoop-env.sh

在第一行加入一下内容:

export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

启动集群

在hadoop101上执行:

cd $HADOOP_HOME/

sbin/start-dfs.sh

在hadoop102上执行:

cd $HADOOP_HOME/

sbin/start-yarn.sh

关闭防火墙

在hadoop101,102,103上执行:

systemctl stop firewalld.service

在windowns系统的浏览器中输入hadoop101的IP:9870,可以看到文件管理

在windowns系统的浏览器中输入hadoop102的IP:8088,可以看到资源管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2211595.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【详细版教程】vue-cli 卸载(卸载不了)vue2.x.x版本卸载不了,无法更新版本的解决方案

今天新建vue的项目时&#xff0c;遇到以下问题 vue create is a Vue CLI 3 only command and you are using Vue CLI 2.9.6. You may want to run the following to upgrade to Vue CLI 3: 官网给出的解决方案&#xff1a; npm uninstall -g vue-cli npm install -g vue/…

springcloud之服务提供与负载均衡调用 Eureka

前言 提供一个基于Eurka的服务注册中心&#xff0c;两个服务提供者之后分别使用Ribbon、Fegin方式进行调用&#xff0c;测试负载均衡。 服务提供者Service Provider 本质上是一个 Eureka Client&#xff0c;它在服务启动时&#xff0c;会调用服务注册方法&#xff0c;向 Eurek…

Vue:若依部门数据权限设置

目录 一、修改菜单树二、后台修改三、新建用户配置数据权限 一、修改菜单树 修改菜单树&#xff0c;增加权限字符system:user:list&#xff0c;权限字符根据自己后台数查询的权限判断 二、后台修改 在Mapper层增加DataScope(deptAlias "sys_dept")注解&#xff0c…

Unity中搜索不到XR Interaction Toolkit包解决方法

问题&#xff1a; 针对Unity版本2020.3在中PackageManager可能搜素不到XR Interaction Toolkit包 在Package Manager中未显示XR Interaction Toolkit包 解决方法&#xff1a; Package manager左上角&#xff0c;点加号&#xff0c;选择 Add package from git URL..&#xff0c;…

动力电池SOC估算方法

1. SOC介绍 电池的荷电状态SOC反映电池的剩余容量状况&#xff0c;即在一定的放电倍率下&#xff0c;当前电池的剩余容量与总容量的比值。 为了充分发挥电池性能和提高安全性&#xff0c;需要准确估算电池SOC。动力电池在使用过程中表现的高度非线性提高了SOC估算的难度&#…

【linux】信号(下)

8. 阻塞信号 (一)信号其他相关常见概念 实际执行信号的处理动作称为信号递达(Delivery)信号从产生到递达之间的状态,称为信号未决(Pending)进程可以选择阻塞 (Block )某个信号被阻塞的信号产生时将保持在未决状态,直到进程解除对此信号的阻塞,才执行递达的动作(即被阻塞的信…

class 034 链表高频题目和必备技巧

这篇文章是看了“左程云”老师在b站上的讲解之后写的, 自己感觉已经能理解了, 所以就将整个过程写下来了。 这个是“左程云”老师个人空间的b站的链接, 数据结构与算法讲的很好很好, 希望大家可以多多支持左程云老师, 真心推荐. 左程云的个人空间-左程云个人主页-哔哩哔哩视频…

Redis 典型应用之缓存

目录 1. 缓存的基本概念 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 3.2.1 内存淘汰策略 1. FIFO (First In First Out) 先进先出 2. LRU (Least Recently Used) 淘汰最久未使使用的 3. LFU (Least Frequently Used) 淘汰访问次数最少的 4…

用C++编写信息管理系统(歌单信息管理)

C语言是面向过程的编程语言&#xff0c;而C是面向对象的编程语言&#xff0c;在书写代码时风格有所不同&#xff08;也存在很多共性&#xff09;。 程序说明 本次系统程序使用的是C语言进行编写&#xff0c;主要考虑怎么实现面向对象的问题。 因为本次程序属于小型系统程序&…

【C++学习】核心编程之类和对象(上)黑马学习笔记—超详细

目录 &#xff08;一&#xff09;封装 1.1 封装的意义&#xff1a; 意义一&#xff1a;在设计类的时候&#xff0c;属性和行为写在一起&#xff0c;表现事物 意义二&#xff1a;类在设计时&#xff0c;可以把属性和行为放在不同的权限下&#xff0c;加以控制 1.2 struct和…

【vue】组件及组件化+组件⽣命周期

代码获取 04-组件及组件化组件⽣命周期 ⼀、组件及组件化 1. 为什么需要组件&#xff1f; 1.1 思考 以可折叠⾯板为例, 现要展⽰3个, 如何操作? 可折叠⾯板案例的代码 &#xff1a; <script setup> import { ref } from vue const visible ref(false) </scri…

Day14

std::string的底层实现 三种方式&#xff1a; 深拷贝 写时复制 短字符串优化 深拷贝 无论什么情况&#xff0c;都是采用拷贝字符串内容的方式解决。不需要改变字符串内容时&#xff0c;对字符串进行频繁复制。 用一个string对象初始化另一个string对象时&#xff0c;源对…

MySQL SELECT 查询(三):查询常用函数大全

MySQL SELECT 查询&#xff08;三&#xff09;&#xff1a;查询常用函数大全 1. 单行函数 单行函数是 SQL 中一类重要的函数&#xff0c;它们可以对单行数据进行处理&#xff0c;并返回单个结果。单行函数可以嵌套使用&#xff0c;并提供灵活的数据处理能力。 1.1 定义 只对单…

微知-Mellanox网卡如何导出firmware中的config文件以及文件中有些什么?(ini配置文件,8个区)

背景 Mellanox网卡早期版本以及Engineer simple的DPU支持导出配置文件&#xff0c;该配置文件就是用来告诉firmware的行为。但不是mlxconfig真正设置的文件(mlxconfig -d xxx -e -q应该就是把这个文件读取出来&#xff0c;并且有3个文件&#xff0c;包括默认的&#xff0c;当前…

攻防世界2

forgot 发现是32位文件 fgets(s, 32, stdin)限制读入32位字符&#xff0c;无法利用 __isoc99_scanf("%s", v2) 典型的栈溢出 发现cat flag 覆盖v2-v3&#xff0c;覆盖为cat flag的函数地址 exp&#xff1a; from pwn import * context(oslinux,archamd64,log_lev…

芋道快速开发平台学习笔记

1.接口文档配置 基础知识:SpringDoc注解的使用,它是基于OpenAPI 3和Swagger 3的现代化解决方案,相较于旧版的Swagger2即SpringFox,SpringDoc提供了更简洁、更直观的注解方式。 详见springboot集成springdoc-openapi(模拟前端请求)_springdoc-openapi-ui-CSDN博客 doc文档配置…

c++面向对象三大特性——多态详解与虚函数,虚函数底层

目录 前言&#xff1a; 1. 多态的概念 1.1 概念 2. 多态的定义及实现 2.1多态的构成条件 2.2 虚函数 2.3虚函数的重写 2.4 C11 override 和 final 2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 抽象类 3.1 概念 3.2 接口继承和实现继承 4.多态的原理 4.1虚函数表 …

7.1-I2C的中断

I2C的中断与DMA 回顾 HAL_I2C_MASTER_Transmit(&hi2c1,ADRESS,PDate,Size,Time);HAL_I2C_MASTER_Receive(&hi2c1,ADRESS,PDate,Size,Time);通信具体过程如下&#xff1a; 在I2C的轮询模式中 发送时&#xff1a;CPU将以主机0x70 发送 从机 ACK 回复 主机0xAC发送 A…

⽂件的操作

1. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运⾏程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进⾏持久化…

深圳大学-Java程序设计-必实验2 类的高级应用

实验目的与要求&#xff1a; 实验目的&#xff1a;熟悉面向对象编程中类的编写。 实验要求&#xff1a; (1).请自行选择2023年成都大运会或2023杭州亚运会。大型运动会通常包括众多比赛项目。请通过分析&#xff0c;抽象它们所共有的性质&#xff0c;定义一个关于比赛项目的抽…