【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 概述-CSDN博客
【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行环境搭建-CSDN博客
【大数据进阶第二阶段之Hadoop学习笔记】Hadoop 运行模式-CSDN博客
目录
7.3、关闭 NodeManager 、 ResourceManager和 HistoryServer
7.4、启动 NodeManager 、 ResourceManage和 HistoryServer
1、Hadoop运行模式
Hadoop运行模式包括:本地模式 、伪分布式模式以及完全分布式模式。
本地模式:单机运行,只是用来演示一下官方案例。 生产环境不用。
伪分布式模式: 也是单机运行,但是具备 Hadoop集群的所有功能。一台服务器模拟一个分布式的环境 。个别缺钱的公司用来测试,生产环境不用。
完全分布式模式: 多台服务器组成分布式环境。 生产环境使用。
完全分布式模式搭建步骤:
(1)准备 3台客户机( 关闭防火墙、静态 IP、主机名称)
(2)安装 JDK
(3)配置环境变量
(4)安装 Hadoop
(5)配置环境变量
(6)配置集群
(7)单点启动
(8)配置ssh
(9)群起并测试集群
2、 编写集群分发脚本 xsync
2.1、scp (secure copy):安全拷贝
scp可以实现服务器与服务器之间的数据拷贝 。(from server1 to server2)
基本语法:
2.2、rsync远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和 scp区别: 用 rsync做文件的复制要比 scp的速度快, rsync只对差异文件做更新。 scp是把所有文件都复制过去。
基本语法:
2.3、xsync集群分发脚本
需求:循环复制文件到所有节点的相同目录下
需求分析:
rsync命令原始拷贝:
rsync -av /opt/module/ Tom@hadoop103:/opt/
期望脚本:xsync要同步的文件名称
期望脚本在任何路径都能使用 (脚本放在声明了全局环境变量的路径)
[Tom@hadoop102 bin]$ echo $PATH
脚本实现:在 /home/Tom/bin目录下创建 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 具有执行权限:
[Tom@hadoop102 bin]$ chmod +x xsync
测试脚本:
[Tom@hadoop102 bin]$ xsync /home/Tom/bin/
将脚本复制到 /bin中,以便全局调用:
[Tom@hadoop102 bin]$ sudo cp xsync /bin/
同步环境变量配置( root所有者)
注意:如果用了 sudo,那么 xsync一定要给它的路径补全。
[Tom@hadoop102 ~]$ sudo ./bin/xsync
让环境变量生效:
[Tom@hadoop103 ~]$ source /etc/profile
[Tom@hadoop104 ~]$ source /etc/profile
3、 SSH 无密登录配置
配置 ssh
基本语法:ssh 另一台电脑的 IP地址
无密钥配置
免密登录原理:
生成公钥和私钥
[Tom@hadoop102 .ssh]$ pwd
/home/Tom/.ssh
[Tom@hadoop102 .ssh]$ ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登录的目标机器上
[Tom@hadoop102 .ssh]$ ssh-copy-id hadoop102
[Tom@hadoop102 .ssh]$ ssh-copy-id hadoop103
[Tom@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:还需要在hadoop103 上采用 Tom账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
在hadoop104 上采用 Tom账号配置一下无密登录到hadoop102、hadoop103、hadoop104 服务器上。
在hadoop102 上采用root 账号,配置一下无密登录到hadoop102、hadoop103、hadoop104。
.ssh 文件夹下(~/.ssh)的文件功能解释
<