大数据系列(3)——Hadoop集群彻底分布式坏境搭建

前言html

上一篇咱们讲解了Hadoop单节点的安装,而且已经经过VMware安装了一台CentOS 6.8的Linux系统,我们本篇的目标就是要配置一个真正的彻底分布式的Hadoop集群,闲言少叙,进入本篇的正题。java

技术准备node

VMware虚拟机、CentOS 6.8 64 bitgit

安装流程vim

咱们先来回顾上一篇咱们完成的单节点的Hadoop环境配置,已经配置了一个CentOS 6.8 而且完成了java运行环境的搭建,Hosts文件的配置、计算机名等诸多细节。浏览器

其实完成这一步以后咱们就已经完成了Hadoop集群的搭建的一半的工做了,由于咱们知道经过虚拟机搭建所搭建的好处就是直接拷贝机器。多台同步进行操做,减小分别配置的时间消耗浪费。这也是虚拟化技术所带来的优点。安全

 

下面,我们进去分布式系统的详细操做过程。服务器

一、首先须要在VMWare中将以前建立的单实例的计算机进行拷贝。网络

这里根据以前第一篇文章的规划,咱们至少须要再克隆出三台计算机,做为DataNode数据节点的数据存储。以前的上一台机器做为Master主节点进行管理。架构

这里先来梳理一下整个Hadoop集群的物理架构图,你们有一个直接的观念和认识,上表中已经和明确了,总共须要5台服务器来使用,四台用来搭建Hadoop集群使用,另一台(可选)做为MySQL等外围管理Hadoop集群来使用。

咱们在开发的时候通常也是直接经过链接外围的这台机器来管理Hadoop整个集群。

根据上面的物理规划图应该对整个架构有一个清晰的认识了,好,我们进行实操。

关于在VMWare中进行虚拟机的拷贝是一个比较简单的过程。截图以下:

而后,就是下一步就好了,这里须要记住的是,必定要选择克隆一个完整的而不是快照。

而后,根据计算机名输入机器名就能够了。克隆以后的机器以下:

 

 

二、配置各个Slave节点的机器信息。

关于各个Slave服务器的配置基本分为以下基本部分:

  • 首先须要手动更改各个从节点的计算机名和Hosts文件(必须!)
  • 而后配置各个从节点的内存值,在第一篇的文章中我已经分析过了,这里能够将这里的内存值设置的比Master节点少点,(土豪公司忽略!)
  • 最后配置的就是存储了,这个本身根据以前的计算公式计算出来就能够了。

首先,进入各个机器中更改Hosts文件和计算机名,在上一篇文章我已经介绍过了,你们能够上一篇翻阅,这里直接写出脚本以下:

vim /etc/sysconfig/network
vim /etc/hosts

 

计算机名和Hosts配置文件按照以前规划完成就好了,一样网络的IP地址也是按照规划设置成固定的地址。

在配置完这一切以后,重启完各个机器以后,确保各个节点之间能够ping 通(重点!!!)。

 

而后剩下的内存配置,直接关闭掉虚拟机,在VMWare中进行设置就能够了,很简单。

这里根据须要自行调整,而后若是能够的话,尽可能将主节点Master的CUP处理器设置成多路多核,这样设置的缘由,我第一篇文章中就已经详细分析过了。

 

至此,各个服务器的基础配置已经完成了。

通过上面一系列流程,你们是否是发现经过虚拟机拷贝这种方式省去了好多额外的配置时间,好比:装操做系统、下载Hadoop安装包、搭建Java环境等。

 

三、配置SSH无密码配置。

先来解释下SSH的概念和用途;

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为创建在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登陆会话和其余网络服务提供安全性的协议。利用 SSH 协议能够有效防止远程管理过程当中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其余操做平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎全部UNIX平台—包括HP-UXLinuxAIXSolarisDigital UNIXIrix,以及其余平台,均可运行SSH。

上面就是SSH的官方含义了,摘自百度百科。

下面,我来总结下SSH在Hadoop集群中的用途。

