Hadoop3完全分布式搭建

一、第一台的操作搭建

修改主机名

使用hostnamectl set-hostname 修改当前主机名
在这里插入图片描述

关闭防火墙和SELlinux

1,使用

systemctl stop firewalld
systemctl disable firewalld

关闭防火墙
在这里插入图片描述

2,使用

vim /etc/selinux/config

修改为 SELINUX=disabled

在这里插入图片描述

使用NAT模式配置静态IP

1,修改网络配置

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

修改如下三项内容:
BOOTPROTO=static
ONBOOT=yes
IPADDR=自己想要设置的IP。这个ip参考vmware的虚拟网络编辑器的vmnet8的IP地址进行设置。
在这里插入图片描述
2,重启网络。
在这里插入图片描述

二、克隆虚拟机

克隆虚拟机

1,克隆
在这里插入图片描述
2,
在这里插入图片描述
3,
在这里插入图片描述

修改克隆后的虚拟机的静态IP

修改IP为192.168.248.102. 同理第三台虚拟机同样的修改。
在这里插入图片描述

可以修改一下hadoop02,hadoop03的主机名

使用hostnamectl set-hostname 修改当前主机名
在这里插入图片描述

三、主机映射

为后面的hadoop的核心配置文件做准备的。
vim /etc/hosts
因为配置三个集群节点。所以如下配置。

在这里插入图片描述

在另外两台节点,也修改上面的文件vim /etc/hosts

四、设置免密登录

管理集群不可能每个都要输入账号密码进行登录,那可太费劲了。
所以需要借助公钥、私钥免密登录
1,在第一台节点上,使用 ssh-keygen -t rsa 生成公钥私钥
在这里插入图片描述
2,使用ssh-copy-id 目标节点。拷贝到这三台节点上
(1)先拷贝给自己。 先拷贝到hadoop01, 然后会要求输入当前节点的登录密码。
在这里插入图片描述
(2)拷贝到hadoop02
在这里插入图片描述

(3)拷贝到hadoop03
在这里插入图片描述
3,在hadoop02, hadoop03 两个节点上,重复上面的1和2步骤

五、集群时间同步

一种是从节点同步主节点的时间。
一种是所有节点同步网络时间。
这里让所有节点同步网络时间
1,在3台节点上都执行如下命令
crontab -e
在这里插入图片描述

2,然后输入如下内容:

* * * * * /usr/sbin/ntpdate -u ntp.aliyun.com >/var/null 2>&1

在这里插入图片描述

六、在第一台虚拟机上安装配置jdk和hadoop

参考:https://blog.csdn.net/qq_45860901/article/details/135676494?spm=1001.2014.3001.5502

七、配置hadoop配置文件

1,切换到hadoop的home 目录下。
在这里插入图片描述
2,切到etc目录下, 里面只有一个hadoop文件夹
在这里插入图片描述

3,进入到这个hadoop文件夹,就有我们的核心配置文件了。
在这里插入图片描述

4,修改配置core-site.xml 文件
注意端口:在hadoop1.x 使用9000端口
hadoop2.x使用8020
hadoop3.x使用9820

<configuration>
             <property>
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.248.101:9820</value>
            </property>
            <!--hdfs基础数据路径,放在hadoop文件夹下的tmp文件夹,这个文件不需要提前创建,让hadoop自己创建-->

</configuration>

5,修改hdfs-site.xml
对外http服务的地址

<configuration>
             <property>
                <name>dfs.replication</name>
                <value>2</value>
            </property>
            <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>192.168.248.102:9868</value>
            </property>
             <property>
                <name>dfs.namenode.http-address</name>
                <value>192.168.248.101:9870</value>
            </property>
            <!--namenode守护进程运行数据路径-->
         <property>
             <name>dfs.namenode.name.dir</name>
             <value>/usr/local/app/hadoop/hadoop-3.3.5/tmp/name</value>
         </property>
         <!--datanode守护进程运行数据路径-->
         <property>
             <name>dfs.datanode.data.dir</name>
             <value>/usr/local/app/hadoop/hadoop-3.3.5/tmp/data</value>
    </property>

</configuration>

6,修改hadoop-env.sh 文件
配置hadoop允许的配置

export JAVA_HOME=/usr/local/app/java/jdk8
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

7,配置workers 集群文件。 这个是指定datanode 在哪些节点上,因为要在三台节点上都要配置Datanode,所以都要写。 里面会有一个localhost ,要去掉。

