配置Hadoop集群

Hadoop的运行模式

本地运行 :在一台单机上运行,没有分布式文件系统,直接读写本地操作系统的文件系统。特点:不对配置文件进行修改,Hadoop 不会启动
伪分布式 :也是在一台单机上运行,但用不同的 Java 进程模仿分布式运行中的各类节点,特点:Hadoop 启动的这些守护进程都在同一台机器上运行,是相互独立的 Java 进程。
完全分布式:数据存储在HDFS,多台服务器工作,企业中大量使用

要在本地去模拟这个真实的场景功能,我们需要做好如下的准备:

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

2)安装javaJDK,安装Hadoop,并配置环境变量

3)配置集群

4)单点启动

5)配置ssh

6)群起并测试集群

现在我们来看看按照JDK和Hadoop并配置环境变量的工作。有两种思路:

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

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

scp命令

基本语法

作用:可实现服务器与服务器之间的数据拷贝

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

说明:

(1)-r: 表示递归拷贝。如果要拷贝的是文件夹,就把文件夹下的内容都拷贝

(2)pdir/fname: 要拷贝的文件路径/名称

(3)user@host:pdir/$fname: 目的地用户@主机:目的地路径/名称

注意:要输入相应的账号和密码!

实例

背景
假设你已经:

(1)在两台虚拟机(hadoop100、hadoop101)都已经创建好了/opt/module,/opt/software两个目录

(2)在hadoop100这台机器中已经安装了jdk和hadoop。

目标

现在的目标是:要把hadoop100上的jdk文件夹拷贝到hadoop101中的相同的目录下。

操作

我们一起看具体操作:

  1. 启动虚拟机。把hadoop100和hadoop101都启动。

  2. 进入到hadoop100

  3. 命令:

scp -r /opt/module/jdk1.8.0_212/ root@hadoop101:/opt/module/jdk1.8.0_212/

三.scp命令---------拓展使用

1、拉取。在hadoop101上,拉取hadoop100机器上的内容(如下左图)。

1、推送。在hadoop100机器上,把文件推送到hadoop101机器上(如上右图)。

2、搭桥。在hadoop101机器上,把hadoop100的文件传递到hadoop102上

任务1:

在hadoop102上,将hadoop101中/opt/module/hadoop-3.1.3目录拷贝到hadoop102上。

分析:使用scp进行拉取

操作:

先登录到hadoop2

使用命令:

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

任务2:

在hadoop101上操作,将hadoop100中/opt/module目录下所有目录拷贝到hadoop102上。

分析:使用scp进行搭桥

操作:

登录hadoop101

使用命令:

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

rsync

主要用于备份和镜像

rsync和scp的区别是rsync只对差异文件做更新,而scp是把所有文件都复制过去。故rsync效率更高

1. 基本语法

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

语法说明:

(1)-a:归档拷贝,尽可能让拷贝的文件之间保持一致。

(2)-v:显示拷贝过程。

(3)pdir/fname: 要拷贝的文件路径/名称

(4)user@host:pdir/$fname: 目的地用户@主机:目的地路径/名称

实操:

rsync -av /opt/conf/ root@hadoop101:/opt/conf

第一步:在两台机器上准备文件。

在hadoop100的/opt/conf/ 新建1.txt, 2.txt, 3.txt, 4.txt

做一次同步。

[root@hadoop100 ]$ rsync -av /opt/conf/ root@hadoop101:/opt/conf/

它会在hadoop101上创建conf目录。

第二步:在hadoop100中,添加新文件,5.txt, 6.txt, 7.txt

第三步:使用命令把新添加的文件同步到hadoop101中。

命令如下:

[root@hadoop100 ]$ rsync -av /opt/conf/ root@hadoop101:/opt/conf/

请特别注意目录最后的尾/。有/表示拷贝这文件夹下的内容,没有/表示会拷贝这个文件夹

xsync脚本集群之间的同步

在root目录建立bin文件夹,在bin内建立xsync文件,并在文件中输入脚本

chmod +x xsync

2.步骤

(1)在/root/bin目录下创建xsync文件。在这个

(2)在该文件中编写如下代码。这个部分的代码不需要会写,能看懂,了解即可。

#!/bin/bash

#1. 判断参数个数

if [ $# -lt 1 ]

then

echo Not Enough Arguement!

exit;

fi

#2. 遍历集群所有机器

for host in hadoop100 hadoop101 hadoop102

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

(3)修改执行权限。此时,我们去查看文件,可以看到它的颜色是灰色的,不具备执行权限(如下图)

接下来要通过命令: chmod +x xsync(或者是chmod 777 xsync)

重新查看它的颜色,它现在已经变成执行的脚本了(如下图)。

(4)测试使用。把这个脚本同步到其他的机器中。

[root@hadoop100 ~]$ xsync /root/bin/

[课后小答]

scp的作用是什么?

如果当前在A机器上,要把A机器上的/etc/tst下的所有内容拷贝到B机器上的/etc/tst目录下,应该的命令应该怎么写?

rsync与scp的区别是什么?

答案:

1.实现服务器和服务器之间数据拷贝

2.scp -r /etc/tst/B机器的用户名@主机名:/etc/tst

3.rsync和scp区别是:rsync只对差异文件做更新,而scp是把所有文件都复制过去,所以它的效果更高一些。

相关推荐
Ronin-Lotus1 小时前
上位机知识篇---Linux特殊功能文件
linux·运维·服务器·特殊功能寄存器
热心市民运维小孙2 小时前
基于HAproxy搭建负载均衡
运维·junit·负载均衡
Zucker n3 小时前
Ubuntu本地部署Open manus(完全免费可用)
linux·运维·ubuntu
静候光阴3 小时前
python使用venv命令创建虚拟环境(ubuntu22)
linux·开发语言·python
小怪兽长大啦4 小时前
【UI自动化测试思路】测试用例配置
服务器·ui·测试用例
灵山悟空4 小时前
rust语言match模式匹配涉及转移所有权Error Case
linux·开发语言·rust
zym大哥大4 小时前
Linux进程信号二
linux·运维·服务器
5:004 小时前
Linux:网络(网络编程基础)
linux·网络
萌萌哒草头将军5 小时前
🚀🚀🚀 服务器防吃灰指南(二) !
java·服务器·javascript
call_me_wangcheng6 小时前
Ubuntu用户安装cpolar内网穿透
linux·运维·ubuntu