Hadoop_05_完全分布式运行模式(重点)

1.分发脚本

1) cp

(1)  基本语法:

cp     -r             source                             destination  

命令   递归       要拷贝的文件路径/名称    目的路径/名称

(2) 例子:

#将/abc目录下所有文件 复制到/def下
cp -r /abc /def

2) scp  (secure copy)安全拷贝

(1)scp定义:

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

(2)基本语法

scp     -r            source                            destination

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

(3)例子

#1.在hadoop131上,将hadoop131中/opt/module目录下的软件拷贝到hadoop132上。

scp -r hadoop131:/opt/module/hadoop-2.7.2   hadoop132:/opt/module

#2.在hadoop131上,将hadoop131中/etc/profile目录下的软件拷贝到hadoop132上。

scp   -r     hadoop131:/etc/profile      hadoop132:/opt/module 

(4)tips

(a)远程把Hadoop131上的/opt/module拷贝到Hadoop132相同的位置

  (b)只复制文件内容,不复制时间戳

  (c)命令执行拷贝位置不受限制,hadoop131,hadoop132两台机器都可以

3)rsync 远程同步工具

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

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

(1)基本语法

rsync    -rvl          source                                   destination

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

选项参数说明

选项

功能

-r

递归

-v

显示复制过程

-l

拷贝符号连接

(2)例子
 

#在hadoop132(需要拷贝的机器上执行命令),将hadoop131:/opt/module/jdk1.8.0_144拷贝到
#hadoop132:/opt/module下

rsync -rvl hadoop131:/opt/module/jdk1.8.0_144 /opt/module

rsync -rvl hadoop131:/etc/profile /etc/profile

(3)tips

//归档拷贝,完全拷贝

//只能在要拷贝的机器上执行命令

4)写个分发脚本(xsync)

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); 
then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环所有机器
for((host=132; host<135; host++));
 do
        echo ------------------- hadoop$host --------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

tips:

$# 是传给脚本的参数个数

$0 是脚本本身的名字

$1 是传递给该shell脚本的第一个参数

$2 是传递给该shell脚本的第二个参数

$@ 是传给脚本的所有参数的列表

$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

$$ 是脚本运行的当前进程ID号

$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

2.快速分发hadoop和java

(1)使用脚本分发java、hadoop、/etc/profile(配置环境变量,该文件需切换到root用户执行)

遇到问题:

a. Permission denied, please try again.如何解决?

解决方法:

         1)确认密码是否正确

         2)分发的路径没有这个文件夹 ,找不到相应路径

         3)普通用户ssh免密登陆(后续文章详细写!!!)

         4)切换到root用户执行命令,输入root用户密码!!!

b.Linux中 /etc/profile 环境变量配置错误导致 vi,yum,ll等命令无法使用,失效,如何解决?

解决方法: 

         1)在命令行中输入:export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin

         2) vi  /etc/profile 将配置的环境变量删除或者注释掉

         3)source  /etc/profile 使配置文件生效

(2)source /etc/profile    使配置文件生效

3.集群配置

详见下一篇文章:Hadoop_05_完全分布式运行模式(集群配置)

 

 

 

 

你可能感兴趣的:(大数据学习,大数据,hadoop)