hadoop01
hadoop02
hadoop03

拷贝

为了避免再去多个主机上进行上面的配置操作,使用scp 命令拷贝分发。
1,拷贝hadoop和Jdk文件分发给其他节点.
(1)下面命令是递归的将hadoop-3.3.5文件夹,拷贝到hadoop02的当前目录下,当前目录就是在hadoop01同级的目录下。

 scp -r hadoop-3.3.5/ hadoop02:$PWD

在这里插入图片描述
(2)hadoop03也执行上面操作。

2, 拷贝 /etc/profile 给其他节点
(1)将 profile 文件,拷贝到 hadoop02的 /etc目录下。

scp /etc/profile hadoop02:/etc/

(2)hadoop03也执行上面操作。

格式化集群

在 hadoop01节点上执行下面的命令:hdfs namenode -format
在这里插入图片描述
得到如下结果:
在这里插入图片描述

启动集群

执行:start-dfs.sh
在这里插入图片描述

使用JPS命令查看所有运行的java程序:
在这里插入图片描述

访问hadoop的web界面

http://192.168.248.101:9870
在这里插入图片描述
成功进入:
在这里插入图片描述

界面介绍

1,Datanode相关界面负载信息
在这里插入图片描述
2,这个查看 HDFS的相关信息
在这里插入图片描述

如果重启后没有Datanode节点

先停止集群:stop-all.sh
如果按照上面配置代码,则把/usr/local/app/hadoop/hadoop-3.3.5/tmp 文件夹彻底清空删除。
然后再重新格式化:hdfs namenode -format
然后再启动。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

考研C语言刷题基础篇之分支循环结构基础(二)

目录 第一题分数求和 第二题&#xff1a;求10 个整数中最大值 第三题&#xff1a;在屏幕上输出9*9乘法口诀表 第四题&#xff1a;写一个代码&#xff1a;打印100~200之间的素数 第五题&#xff1a;求斐波那契数的第N个数 斐波那契数的概念&#xff1a;前两个数相加等于第三…

爬虫进阶之selenium模拟浏览器

爬虫进阶之selenium模拟浏览器 简介环境配置1、建议先安装conda2、创建虚拟环境并安装对应的包3、下载对应的谷歌驱动以及与驱动对应的浏览器 代码setting.py配置scrapy脚本参考中间件middlewares.py 附录&#xff1a;selenium教程 简介 Selenium是一个用于自动化浏览器操作的…

继电器开关电路图大全

继电器是一种电控制器件&#xff0c;是当输入量&#xff08;激励量&#xff09;的变化达到规定要求时&#xff0c;在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统&#xff08;又称输入回路&#xff09;和被控制系统&#xff08;又称输出回路&#xff0…

USB-C接口给显示器带来怎样的变化?

随着科技的不断发展&#xff0c;Type-C接口已经成为现代电子设备中常见的接口标准。它不仅可以提供高速的数据传输&#xff0c;还可以实现快速充电和视频传输等功能。因此&#xff0c;使用Type-C接口的显示器方案也受到了广泛的关注。本文将介绍Type-C接口显示器的优势、应用场…

基于C++11的数据库连接池【C++/数据库/多线程/MySQL】

一、概述 概述&#xff1a;数据库连接池可提前把多个数据库连接建立起来&#xff0c;然后把它放到一个池子里边&#xff0c;就是放到一个容器里边进行维护。这样的话就能够避免数据库连接的频繁的创建和销毁&#xff0c;从而提高程序的效率。线程池其实也是同样的思路&#xf…

二叉树基础oj题目

二叉树基础oj题目及思路总结 前文中&#xff0c;介绍了二叉树的基本概念及基础操作&#xff0c;进一步对于二叉树的递归遍历及子问题的处理思想有了一定的了解。本文将带来几道二叉树经典的oj题目。 目录 二叉树基础oj题目 对称二叉树平衡二叉树二叉树的层序遍历 二叉树基…

基于一次应用卡死问题所做的前端性能评估与优化尝试

问题背景 在上个月&#xff0c;由于客户反馈客户端卡死现象但我们远程却难以复现此现象&#xff0c;于是我们组织了一次现场上门故障排查&#xff0c;并希望基于此次观察与优化&#xff0c;为客户端开发提供一些整体的优化升级。当然&#xff0c;在尝试过程中&#xff0c;也发…

使用docker配置semantic slam

