26-29-Hadoop-入门-本地运行模式

51 篇文章 1 订阅
27 篇文章 0 订阅

26-Hadoop-入门-本地运行模式

Hadoop集群三种模式:

  • 本地(独立)模式:数据存储在linux本地。测试环境偶尔用
  • 伪分布式模式:数据存储在HDFS。小公司
  • 全分布式模式:完全分布式,数据存储在HDFS,多台服务器工作。正常部署使用

本地模式测试:

1)创建在 hadoop-3.1.3 文件下面创建一个 wcinput 文件夹

[root@hadoop102 hadoop-3.1.3]# mkdir wcinput

2)在 wcinput 文件下创建一个 word.txt 文件

[root@hadoop102 hadoop-3.1.3]# cd wcinput

3)编辑 word.txt 文件

[root@hadoop102 hadoop-3.1.3]# vim word.txt

➢ 在文件中输入如下内容

hadoop yarn

hadoop mapreduce

atguigu

atguigu

➢ 保存退出::wq

4)回到 Hadoop 目录/opt/module/hadoop-3.1.3**

5)执行程序**

[root@hadoop102 hadoop-3.1.3]#

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput/ wcouput

hadoop命令,执行jar包中的wordcount,wcinput输入路径 wcoutput输出路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tjogJEFi-1668925679610)(png\image-20210310201021138.png)]

6)查看结果

cat wcouput/part-r-00000

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WIKeFRUJ-1668925679614)(png\image-20210310201051524.png)]

scp(secure copy)安全拷贝

(1)scp 定义

scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)

(2)基本语法

scp -r p d i r / pdir/ pdir/fname u s e r @ user@ user@host: p d i r / pdir/ pdir/fname

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

前提:在 hadoop102、hadoop103、hadoop104 都已经创建好的/opt/module

1、将hadoop102上的jdk拷贝到hadoop103服务器上,随后到103看一下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yA4LcwTx-1668925807923)(png\image-20210311105154747.png)]

[root@hadoop102 module]# scp -r jdk1.8.0_212/ root@192.168.10.103:/opt/module

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oSYZNt4K-1668925807924)(png\image-20210311105226166.png)]

2、在 hadoop103 上,将 hadoop102 中/opt/module/hadoop-3.1.3 目录拷贝到

hadoop103 上。

[root@hadoop103 module]# scp -r root@192.168.74.102:/opt/module/hadoop-3.1.3 ./

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fL0dLsLc-1668925807924)(png\image-20210311105741494.png)]

3、在 hadoop103 上操作,将 hadoop102 中/opt/module 目录下所有目录拷贝到

hadoop104 上。104环境上将获取到数据。

[root@hadoop103 module]# scp -r root@192.168.10.102:/opt/module/* root@192.168.10.104:/opt/module/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vv1jZvAw-1668925807925)(png\image-20210311110456550.png)]

rsync 远程同步工具

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

rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更

新。scp 是把所有文件都复制过去。

(1)基本语法

rsync -av p d i r / pdir/ pdir/fname u s e r @ user@ user@host: p d i r / pdir/ pdir/fname

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

选项 功能

-a 归档拷贝

-v 显示复制过程

(2)案例实操

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

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

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

[root@hadoop102 module]# rsync -av hadoop-3.1.3/ root@192.168.74.103:/opt/module/hadoop-3.1.3

刚刚删除的文件会被同步过来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZ0XasWq-1668925807925)(png\image-20210311112135261.png)]

xsync 集群分发脚本

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

(2)需求分析:

(a)rsync 命令原始拷贝:

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

(b)期望脚本:

xsync 要同步的文件名称

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

[root@hadoop102 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/root/bin

(3)脚本实现

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

[root@hadoop102 ~]# touch a.txt
[root@hadoop102 ~]# mkdir bin
[root@hadoop102 ~]# cd bin/
[root@hadoop102 bin]# vim xsync

在该文件中编写如下代码

#!/bin/bash
#1. 判断参数个数

if [ $# -lt 1 ]
then
	echo Not Enough Arguement!
	exit;
fi

#2. 遍历集群所有机器

for host in 192.168.10.102 192.168.10.103 192.168.10.104
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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1CecocyN-1668925933803)(png\image-20210311130137241.png)]

(b)修改脚本 xsync 具有执行权限

[root@hadoop102 bin]# chmod 777 xsync

(c)测试脚本

[root@hadoop102 ~]# xsync bin/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SIiEEQmE-1668925933803)(png\image-20210311141817333.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J6VhnTjQ-1668925933804)(png\image-20210311141908163.png)]

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

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

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

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

让环境变量生效

[root@hadoop103 bin]$ source /etc/profile

ssh免密登陆原理图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YWjDnTQy-1668926141143)(png\image-20210312094304078.png)]

配置 ssh

(1)基本语法

ssh 另一台电脑的 IP 地址

(2)ssh 连接时出现 Host key verification failed 的解决方法

[root@hadoop103 ~]# ssh 192.168.74.102
root@192.168.74.102’s password:
Permission denied, please try again.
root@192.168.74.102’s password:
Activate the web console with: systemctl enable --now cockpit.socket

Last failed login: Thu Mar 11 20:42:07 EST 2021 from 192.168.74.103 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Thu Mar 11 20:37:31 2021 from 192.168.74.10
[root@hadoop102 ~]# exit
注销
Connection to 192.168.74.102 closed.

1、配置无密登陆,以hadoop102服务器为主:

[root@hadoop102 ~]# ls -al/

2、进入到用户目录下的.ssh文件,生成公钥和私钥,连续三次回车。

[root@hadoop102 .ssh]# ssh-keygen -t rsa

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cSQcgoG8-1668926141143)(png\image-20210312094926601.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOveP9eX-1668926141144)(png\image-20210312095108663.png)]

3、将公钥拷贝到要免密登录的目标机器上,第一次需要输入密码。A服务器和B服务器之间达成协议。

[root@hadoop102 .ssh]# ssh-copy-id 192.168.74.102

[root@hadoop102 .ssh]# ssh-copy-id 192.168.74.103

[root@hadoop102 .ssh]# ssh-copy-id 192.168.74.104

[root@hadoop102 .ssh]# ssh 192.168.74.103

[root@hadoop103.ssh]# hostname

root@hadoop103.ssh]# exit

4、查看103服务器免密登陆的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5107IzTe-1668926141144)(png\image-20210312095628527.png)]

注意:

还需要在 hadoop103 上采用 root账号配置一下无密登录到 hadoop102、hadoop103、

hadoop104 服务器上。

例子:

[root@hadoop103 .ssh]# ssh-keygen -t rsa

[root@hadoop103 .ssh]# ssh-copy-id 192.168.74.102

[root@hadoop103 .ssh]# ssh-copy-id 192.168.74.103

[root@hadoop103 .ssh]# ssh-copy-id 192.168.74.104

还需要在 hadoop104 上采用 root账号配置一下无密登录到 hadoop102、hadoop103、

hadoop104 服务器上。

还需要在 hadoop102 上采用 root 账号,配置一下无密登录到 hadoop102、hadoop103、

hadoop104;

3).ssh 文件夹下(~/.ssh)的文件功能解释

known_hosts 记录 ssh 访问过计算机的公钥(public key)

id_rsa 生成的私钥

id_rsa.pub 生成的公钥

authorized_keys 存放授权过的无密登录服务器公钥

注,学习路径:https://space.bilibili.com/302417610/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值