1. 基础工作准备。
(1) 集群文件同步。scp, rsync命令 → xsync集群分发脚本。
(2) 相互登录。 ssh免密登录。
2. 集群核心配置
(1) 5个配置文件
(2) 集群测试
3. 集群调试
(1) 历史服务器, 日志聚集
(2) 集群脚本
二、授新
(一)Hadoop的运行模式
hadoop一共有如下三种运行方式(参考官方文档):
1. 本地运行。数据存储在linux本地,测试偶尔用一下。我们上一节课使用的就是本地运行模式hadoop100。
2. 伪分布式。在一台机器上模拟出 Hadoop 分布式系统的各个组件,各个组件在逻辑上是分离的,但是都运行在同一台物理机器上,以此来模拟分布式环境。
3. 完全分布式。数据存储在HDFS,多台服务器工作,企业中大量使用。
要在本地去模拟这个真实的场景功能,我们需要做好如下的准备:
1)准备3台客户机(关闭防火墙、静态IP、主机名称)
2)安装javaJDK,安装Hadoop,并配置环境变量
3)配置集群
4)单点启动
5)配置ssh
6)群起并测试集群
其中,第1项我们在之前克隆虚拟机的环节中已经完成了。现在我们来看看按照JDK和Hadoop并配置环境变量的工作。有两种思路:
1. 每台机器都去手动安装一次(上传jar包再去解压)。
2. 把一台机器装好,把module 拷贝到其他的机器。这样就不需要省略了上传和解压的工作了。
(二)scp命令--基本使用
我们在前面的课中把hadoop100上安装了java,hadoop这个两个软件,那我们要如何才能把对于的文件拷贝到hadoop101上去?
现在要学一个新的命令: scp。它可以实现服务器与服务器之间的数据拷贝。
1.基本语法
scp -r $pdir/$fname $user@$host:$pdir/$fname
说明:
(1)-r: 表示递归拷贝。如果要拷贝的是文件夹,就把文件夹下的内容都拷贝
(2)$pdir/$fname: 要拷贝的文件路径/名称
(3)$user@host:$pdir/$fname: 目的地用户@主机:目的地路径/名称
注意:要输入相应的账号和密码!
2.案例操作
来,我们一起看下案例实操。
背景
假设你已经:
(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命令--拓展使用
上面的例子中,我们是登录到hadoop100,然后把这台机器上的文件传递到另一台机器上。根据当前登录位置的不同,它还有其他的用法。如:
拉取。在hadoop101上,拉取hadoop100机器上的内容(如下左图)。
推送。在hadoop100机器上,把文件推送到hadoop101机器上(如上右图)。
搭桥。在hadoop101机器上,把hadoop100的文件传递到hadoop102上
scp -r root@hadoop101:/opt/module/hadoop-3.1.3 /opt/module/
AI写代码
Scala
任务1:在hadoop102上,将hadoop101中/opt/module/hadoop-3.1.3目录拷贝到hadoop102上。
分析:使用scp进行拉取
操作:
先登录到hadoop2
使用命令:
scp -r root@hadoop101:/opt/module/hadoop-3.1.3 /opt/module/
AI写代码
Scala
任务2:在hadoop101上操作,将hadoop100中/opt/module目录下所有目录拷贝到hadoop102上。
分析:使用scp进行搭桥
操作:
登录hadoop101
使用命令:
scp -r root@hadoop100:/opt/module/* root@hadoop102:/opt/module
AI写代码
Scala