所谓的SSH简单一句话就是:同一用户无密码登陆到各台机器。 其实,就是全部的Hadoop集群中做为分布式的一个计算框架,须要对各个节点的服务进行操做,而操做的过程当中须要统一由一个相同的用户进行操做,可是同一用户登陆不一样的服务器都须要密码或者密钥进行身份验证。为了不这个验证过程就使用了统一的一种安全协议:SSH。

其实,SSH的原理很简单,就是提早将统一用户的密码进行加密造成密钥进行分发,而后分发到各个服务器中,各个服务器对这个秘钥加入到当前的系统用户组中,这样这个用户登陆的时候就不须要输入密码进行登陆操做了。

但愿,我上面的讲解各位看官能看明白里面的含义。

下面我们来实际操做:

  • 首先进行sshd的配置文件的修改,去掉默认注释,开启SSH验证功能(以root用户进行操做)。  
 vim /etc/ssh/sshd_config

将上面的这三行数据的注释“#”去掉进行,保存。这里记住了!全部的机器都要这么依次进行设置。

简要的解释下上面三行数据的含义:一、第一个RSAAuthentication是指开启SSH验证,二、PubkeyAuthetication是指能够经过公钥进行验证,三、AuthorizedkeysFile则指的的是公钥存放的位置。

记住,完成配置以后,重启该服务,脚本以下:

 /sbin/service sshd restart 

能够验证下,好比这里我这里直接SSH登陆本机系统:

ssh localhost

这里能够看到,丫让我输入密码,因此说这里只是开启了SSH验证,可是没有生成密钥,进行设置。

   

  •  加工生成证书公私钥,分发到各个服务器(以Hadoop用户操做)。

这个步骤就是上面我分析的过程,咱们须要在Master节点上生成Hadoop用户的公钥,而后将这个公钥分发给各个slave节点,而后这样在Master机器上就能够用Hadoop无密码登陆到各个salve机器上面了。

步骤以下:

ssh-keygen -t  rsa -P ''

这里的-P后面‘P’是大写的。

上面我用红框勾出的路径就是公钥和私钥生成的默认路径。

而后,下一步就是将这个公钥复制到各个slave节点中去、

经过如下Linux命令进行远程文件的复制,脚本命令以下:

scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/

咱们这里面要复制的公钥文件存在默认的路径“/home/hadoop/.ssh”,因此执行的命令就是

scp ~/.ssh/id_rsa.pub hadoop@192.168.1.51:~/

而后,咱们须要登陆192.168.1.51的salve01的机器将刚才生成的公钥加入的本地的权限验证组里面去。

 cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

上面的命令是要在Slave01的机器上进行的,而且使用hadoop用户今次那个操做。

最后,咱们来回到Master机器上面进行,ssh验证。

SSH验证的命令很简单,格式以下:

SSH  <远程IP && 域名>

因此,这里我们在master机器上登陆slave01机器上实验下,看是否还须要进行密码输入。

ssh slave01.hadoop

经过上面的命令窗口能够看到,咱们已经成功的从Master机器上面无密码的登陆到Slave01机器上面了。那么说明刚才的配置生效了。

 

  •  参照上面的步骤将各个Slave节点配置完成。

这里须要配置的剩下的两个Slave节点进行无密码登陆了,详细的操做过程参照上面的流程就能够了,须要的注意的是:在Master生成密钥只须要生成一次就能够了,不要再次生成!由于每次生成觉得着全部的节点都须要从新配置。

配置完成以后的效果,就是要保证在master机器上面的hadoop用户可以无需密码的登陆到各个slave节点上进行操做就能够。

 通过上面的操做,已经确保咱们的Master机器能够毫无障碍的操做各个子节点Slave了。

 

  •  参照上面的步骤将各个Slave节点SSH到Master机器。

咱们知道,通过上面的一系列操做以后,咱们的Master主节点能够顺利的操控各个Slave节点了,可是,这里须要注意的是,为了保证各个Slave机器和Master机器进行通讯。

须要保证各个Slave节点可以无密码登陆Master机器,操做步骤如上面。

这么操做的理由很简单,各个Slave子节点干完Master分配的任务以后,须要有权限反馈至他们的老大Master!

好了,到此,咱们已经完成了整个集群的SSH配置了。

