大数据01--基础部分(linux命令、分发脚本和免密登录)

大数据解决两个问题:①海量数据存储②海量数据运算(分布式计算)

CRTyua远程连接工具  虚拟机的ip地址 hostname -I

显示文件列表命令   ls (list)的缩写

-a 显示指定目录下的所有子目录与文件,包含隐藏文件

-l 以列表方式显示文件的详细信息      ll  等价于ls l       全类名

-h 显示文件大小

查看当前的绝对路径 命令 pwd(print working directory)

切换目录  cd (change directory) 更改当前的工作目录

cd .. 切换到上一级目录

创建文件夹   mkdir

    mkdir -p aaa/bbb/ccc    创建多级目录

删除文件或者目录  rm         文件或者目录名之间加空格可删除多个

创建文件 touch 

        touch 文件名   可加多个文件名(文件名之间加空格)(同时创建多个文件) 

文件、目录的移动和重命名   mv     有目录(目标路径)的话就是移动,没有话就是重命名

        mv  原路径 目标路径

 显示文件内容 cat 

        cat 路径

按行或按页显示文件内容 more

        more 路径 

目录或文件复制操作 cp

 查看系统当前运行的所有进程 ps

 终止执行的程序 kill

        -9 强制停止

 查看主机名  hostname

查看ip地址 ifconfig      用hostname -I

                结果中的inet

重启 reboot

关机

scp(secure copy)安全拷贝

将102的jdk传入103(102主动传)

scp -r jdk1.8.0_331/ xwt@hadoop103:/opt/module

将102的hadoop拉到103(103主动拉)

#主动拉到当前文件夹  ./ 
scp -r xwt@hadoop102:/opt/module/hadoop-3.1.3 ./

通过103将102的module下的所有拷贝到104module下

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

rsync远程同步工具  主要用于备份和镜像

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

xsync集群分发脚本 :一调用就能复制文件到所有节点的相同目录

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

#查看全局变量
[xwt@hadoop102 module]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_331/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/home/xwt/.local/bin:/home/xwt/bin

        因此我们把xsync脚本放在/home/xwt/bin 下。

        不放在全局环境变量的路径的话,自己创建后得把它添加到全局环境变量中,不如直接放在已经有的全局环境变量的路径下

#创建bin目录。然后再bin目录下创建我们的脚本
[xwt@hadoop102 ~]$ mkdir bin
[xwt@hadoop102 ~]$ ll
总用量 0
drwxrwxr-x. 2 xwt xwt 6 5月   3 16:37 bin
[xwt@hadoop102 ~]$ cd bin
[xwt@hadoop102 bin]$ pwd
/home/xwt/bin
[xwt@hadoop102 bin]$

 这里创建bin(mkdir bin)目录原因:我们只是先声明了,但是并没有创建真正的bin目录,等需要用到的时候再去创建也没事

vim 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"  #登录host 再host上创建
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done
#修改脚本 xsync 具有执行权限    文件所有者,群组和其他用户都可以读写执行
[xwt@hadoop102 bin]$ chmod 777 xsync
#测试脚本 讲hadoop102下的bin文件同步到hadoop103 hadoop104下
#因为脚本上只写了for host in hadoop102 hadoop103 hadoop104  所以只能复制到hadoop103 hadoop104
[xwt@hadoop102 ~]$ xsync /home/xwt/bin

同步环境变量配置(root所有者)(同步到102,103,104)

#加sudo 是为了再root权限下去执行xsync  防止找不到该命令
[xwt@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh

ssh免密登录

 A把公钥给B,就相当于有了能免密访问B的“权限”,但是B却无法免密访问A

配置Hadoop102无密登录103、104:

#生成公钥和私钥
[xwt@hadoop102 .ssh]$ ssh-keygen -t rsa
#然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

#将公钥拷贝到要免密登录的目标机器上
[xwt@hadoop102 .ssh]$ ssh-copy-id hadoop103
[xwt@hadoop102 .ssh]$ ssh-copy-id hadoop104
[xwt@hadoop102 .ssh]$ ssh-copy-id hadoop102

同样再103、104上这么配置 

 authorized_keys显示可以免密登录谁

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值