【愚公系列】2024年02月 大数据教学课程 017-Hadoop环境配置

在这里插入图片描述

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

文章目录

  • 🚀一、集群环境搭建
    • 🔎1.注意事项
      • 🦋1.1 windows系统确认所有的关于VmWare的服务都已经启动
      • 🦋1.2 确认好VmWare生成的网关地址
      • 🦋1.3 确认VmNet8网卡已经配置好了IP地址和DNS
    • 🔎2.复制虚拟机
      • 🦋2.1 将虚拟机文件夹复制三份,并分别重命名, 并使用VM打开重命名
      • 🦋2.2 分别设置三台虚拟机的内存
      • 🦋2.3 启动虚拟机并修改Mac和IP
        • ☀️2.3.1 集群规划
        • ☀️2.3.2 设置ip和Mac地址
        • ☀️2.3.3 inux系统重启
      • 🦋2.4 三台虚拟机关闭防火墙和SELinux
        • ☀️2.4.1 关闭防火墙
        • ☀️2.4.2 三台机器关闭selinux
    • 🔎3.Liux常用的命令
      • 🦋3.1 查找命令
      • 🦋3.2 用户管理命令
      • 🦋3.3 用户权限管理命令
      • 🦋3.4 系统服务命令
    • 🔎4.Linux的Shell编程
      • 🦋4.1 变量
      • 🦋4.2 特殊字符
      • 🦋4.3 运算符
      • 🦋4.4 if语句
      • 🦋4.5 for语句
      • 🦋4.6 函数
    • 🔎5.环境配置
      • 🦋5.1 三台虚拟机关闭防火墙
      • 🦋5.2 三台机器关闭selinux
      • 🦋5.3 三台机器机器免密码登录
      • 🦋5.4 三台机器时钟同步
  • 🚀感谢:给读者的一封信


🚀一、集群环境搭建

🔎1.注意事项

🦋1.1 windows系统确认所有的关于VmWare的服务都已经启动

在这里插入图片描述

🦋1.2 确认好VmWare生成的网关地址

在这里插入图片描述

🦋1.3 确认VmNet8网卡已经配置好了IP地址和DNS

在这里插入图片描述

🔎2.复制虚拟机

🦋2.1 将虚拟机文件夹复制三份,并分别重命名, 并使用VM打开重命名

在这里插入图片描述


在这里插入图片描述

🦋2.2 分别设置三台虚拟机的内存

  • 需要三台虚拟机, 并且需要同时运行, 所以总体上的占用为: 每台虚拟机内存 × 3 每台虚拟机内存 \times 3 每台虚拟机内存×3
  • 在分配的时候, 需要在总内存大小的基础上, 减去2G-4G作为系统内存, 剩余的除以3, 作为每台虚拟机的内存

每台机器的内存 = ( 总内存 − 4 ) ÷ 3 每台机器的内存 = \left ( 总内存 - 4\right ) \div 3 每台机器的内存=(总内存4)÷3

在这里插入图片描述

🦋2.3 启动虚拟机并修改Mac和IP

☀️2.3.1 集群规划
IP主机名环境配置安装
192.168.174.100node01关防火墙和selinux, host映射, 时钟同步JDK, NameNode, ResourceManager, Zookeeper
192.168.174.120node02关防火墙和selinux, host映射, 时钟同步JDK, DataNode, NodeManager, Zeekeeper
192.168.174.130node03关防火墙和selinux, host映射, 时钟同步JDK, DataNode, NodeManager, Zeekeeper
☀️2.3.2 设置ip和Mac地址

每台虚拟机更改mac地址:

vim /etc/udev/rules.d/70-persistent-net.rules

在这里插入图片描述

每台虚拟机更改IP地址:

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

在这里插入图片描述

每台虚拟机修改对应主机名(重启后永久生效)

vi /etc/sysconfig/network

HOSTNAME=node01

每台虚拟机设置ip和域名映射

vim /etc/hosts

在这里插入图片描述

