前言
上一篇文章《从0开始学大数据(3):Hadoop本地模式和伪分布模式的应用》我们学习了Hadoop的运行模式——伪分布模式的配置,这篇文章我们来学习另外一种Hadoop的运行模式——完全分布式模式。
配置完全分布式模式
首先我们来分析下我们的整体步骤:
- 1.准备三台客户机(关闭防火墙、静态ip、主机名称)
- 2.安装jdk
- 3.配置环境变量
- 4.安装hadoop
- 5.配置环境变量
- 6.安装ssh
- 7.配置集群
- 8.启动测试集群
通过前面的知识学习,我们的1-5步应该都没有问题了,只需要学习下面的三步就行,下面我们就来学习知识。
准备三台客户机
首先,我们通过Paralles虚拟机对我之前的Centos100
进行克隆,然后对配置进行修改
配置静态IP
- 切换用户
sudo su root
。遇见sudoers文件问题可以查看这篇文章。 - 使用命令
vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改静态IP地址。 - 命令
vi /etc/sysconfig/network
添加HOSTNAME=hadoop102
。 - 命令
vi /etc/hosts
添加ip地址 主机名
- 重启
reboot
忘记了回顾下这篇文章《从0开始学大数据(1):Parallels Desktop下CentOS系统的安装和静态IP地址配置》
安装hadoop
下面说下简单步骤:
- 切换用户
sudo su root
- 在
/opt
路径下,创建module
和software
来安装和存放安装包 - 使用命令
chown martin:martin module/ software
的拥有者改为martin用户 - 通过scp命令,虚拟机之间的安装包可以互传,这里传输时候密码最好都设置为一致的,不然以后写脚本很麻烦。
scp -r jdk-7u79-linux-x64.gz martin@hadoop102:/opt/software
-r
:表示递归文件或者文件夹
jdk-7u79-linux-x64.gz
:传递的文件或者文件夹
martin@hadoop102:/opt/software
:用户@主机名:制定路径
更多信息可以查看《Linux scp命令》
- 安装jdk,使用命令
tar -zxvf [JDK安装包] -C [指定路径]
完成安装。 - 安装hadoop,使用命令
tar -zxvf [Hadoop安装包] -C [指定路径]
完成安装。
忘记了回顾下这篇文章《从0开始学大数据(2):大数据的概论和Hadoop安装》,按照上面的步骤,我们创建出三台虚拟机。
配置无密登陆
平常在我们使用登陆的ssh命令的时候,都需要输入密码这种方式比较麻烦,所以我们可以使用ssh生成密钥对,并且将公钥推送给我们想要登陆的服务器集群,这样就配置好无密登陆了。
- 进入~/.ssh文件
cd ~/.ssh
- 使用ssh命令生成密钥对。
ssh-keygen -t rsa
- 使用命令将公钥推送到某一台集群上
ssh-copy-id hadoop103
这里需要注意的是,我们需要将免密登陆配置在hadoop102
,hadoop103
,hadoop103
上,后面启动集群的时候如果没有配置无法启动起来。
rsync远程同步工具
rsync命令是一个远程数据同步工具。
- 基本语法
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
命令 命令参数 要拷贝的文件路径/名称 目的用户@主机:目的路径
r : 递归 -v:显示复制过程 -l:拷贝符号链接
编写集群分发脚本xync脚本
我们在hadoop102
配置好文件后,如果需要同步到各个服务器(hadoop103,hadopp104)上,只需要执行该脚本就不用登陆每台服务器修改同步了,非常方便。
- 在
/usr/local/bin
目录下创建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);