当前位置: 首页 > news >正文

在线教育之采集系统 day03

3.3服务器和JDK准备

3.3.1服务器准备

安装如下文档配置步骤,分别安装hadoop102、hadoop103、hadoop104三台主机。

Hadoop完全分布式部署https://blog.csdn.net/2301_80395772/article/details/160481864?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

3.3.2阿里云服务器准备(可选)

阿里云服务器部署https://blog.csdn.net/2301_80395772/article/details/162175333?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

3.3.3 编写集群分发脚本xsync

1xsync集群分发脚本

(1)需求:循环复制文件到所有节点的相同目录下

(2)需求分析

①rsync命令原始拷贝:

rsync -av /opt/module root@hadoop103:/opt/

②期望脚本:

xsync要同步的文件名称

③说明:在/home/atguigu/bin这个目录下存放的脚本,atguigu用户可以在系统任何地方直接执行。

(3)脚本实现

①在用的家目录/home/atguigu下创建bin文件夹

[atguigu@hadoop102 ~]$ mkdir bin

②在/home/atguigu/bin目录下创建xsync文件,以便全局调用

[atguigu@hadoop102 ~]$ cd /home/atguigu/bin [atguigu@hadoop102 ~]$ vim xsync

在该文件中编写如下代码

#!/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

③修改脚本xsync具有执行权限

[atguigu@hadoop102 bin]$ chmod +x xsync

④测试脚本

[atguigu@hadoop102 bin]$ xsync xsync

3.3.4 SSH无密登录配置

说明:这里面只配置了hadoop102、hadoop103到其他主机的无密登录;因为hadoop102未外配置的是NameNode,hadoop103配置的是ResourceManager,都要求对其他节点无密访问。

(1)hadoop102上生成公钥和私钥:

[atguigu@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

(2)将hadoop102公钥拷贝到要免密登录的目标机器上

[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop102 [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop103 [atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop104

(3)hadoop103上生成公钥和私钥:

[atguigu@hadoop103 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

(4)将hadoop103公钥拷贝到要免密登录的目标机器上

[atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop102 [atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop103 [atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop104

3.3.5JDK准备

1卸载现有JDK(3台节点)

[atguigu@hadoop102 opt]# sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps [atguigu@hadoop103 opt]# sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps [atguigu@hadoop104 opt]# sudo rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps

(1)rpm -qa:表示查询所有已经安装的软件包

(2)grep -i:表示过滤时不区分大小写

(3)xargs -n1:表示一次获取上次执行结果的一个值

(4)rpm -e --nodeps:表示卸载软件

2Xftp工具将JDK导入到hadoop102的/opt/software文件夹下面

点击图标打开 Xftp

左侧窗口对应 windows 文件系统,右侧窗口对应 Linux 文件系统,找到对应目录,将 JDK 拖动到右侧窗口即可完成上传。

3)在Linux系统下的opt目录中查看软件包是否导入成功

[atguigu@hadoop102 software]# ls /opt/software/

看到如下结果:

jdk-8u212-linux-x64.tar.gz

4解压JDK到/opt/module目录下

[atguigu@hadoop102 software]# tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

5配置JDK环境变量

(1)新建/etc/profile.d/my_env.sh文件

[atguigu@hadoop102 module]# sudo vim /etc/profile.d/my_env.sh

添加如下内容,然后保存(:wq)退出

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

(2)让环境变量生效

[atguigu@hadoop102 software]$ source /etc/profile.d/my_env.sh

6测试JDK是否安装成功

[atguigu@hadoop102 module]# java -version

如果能看到以下结果、则Java正常安装

java version "1.8.0_212"

7)分发JDK

[atguigu@hadoop102 module]$ xsync /opt/module/jdk1.8.0_212/

8)分发环境变量配置文件

[atguigu@hadoop102 module]$ sudo /home/atguigu/bin/xsync /etc/profile.d/my_env.sh

9)分别在hadoop103、hadoop104上执行source

[atguigu@hadoop103 module]$ source /etc/profile.d/my_env.sh [atguigu@hadoop104 module]$ source /etc/profile.d/my_env.sh

3.3.6环境变量配置说明

Linux的环境变量可在多个文件中配置,如/etc/profile,/etc/profile.d/*.sh,~/.bashrc,~/.bash_profile等,下面说明上述几个文件之间的关系和区别。

bash的运行模式可分为loginshellnon-login shell

例如,我们通过终端,输入用户名、密码,登录系统之后,得到就是一个login shell。而当我们执行以下命令sshhadoop103 command,在hadoop103执行command的就是一个non-login shell。

这两种shell的主要区别在于,它们启动时会加载不同的配置文件,loginshell启动时会加载/etc/profile,~/.bash_profile~/.bashrcnon-loginshell启动时会加载~/.bashrc

而在加载~/.bashrc(实际是~/.bashrc中加载的/etc/bashrc)或/etc/profile时,都会执行如下代码片段:

因此不管是login shell还是non-login shell,启动时都会加载/etc/profile.d/*.sh中的环境变量。

http://www.jsqmd.com/news/1059022/

相关文章:

  • 嵌入式安全实战:NXP IEC60730 Class B库集成与CPU内存测试指南
  • DeepSeek-V4 MoE路由、FP4量化与三维并行硬核解析
  • 如何用SGUARD限制器优化腾讯游戏性能:技术原理与配置指南
  • B站视频下载终极指南:免费下载4K大会员视频的完整教程
  • 协同过滤加权融合:双引擎推荐策略的工程实践与优化
  • BallonTranslator:终极AI漫画翻译工具,3分钟完成专业级翻译
  • Kubernetes生产级落地:RBAC、配额、安全与弹性协同实践
  • 轻规划鸿蒙开发实战23:无网络极端离线环境下的“本地降级”与日历 AutoSync 协同防御策
  • RTranslator:开源免费的离线实时翻译应用完整指南
  • LinkSwift:终极网盘直链解析方案,九大平台一键高速下载
  • ROC曲线深度解析:R语言中阈值驱动的模型诊断与优化
  • 嵌入式Linux下基于Clutter构建高性能3D GUI:从原理到实战
  • 合肥废品堆积占地方怎么办?2026年废品回收上门服务推荐 - 本地品牌推荐
  • 2026邵阳漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • 自然梯度下降与动量优化:攻克非线性模型训练效率瓶颈
  • 字节付境内空壳:每月5–10日分批付款;2、张氏家族分红:每年6月20日、12月22日两笔集中私卡转账;3、11嫡系隐秘分红:每月28日固定私对私转账;4、境内汇香港特许权:每月15日付汇;5、香港划
  • DENALI数据集:低成本LiDAR非视距感知的算法研究与实践指南
  • 多机器人密度控制:基于PDE约束优化的安全与能量感知方法
  • 如何实现抖音内容批量下载:深度解析无水印下载工具的技术架构
  • 基于Stein变分梯度下降的多智能体分布估计算法:原理、实现与应用
  • Mac窗口置顶神器Topit:让重要信息始终在你眼前的高效解决方案
  • IA-CLAHE:自适应图像对比度增强原理与Python实现
  • 3步免费解锁WeMod专业版!Wand-Enhancer客户端增强工具完整指南
  • 钢结构网架设计入门篇
  • 3分钟搞定TrollStore安装:TrollInstallerX iOS越狱应用安装完全指南
  • 基于对话信息增益与语义记忆的审议对话质量评估实践
  • 零基础做电商店群工具选型攻略,多年店群总结实用干货新手小白流程 - 抖掌柜
  • PR533 PSP非接触式读卡器开发指南:从天线设计到软件集成
  • PIDtoolbox完全指南:从黑盒日志到完美飞行的3步科学调参法
  • Reloaded-II终极指南:5分钟掌握跨平台游戏Mod框架