☀️2.3.3 inux系统重启

关机重启linux系统即可进行联网了

第二台第三台机器重复上述步骤,并设置IP网址为192.168.174.110,192.168.174.120

🦋2.4 三台虚拟机关闭防火墙和SELinux

☀️2.4.1 关闭防火墙

三台机器执行以下命令(root用户来执行)

service iptables stop   #关闭防火墙
chkconfig iptables off  #禁止开机启动
☀️2.4.2 三台机器关闭selinux
  • 什么是SELinux
    • SELinux是Linux的一种安全子系统
    • Linux中的权限管理是针对于文件的, 而不是针对进程的, 也就是说, 如果root启动了某个进程, 则这个进程可以操作任何一个文件
    • SELinux在Linux的文件权限之外, 增加了对进程的限制, 进程只能在进程允许的范围内操作资源
  • 为什么要关闭SELinux
    • 如果开启了SELinux, 需要做非常复杂的配置, 才能正常使用系统, 在学习阶段, 在非生产环境, 一般不使用SELinux
  • SELinux的工作模式
    • enforcing 强制模式
    • permissive 宽容模式
    • disable 关闭
# 修改selinux的配置文件
vi /etc/selinux/config

在这里插入图片描述

🔎3.Liux常用的命令

🦋3.1 查找命令

grep命令 命令是一种强大的文本搜索工具

格式: grep [option] pattern [file] 可使用 —help 查看更多参数。 使用实例:

ps -ef | grep sshd 查找指定 ssh 服务进程

ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除 gerp 本身

grep -n 'hello' a.txt 从文件中查找关键词,并显示行号


find命令

find 命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
使用实例:
find . -name "*.log" -ls 在当前目录查找以.log 结尾的文件, 并显示详细信息。
find /root/ -perm 777 查找/root/目录下权限为 777 的文件
find . -size +100M 查找当前目录大于 100M 的文件


Locate命令

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库。之后当寻找时就只需查询这个数据库( /var/lib/locatedb)。
Linux 系统自动创建这个数据库, 默认每天自动更新一次,所以使用 locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

yum -y install mlocate

使用实例:

locate /etc/sh

搜索 etc 目录下所有以 sh 开头的文件

locate pwd

查找和 pwd 相关的所有文件

🦋3.2 用户管理命令

添加普通用户

useradd hadoop # 这个就表示我们创建了一个普通用户

passwd hadoop # 表示我们需要给hadoop这个普通用户分配一个密码,密

切换用户:

su - 用户名

🦋3.3 用户权限管理命令

在这里插入图片描述

chmod 777 a.txt #表示给某个文件赋予所有人的所有权限

chmod u-x a.txt #取消a.txt文件,用户“执行”权限

chmod g+x a.txt #添加a.txt文件,组“执行”权限

chown -R hadoop:hadoop a.txt 改变某个文件或者文件夹的所属的用户以及用户组

🦋3.4 系统服务命令

service iptables status #查看防火墙状态

service iptables stop #关闭防火墙

service --status-all # 查看系统所有的后台服务进程
service sshd status # 查看指定的后台服务进程的状态
service sshd stop
service sshd start
service sshd restart
配置后台服务进程的开机自启或关闭

chkconfig iptables on #配置防火墙开机开启

chkconfig iptables off #配置防火墙开机关闭
chkconfig httpd on ## 让 httpd 服务开机自启
chkconfig httpd off ## 让 httpd 服务开机不要自启


🔎4.Linux的Shell编程

Shell 编程一般指 shell 脚本编程。

语法:

​ 使用 vi 编辑器新建一个文件 hello.sh

#!/bin/bash 
 echo "Hello World !" 

执行

​ 方式1:

​ sh hello.sh

方式2

​ chmod +x ./hello.sh #使脚本具有执行权限

​ ./hello.sh #执行脚本

🦋4.1 变量

局部变量

#!/bin/bash
str="hello"
echo ${str}world

环境变量

​ echo $PATH

