完全分布式部署Hadoop

之前搭建Hadoop集群,总是因为几处小细节,导致整个集群崩了,所以,就想把每个步骤和具体方案写下来,方便以后查阅。也给刚入门的同行一些帮助。这个集群实在是让人头痛~!o(╥﹏╥)o,涉及到很多步骤,所以会比较长,耐心看,会有收获滴~!

一、分析

(1)准备3台客户机(关闭防火墙、静态ip、主机名称)

(2)安装jdk

(3)配置环境变量

(4)安装hadoop

(5)配置环境变量

(6)安装ssh

(7)配置集群

(8)启动测试集群

二、虚拟机准备

1.准备一台被克隆的机器,要求虚拟机网络模式设置为NAT

2.克隆3台虚拟机,这个网上有很多案例,就不叙述了

三、修改静态IP

1)在终端命令窗口输入:vim /etc/udev/rules.d/70-persistent-net.rules

删除eth0行;将eth1修改为eth0,同时复制物理ip地址

2)修改IP地址:vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改IPADDR和HWADDR,其余的行原虚拟机已经配好了,就不用配了。

3)执行service network restart

4)如果报错,reboot,重启虚拟机

四、主机名设置

1)修改linux的hosts文件

(1)进入Linux系统查看本机的主机名:hostname

(2)通过编辑:vi /etc/sysconfig/network,修改主机名

(3)打开/etc/hosts:vim /etc/hosts,添加ip和主机名

(4)重启设备

注:一定要查看防火墙状态:chkconfig iptables --list

关闭防火墙:chkconfig iptables off

五、scp

装好3台虚拟机之后,在被克隆机的/opt目录建立两个文件夹module和software,分别存放包和解压后的文件,这里用hadoop101代表被克隆机,hadoop102,hadoop103,hadoop104代表3台虚拟机。

(1)将hadoop101中/opt/module和/opt/software文件分别拷贝到虚拟机(root)

scp -r /opt/module/ root@hadoop102:/opt

scp -r /opt/software/ root@hadoop102:/opt

注意:很多人都会遇到一个问题,就是用户的切换,这里要特别强调,一定要注意当前用户是谁,然后再进行操作。

(2)将192.168.1.102服务器上的文件拷贝到当前用户下(root)

scp root@hadoop102:/etc/profile /opt/tmp

(3)实现两台远程机器之间的文件传输(hadoop103主机文件拷贝到hadoop104主机上)(atguigu)

scp atguigu@hadoop103:/opt/test/haha atguigu@hadoop104:/opt/test

六、SSH无密码登录(重点)

这块特别重要,必须把所有机器都设置成功

1)配置ssh

基本语法:ssh 另一台电脑的ip地址

2)无密钥配置(注意用户是谁)

(1)进入我的home目录:cd ~/.ssh

(2)生成公钥和私钥:ssh-copy-t rsa

然后桥(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.put(公钥)

(3)将公钥拷贝到要免密登录的目标机器上:shh-copy-id 192.168.1.102

七、rsync

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

基本语法:

rsync       -rvl            $pdir/$fname                    $user@hadoop$host:$pdir

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

将本机/opt/tmp目录同步到103,104服务器的root用户下的/opt/tmp目录

rsync -rvl /opt/tmp/* root@hadoop103:/opt/tmp

八、编写集群分发脚本xsync

1)循环复制文件到所有节点的相同目录下,方便对文件的修改,节省很多时间,但要细心

(1)原始拷贝:rsync /opt/module root@hadoop103:/opt/

(2)期望脚本:xsynv 要同步的文件名称

(3)在/usr/local/bin这个目录下存放的脚本,就可以在系统任何地方直接执行,需要制定路径

①在/usr/local/bin目录下创建xsync文件,文件内容如下:

晓风岚月

②修改脚本xsync具有执行权限:chmod 777 xsync

③调用脚本形式:xsync 文件名称

九、编写分发脚本xcall

1)需求分析:在所有主机上同时执行相同命令:xcall +命令

2)具体实现

(1)在./usr/local/bin目录下创建xcall文件,文件内容如下:

(2)修改脚本xcall具有执行权限

(3)调用脚本形式:xcall操作命令:xcall rm -rf 文件目录

十、配置集群(重点)

1)集群部署规划

2)配置文件

这里一共需要配置多个文件,分别是:

core-site.xml;hadoop-env.sh;hdfs-site.xml;slaves;yarn-env.sh;yarn-site.xml;mapred-env.sh;mapred-site.xml;

①core-site.xml

②hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

③hdfs-site.xml

④slaves

hadoop102;hadoop103;hadoop104

⑤yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

⑥yarn-site.xml

⑦mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.7.0_79

⑧mapred-site.xml

3)在集群上分发以上所有文件

xysnc /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

……

4)查看文件分发情况

xcall cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves

十一、集群启动及测试

1)启动集群

(0)如果集群第一次启动,需要格式化namenode:bin/hdfs namenode -format

(1)启动HDFS:sbin/start-dfs.sh

(2)启动yarn:sbin/start-yarn.sh

注意:Namenode和ResourceManager如果不是同一台机器,不能在NameNode上启动yarn,应该在ResourceManager所在的机器上启动yarn.

如果集群启动失败,则需要删除data和logs文件,然后再次格式化文件;

rm -rf data/ log/

至此,集群搭建完毕。希望此篇能帮助到需要的人。~!

猜你喜欢

转载自blog.csdn.net/qq_40310148/article/details/86503396