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

配置Hadoop集群环境准备

  • Hadoop的运行模式

一共有三种:

  1. 本地运行。
  2. 伪分布式
  3. 完全分布式
  • Hadoop的完全分布式运行
  1. 要模拟这个功能,我们需要做好如下的准备。

    1)准备3台客户机(关闭防火墙、静态IP、主机名称)

    2)安装JDK配置环境变量

    3)安装Hadoop配置环境变量

    4)配置集群

    5)单点启动

    6配置ssh

    7群起并测试集群

    其中,第1项我们在之前克隆虚拟机的环节中已经完成了。现在我们来看看按照JDK和Hadoop并配置环境变量的工作。有两种思路:

    1. 每台机器都去手动安装一次(上传jar包再去解压)。

    2. 把一台机器装好,把module 拷贝到其他的机器。这样就不需要省略了上传和解压的工作了。

    scp拷贝软件到服务器

    scp可以实现服务器与服务器之间的数据拷贝。

    基本语法

    scp    -r        $pdir/$fname             $user@$host:$pdir/$fname

    命令   递归     要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

    来,我们一起看下案例实操。假设你在三台虚拟机(hadoop102、hadoop103、hadoop104)都已经创建好的/opt/module,/opt/software两个目录,在hadoop102这台机器中已经安装了jdk和hadoop。现在需要把102上的jdk拷贝到103中。

    具体操作是:

    1. 启动虚拟机

    2. 进入到hadoop102。

    3. 命令:scp -r /opt/module/jdk1.8.0_212  root@hadoop103:/opt/module

    注意:这的hadoop103是虚拟机的名称,如果没有设置hosts则需要改成IP地址。

    拓展:scp根据所在的位置不同命令也支持不同的操作,例如:

    在A机器上,拉取B机器上的内容。

    在A机器上,把文件传到B机器上

    在A机器上,把B机器上的文件传递到C机器上

    (b)在hadoop103上,将hadoop102中/opt/module/hadoop-3.1.3目录拷贝到hadoop103上。

    scp -r root@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/

    (c)在hadoop103上操作,将hadoop102中/opt/module目录下所有目录拷贝到hadoop104上。

    scp -r root@hadoop102:/opt/module/* root@hadoop104:/opt/module

    (四)rsync远程同步-配置文件

    rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

    rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

    (1)基本语法

    rsync    -av       $pdir/$fname             $user@$host:$pdir/$fname

    命令   选项参数   要拷贝的文件路径/名称   目的地用户@主机:目的地路径/名称

      选项参数说明

    选项

    功能

    -a

    归档拷贝

    -v

    显示复制过程

    (2)案例实操

    (a)删除hadoop103中/opt/module/hadoop-3.1.3/wcinput

    [root@hadoop103 hadoop-3.1.3]$ rm -rf wcinput/

    (b)同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103

    [root@hadoop102 module]$ rsync -av hadoop-3.1.3/ root@hadoop103:/opt/module/hadoop-3.1.3/

    xsync集群分发脚本

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

    (2)需求分析:

    (a)rsync命令原始拷贝:

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

    (b)期望脚本:

    xsync要同步的文件名称

    (c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

    [root@hadoop102 ~]$ echo $PATH

    /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/root/.local/bin:/home/root/bin:/opt/module/jdk1.8.0_212/bin

    (3)脚本实现

    (a)在/home/root/bin目录下创建xsync文件

    [root@hadoop102 opt]$ cd /home/root

    [root@hadoop102 ~]$ mkdir bin

    [root@hadoop102 ~]$ cd bin

    [root@hadoop102 bin]$ vim xsync

    在该文件中编写如下代码

    #!/bin/bash#1. 判断参数个数
    if [ $# -lt 1 ]
    thenecho Not Enough Arguement!exit;
    fi#2. 遍历集群所有机器
    for host in hadoop102 hadoop103 hadoop104
    doecho ====================  $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:$pdirelseecho $file does not exists!fidone
    done

    此时,我们去查看文件

    颜色是灰色的,不具备执行权限。修改脚本 xsync 具有执行权限

    chmod +x xsync

    或者是chmod 777 xsync

    测试脚本

    [root@hadoop102 ~]$ xsync /home/root/bin

    (d)将脚本复制到/bin中,以便全局调用

    [root@hadoop102 bin]$ sudo cp xsync /bin/

    (e)同步环境变量配置(root所有者)

    [root@hadoop102 ~]$ xsync /etc/profile.d/my_env.sh

    (六)ssh命令切换主机让环境变量生效

    从当前主机切换到另一台主机:ssh root@192.168.10.101

    运行命令让环境变量生效。

    source /etc/profile

http://www.xdnf.cn/news/5647.html

相关文章:

  • Python集成开发环境之Thonny
  • Python实例题:Django搭建简易博客
  • FEKO许可证的安全与合规性
  • uni-app微信小程序登录流程详解
  • linux-驱动开发之设备树详解(RK平台为例)
  • 【递归、搜索与回溯】专题一:递归(一)
  • Java面试高阶篇:Spring Boot+Quarkus+Redis高并发架构设计与性能优化实战
  • Maven 项目构建时编译错误问题排查与解决
  • Spring Boot整合Kafka实战指南:从环境搭建到消息处理全解析
  • 【MCP】魔搭社区MCP服务(高德地图、everything文件搜索)
  • Ai网站流式渲染总结
  • c语言第一个小游戏:贪吃蛇小游戏03
  • #在 CentOS 7 中手动编译安装软件操作及原理
  • 03.Golang 切片(slice)源码分析(二、append实现)
  • 视频监控汇聚平台EasyCVR安防视频监控小知识:视频监控系统与监视器安装
  • 【Redis实战篇】分布式锁-Redisson
  • 最新AI产品库哪个平台好?最新AI工具网站平台推荐
  • C++中的std::allocator
  • 神经生物学+图论双buff,揭示大脑语言系统的拓扑结构
  • Android学习总结之线程池篇
  • 脑机接口重点产品发展路径分析:以四川省脑机接口及人机交互产业攻坚突破行动计划(2025-2030年)为例
  • Matlab 短时交通流预测AR模型
  • 【C#】ToArray的使用
  • 将本地文件上传到云服务器上
  • Matlab 模糊控制节水洗衣机模型
  • Next.js 知识框架总结
  • 212. 单词搜索 II【 力扣(LeetCode) 】
  • windows下docker 运行 ros2humble arm64
  • day 23
  • VIC-2D 7.0 为平面样件机械试验提供全视野位移及应变数据软件