​ echo $HOME

🦋4.2 特殊字符

$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。
$$脚本运行的当前进程 ID 号
$!后台运行的最后一个进程的 ID 号
$@与$*相同,但是使用时加引号,并在引号中返回每个参数。
$?显示最后命令的退出状态。 0 表示没有错误,其他任何值表明有错误。
#!/bin/bash
echo "第一个参数为: $1";
echo "参数个数为: $#";
echo "传递的参数作为一个字符串显示: $*";

执行: ./test.sh 1 2 3

🦋4.3 运算符

#!/bin/bash
a=1;
b=2;
echo `expr $a + $b`;
echo  $((a+b));
echo  $[a+b];

🦋4.4 if语句

#!/bin/bash
read -p "please input your name:" NAME ## read命令用于从控制台读取输入数据
## printf '%s\n' $NAME
if [ $NAME = root ]
  then
  	echo "hello ${NAME}, welcome !"
  elif [ $NAME = itcast ]
  then
  	echo "hello ${NAME}, welcome !"
  else
  	echo "Get out Please!"
fi

🦋4.5 for语句

方式1:

#!/bin/bash
for N in 1 2 3 
do
    echo $N
done

方式2:

#!/bin/bash
for ((i = 0; i <= 5; i++)) 
 do 
    echo "welcome $i times" 
 done 

🦋4.6 函数

#!/bin/bash
funWithReturn(){
echo "这个函数会对输入的两个数字进行相加运算..."
echo "输入第一个数字: "
read aNum
echo "输入第二个数字: "
read anotherNum
echo "两个数字分别为 $aNum$anotherNum !"
return $(($aNum+$anotherNum))
} 
funWithReturn
echo "输入的两个数字之和为 $? !"

🔎5.环境配置

🦋5.1 三台虚拟机关闭防火墙

三台机器执行以下命令(root用户来执行)

service iptables stop   #关闭防火墙
chkconfig iptables off  #禁止开机启动

在这里插入图片描述

🦋5.2 三台机器关闭selinux

  • 什么是SELinux
    • SELinux是Linux的一种安全子系统
    • Linux中的权限管理是针对于文件的, 而不是针对进程的, 也就是说, 如果root启动了某个进程, 则这个进程可以操作任何一个文件
    • SELinux在Linux的文件权限之外, 增加了对进程的限制, 进程只能在进程允许的范围内操作资源
  • 为什么要关闭SELinux
    • 如果开启了SELinux, 需要做非常复杂的配置, 才能正常使用系统, 在学习阶段, 在非生产环境, 一般不使用SELinux
  • SELinux的工作模式
    • enforcing 强制模式
    • permissive 宽容模式
    • disable 关闭
# 修改selinux的配置文件
vi /etc/selinux/config

在这里插入图片描述

🦋5.3 三台机器机器免密码登录

在这里插入图片描述

  • 为什么要免密登录
    • Hadoop 节点众多, 所以一般在主节点启动从节点, 这个时候就需要程序自动在主节点登录到从节点中, 如果不能免密就每次都要输入密码, 非常麻烦
  • 免密 SSH 登录的原理
    1. 需要先在 B节点 配置 A节点 的公钥
    2. A节点 请求 B节点 要求登录
    3. B节点 使用 A节点 的公钥, 加密一段随机文本
    4. A节点 使用私钥解密, 并发回给 B节点
    5. B节点 验证文本是否正确

第一步:三台机器生成公钥与私钥

在三台机器执行以下命令,生成公钥与私钥

ssh-keygen -t rsa

执行该命令之后,按下三个回车即可

第二步:拷贝公钥到同一台机器

三台机器将拷贝公钥到第一台机器

三台机器执行命令:

ssh-copy-id node01

第三步:复制第一台机器的认证到其他机器

将第一台机器的公钥拷贝到其他机器上

在第一天机器上面指向以下命令

scp /root/.ssh/authorized_keys node02:/root/.ssh

