大数据解决两个问题:①海量数据存储②海量数据运算(分布式计算)
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显示可以免密登录谁