一.Docker环境配置 1.拉取Docker镜像 sudo docker pull ubuntu:16.04拉取的为ununtu16版本镜像&#xff0c;环境十分干净&#xff0c;可以通过以下命令查看容器列表 sudo docker images 如果想删除多余的docker image&#xff0c;可以使用指令 sudo docker rmi -f <id&g…

黑马程序员-瑞吉外卖-day4

实现账号的启动禁止 EmployeeController PutMappingpublic R<String> update(RequestBody Employee employee){employeeService.updateById(employee);return R.success("员工信息修改成功");} 出错 解决 common目录下 引入JacksonObjectMapper package com…

Redis 面试题 | 02.精选Redis高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

开源项目_大模型应用_Chat2DB

1 基本信息 项目地址&#xff1a;https://github.com/chat2db/Chat2DBStar&#xff1a;10.7K 2 功能 Chat2DB 是一个智能且多功能的 SQL 客户端和报表工具&#xff0c;适用于各种数据库。 对于那些平时会用到数据库&#xff0c;但又不是数据库专家的程序员来说&#xff0c;…

数据结构之树和二叉树定义

数据结构之树和二叉树定义 1、树的定义2、树的基本概念3、二叉树的定义 数据结构是程序设计的重要基础&#xff0c;它所讨论的内容和技术对从事软件项目的开发有重要作用。学习数据结构要达到的目标是学会从问题出发&#xff0c;分析和研究计算机加工的数据的特性&#xff0c;以…

【每日一题】按分隔符拆分字符串

文章目录 Tag题目来源解题思路方法一&#xff1a;遍历方法二&#xff1a;getline 写在最后 Tag 【遍历】【getline】【字符串】【2024-01-20】 题目来源 2788. 按分隔符拆分字符串 解题思路 方法一&#xff1a;遍历 思路 分隔符在字符串开始和结束位置时不需要处理。 分隔…

【JavaEE】_网络编程基础

目录 1. 网络编程基础 1.1 网络编程定义 1.2 网络编程中的基本概念 1.2.1 API 1.2.2.发送端和接收端 1.2.3 请求和响应 1.2.4 客户端和服务端 2. Socket 套接字 2.1 概念 2.2 分类 3. UDP数据报套接字编程 3.1 DatagramSocket API 3.1.1 含义 3.1.2 构造方法 3…

C++---判断闰年

一.闰年的定义 闰年是指在公历中&#xff0c;年份可以被4整除但不能被100整除的年份&#xff0c;或者可以被400整除的年份。简单来说&#xff0c;闰年是一个比平年多出一天的年份&#xff0c;即2月有29天。闰年的目的是校准公历与地球公转周期的差异&#xff0c;确保时间计算的…

记录一次QT乱码问题

问题描述 在敲陆文周的书《QT5开发及实例》的示例代码时&#xff0c;出现乱码&#xff0c;如下图所示 具体代码如下 Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->treeWidget->clear();int groupSize 2;int ite…

【C++类与对象】继承

继承 一、继承基本语法二、继承方式1、公共继承public2、保护继承protected3、私有继承private 三、对象模型四、继承中的构造与析构顺序五、同名成员处理方式同名静态成员处理方法 六、多继承语法&#xff08;不建议使用&#xff09;七、菱形继承&#xff08;钻石继承&#xf…

R 语言学习 case3:柱状图(ggchart)

主要涉及到对图的优化&#xff0c;使用ggchart工具包 ggchart 链接&#xff1a;https://thomas-neitmann.github.io/ggcharts/index.html step1: 安装工具包 install.packages("ggcharts") install.packages("tidytext")step2: 导入工具包 library(dplyr…

高性能前端UI库 SolidJS | 超棒 NPM 库

SolidJS是一个声明式的、高效的、编译时优化的JavaScript库&#xff0c;用于构建用户界面。它的核心特点是让你能够编写的代码既接近原生JavaScript&#xff0c;又能够享受到现代响应式框架提供的便利。 SolidJS的设计哲学强调了性能与简洁性。它不使用虚拟DOM&#xff08;Vir…

makefile中的伪目标和模式匹配

文章目录 makefile&#xff0c;伪目标和模式匹配 makefile&#xff0c;伪目标和模式匹配 伪目标 .PHONY:clean 声明目标为伪目标之后&#xff0c;makefile将不会判断目标是否存在或该目标是否需要更新, 简单来说就是不会受到一些同名的文件的影响&#xff0c;也会进来makefi…