scp /root/.ssh/authorized_keys node03:/root/.ssh

在这里插入图片描述

🦋5.4 三台机器时钟同步

  • 为什么需要时间同步
    • 因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是 1, B节点 记录的时间是 2, 就会出问题
## 安装
yum install -y ntp

## 启动定时任务
crontab -e

随后在输入界面键入

*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;

🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

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

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

相关文章

FPGA 与 数字电路的关系 - 这篇文章 将 持续 更新 :)

先说几个逻辑&#xff1a;&#xff08;强调一下在这篇文章 输入路数 只有 1个或2个&#xff0c;输出只有1个&#xff0c;N个输入M个输出以后再说&#xff09; 看下面的几个图&#xff1a; 图一&#xff08; 忘了 这是 啥门&#xff0c;不是门吧 &#xff1a;&#xff09;也就…

【好书推荐-第五期】《Java开发坑点解析:从根因分析到最佳实践》(异步图书出品)

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

I/O流(C++)

输入输出操作是程序中必不可少的操作&#xff0c;通过输入输出可以完成程序和外界的交互。 C语言支持两种I/O操作&#xff1a; &#xff08;1&#xff09;从C语言继承来的I/O函数输入输出语句&#xff1a;scanf()、printf()函数 &#xff08;2&#xff09;面向对象的I/O流类…

动画法则与动画曲线解析

先介绍一些和代码关系不大的动画常识 挤压与拉伸(Squeeze and stretch) 当有力作用到物体身上时,物体将会产生一定的形变,比如你在拍球时,球落地后会被挤压,弹起时会产生拉伸,对于具体的挤压与拉伸的强度,与物体的硬度和用力的大小有关。做动画要遵循运动规律让动画更…

一周学会Django5 Python Web开发-Http请求HttpRequest请求类

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计25条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

JavaWeb 自己给服务器安装SQL Server数据库遇到的坑

之前买的虚拟主机免费送了一个SQL Server数据库&#xff0c;由于服务器提供商今年下架我用的那款虚拟主机产品&#xff0c;所以数据库也被收回了。我买了阿里云云服务器&#xff0c;但是没有数据库&#xff0c;于是自己装了一个SQL Server数据库&#xff0c;总结一下遇到的坑。…

【设计模式】5种创建型模式详解

创建型模式提供创建对象的机制,能够提升已有代码的灵活性和复用性。 常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。不常用的有:原型模式。一、单例模式 1.1 单例模式介绍 1 ) 定义 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,此模…

Temu、亚马逊店铺如何快速得到好评?自养号测评下单的秘籍及必备条件。

Temu、亚马逊店铺如何快速得到好评?在这个竞争激烈的电商平台上&#xff0c;好评是店铺吸引顾客、建立良好声誉的关键。快速积累好评不仅能够提高商品的曝光度&#xff0c;也有助于吸引更多潜在顾客的关注。 然而&#xff0c;亚马逊不同于国内电商&#xff0c;对于操纵评论、…

数据清洗处理实战:将储存为股票代码的列表文件转换为pythoh列表

一、读取市场所有股票代码,并将处理过的股票代码写入文件&#xff0c;供后续使用 # 读取市场所有股票代码&#xff0c;并存入txt文件symbols xtdata.get_stock_list_in_sector(沪深A股)with open(symbols.txt,w) as f:f.write(str(symbols))由于python不能直接将列表写入txt文…

低代码流程加签功能深度解析:提升审批流程效率与准确性的利器

在流程审批过程中&#xff0c;流程加签通常是为了证明某个事项已经得到了确认或批准&#xff0c;或者为了证明某个文件已经经过了相关人员的审核或批准&#xff0c;或者除当前固定审批人外还需要额外的审批意见&#xff0c;需要临时添加其他审批人参与审批。通过流程加签配置&a…

编程的基础:理解时间和空间复杂度