这里再次强调,上面的步骤要必定完成验证,要不之后的Hadoop操做会很出现各类诡异的问题,让你措手不及,这都是经验!!

 

四、配置Hadoop集群配置。

好了,到此咱们须要对各个机器上面的Hadoop进行配置了。咱们知道这里的全部的机器都是从一台机器上面的拷贝过来,由于咱们在这个机器上面已经安装了单实例的Hadoop,参照上一篇文章。

那么,下一步的步骤就是将这个单节点的配置成一个真正的分布式集群,充分利用咱们刚才搭建的几台Server进行性能的最大发挥。

这里的配置不是不少,只须要更改一下几个文件就能够了。

  • 首先进行slaves文件的配置,指定该集群的各个Slave节点的位置(以hadoop用户进行操做)。  

这个只须要在Master的机器上面进行就能够了,固然,若是不介意能够保持全部的机器上面的Hadoop配置同样就能够了。执行命令以下

vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/slaves

而后,将各个Slave的IP或者机器名写入就能够了,一台机器一行数据。这里我写的是IP.

这样就能够了。

  • 而后,在更改hdfs-site.xml文件中的dfs.replication属性值。

关于这个值我以前已经解释过了,由于咱们如今不是单台机器了,因此将这个节点更改为3或者更大的数,由于我们就四台机器,因此这里就配置成3能够了。记住:只能是奇数!

 

 vim /usr/hadoop/hadoop-2.6.4/etc/hadoop/hdfs-site.xml 

 

 <property>
  <name>dfs.replication</name>
  <value>3</value>
 </property>

这里须要注意的是,全部的机器都要这样配置

 

 5、启动Hadoop集群,验证是否成功。

到此,咱们基本完成了一个Hadoop彻底分布式的集群配置。下面的内容就是咱们来验证一下是否可用。

验证方式就很简单了,首先咱们先来执行一个HDFS格式的命令,这个在上一篇咱们已经分析过了,由于,我们这里改为彻底分布式的集群,因此这里须要从新格式。

bin/hadoop namenode -format

 

  • 首先,咱们来验证一下整个集群的HDFS是否正常可用。

启动整个集群的HDFS,在Master机器上面,用hadoop用户操做,命令以下:

start-dfs.sh

咱们经过浏览器来查看整个集群的HDFS状态,地址为:http://192.168.1.50:50070/dfshealth.html#tab-overview

能够看到,当前咱们的Hadoop集群的HDFS集群已经成功启动,而后咱们来看整个集群的存储和节点数;

从上面的截图咱们能够看到,当前的集群存在四个DataNode节点,就是刚才咱们配置的Slave文件的IP.这说明咱们配置的集群HDFS可以正常运行。

 

  • 而后,咱们来验证一下整个集群的YARN分布式计算框架是否正常可用。

一样的方式,咱们首先来启动Yarn.脚本以下:

start-yarn.sh

咱们经过浏览器来查看整个集群的Hadoop集群状态,地址为:http://192.168.1.50:8088/

 

能够看到,当前的Hadoop集群已经存在四个正在运行的节点,并且跑的很Happy.后面的文章我将跟你们分析如何使用这个Hadoop集群。

 

结语

此篇先到此吧,关于Hadoop大数据集群的搭建后续依次介绍,好比利用Zookeeper搭建Hadoop高可用平台、Map-Reducer层序的开发、Hive产品的数据分析、Spark的应用程序的开发、Hue的集群坏境的集成和运维、Sqoop2的数据抽取等,有兴趣的童鞋能够提早关注。

本篇主要介绍了搭建一个彻底分布式的Hadoop集群,后面咱们会逐渐完善它,我会教你如何一步步的使用彻底分布式的Hadoop集群,而后教你如何使用它,骚年...不要捉急...让思惟飞一会...

有问题能够留言或者私信,随时恭候有兴趣的童鞋加大数据平台深刻研究。共同窗习,一块儿进步。 

 

文章的最后给出上一篇的基础篇:

大数据系列(1)——Hadoop集群坏境搭建配置 

大数据系列(2)——Hadoop集群坏境CentOS安装

 

若是您看了本篇博客,以为对您有所收获,请不要吝啬您的“推荐”。

相关文章
相关标签/搜索