完全分布式集群的搭建
1.进程规划
原则:
①核心进程尽量分散 ②同质进程尽量分散
2.集群间复制
①scp
scp -r 源文件的用户名@主机名:源文件路径 目标文件的用户名@主机名:目标文件路径 特点: 全量复制
②rsync
rsync -rvlt 源文件路径 目标文件的用户名@主机名:目标文件路径 源文件路径是个目录,源文件路径/,只会同步源文件目录中的内容! 源文件路径,不仅会同步源文件目录中的内容,包括目录本身也会进行同步!
3.配置ssh免密登录
如果A机器的a用户,希望使用b用户的身份,免密登录到B机器! 操作步骤:①a用户在A机器生成一对密钥(私钥+公钥) ssh-keygen -t rsa ②将公钥的内容,配置到b用户家目录/.ssh/authoxxx_keys ssh-copy-id b@B ③a用户在A机器,就可以使用 ssh b@B 如果在配置时,省略了用户名,那么默认使用当前操作的用户名作为目标机器的用户名! [a@A] ssh B 等价于 [a@A] ssh a@B
4.两种ssh的使用方式
①登录到目标主机,再执行命令
[a@A] ssh B [a@B] jps 属于Login-shell,默认读取/etc/profile文件!
②在A机器,执行命令
[a@A] ssh B jps 属于non-Login-shell,不会读取/etc/profile文件! 只会读取 ~/.bashrc 解决: 在a@B的~/.bashrc中配置 source /etc/profile 注意:当前主机也要配置自己到自己的SSH免密登录!
配置SSH的作用 :
①执行scp,rsync命令时,不需要输入密码,方便 ②在执行start-all.sh群起脚本时,需要输入密码
执行群起
①start-dfs.sh 可以在任意一台机器执行 ②start-yarn.sh 如果不在RM所配置的机器执行,那么不会启动RM 建议: 在RM所在的机器执行群起脚本! 只需要配置RM所在机器到集群其他机器的SSH免密登录! ③在执行群起时,默认读取当前机器 $HADOOP_HOME/etc/hadoop/slaves文件中,当前集群配置的主机名
6.集群的时间同步
一个集群中,每台机器的时间必须保证是同步的! 主要借助linux的ntp服务执行和远程时间服务器的时间同步! 保证当前机器的ntp服务是开机自启动! chkconfig --list ntpd 使用 ntpdate -u 时间服务器的地址