编程的基础&#xff1a;理解时间和空间复杂度 时间复杂度空间复杂度示例常数时间复杂度 O(1)线性时间复杂度 O(n)线性对数时间复杂度 O(n log n)二次时间复杂度 O(n^2)指数时间复杂度 O(2^n) 空间复杂度示例常数空间复杂度 O(1)线性空间复杂度 O(n)线性对数空间复杂度 O(log n)…

leetcode hot100 买卖股票最佳时机3

本题中&#xff0c;依旧可以采用动态规划来进行解决&#xff0c;之前的两个题我们都是用二维数组dp[i][2]来表示的&#xff0c;其中i表示第i天&#xff0c;2表示长度为2&#xff0c;其中0表示不持有&#xff0c;1表示持有。 本题中&#xff0c;说至多完成两笔交易&#xff0c;也…

JAVA集合进阶(Set、Map集合)

一、Set系列集合 1.1 认识Set集合的特点 Set集合是属于Collection体系下的另一个分支&#xff0c;它的特点如下图所示 下面我们用代码简单演示一下&#xff0c;每一种Set集合的特点。 //Set<Integer> set new HashSet<>(); //无序、无索引、不重复 //Set<…

docker安装mongodb

1.使用docker安装mongo 1.1下载MongoDB镜像 docker pull mongo:4.4 1.2运行MongoDB容器 docker run -itd --name mongo -v /docker_volume/mongodb/data:/data/db -p 27017:27017 mongo:4.4 --auth 2.创建用户 2.1 登录mongo容器&#xff0c;并进入到【admin】数据库 dock…

gnss 自然灾害监测预警系统是什么

【TH-WY1】GNSS自然灾害监测预警系统是一种基于全球导航卫星系统&#xff08;GNSS&#xff09;技术的自然灾害监测和预警系统。它利用GNSS的高精度定位技术&#xff0c;通过在地表布置GNSS接收设备&#xff0c;实时监测地表形变、位移、沉降等参数&#xff0c;从而实现对自然灾…

蓝桥杯-答疑

原题链接&#xff1a;用户登录 答疑 题目描述 有 n 位同学同时找老师答疑。每位同学都预先估计了自己答疑的时间。 老师可以安排答疑的顺序&#xff0c;同学们要依次进入老师办公室答疑。一位同学答疑的过程如下 1.首先进入办公室&#xff0c;编号为 的同学需要 s&#xff0c;…

【智慧零售】门店管理设备解决方案,为企业数字化运营升级赋能

2023年我国零售总额超47万亿元&#xff0c;广阔的市场提供了更多机遇&#xff0c;同时随着日趋激烈的竞争&#xff0c;企业也正面临着一些挑战&#xff1a;如何才能有效提升门店生产效率&#xff1f;降低门店运营成本&#xff1f;提高市场竞争力&#xff1f; 零售企业认识到通…

视频和音频使用ffmpeg进行合并

1.下载ffmpeg 官网地址&#xff1a;https://ffmpeg.org/download.html 2.配置环境变量 此电脑右键点击 属性 - 高级系统配置 -高级 -环境变量 - 系统变量 path 新增 文件的bin路径 3.验证配置成功 ffmpeg -version 返回版本信息说明配置成功4.执行合并 ffmpeg -i 武家坡20…

FullCalendar日历组件:进行任务增删改,参考gitee例子修改

效果 参考路径 zxj/FullCalendar开发示例 - 码云 - 开源中国 (gitee.com) 代码 主页面&#xff1a;codeset.php <?php ob_start(); include(includes/session.inc); ?> <!DOCTYPE html> <html><head><title>日程管理</title><met…

基于频率增强的数据增广的视觉语言导航方法(VLN论文阅读)

基于频率增强的数据增广的视觉语言导航方法&#xff08;VLN论文阅读&#xff09; 摘要 视觉和语言导航&#xff08;VLN&#xff09;是一项具有挑战性的任务&#xff0c;它需要代理基于自然语言指令在复杂的环境中导航。 在视觉语言导航任务中&#xff0c;之前的研究主要是在空间…