hadoop学习经过虚拟机安装hadoop彻底分布式集群

要想深刻的学习hadoop数据分析技术,首要的任务是必需要将hadoop集群环境搭建起来,能够将hadoop简化地想象成一个小软件,经过在各个物理节点上安装这个小软件,而后将其运行起来,就是一个hadoop分布式集群了。html

说来简单,可是应该怎么作呢?不急,本文的主要目的就是让新手看了以后也可以亲自动手实施这些过程。因为本人资金不充裕,只能经过虚拟机来实施模拟集群环境,虽说是虚机模拟,可是在虚机上的hadoop的集群搭建过程也可使用在实际的物理节点中,思想是同样的。java

 

也许有人想知道安装hadoop集群须要什么样的电脑配置,这里只针对虚拟机环境,下面介绍下环境:node

CPU:Intel酷睿双核 2.2Ghzlinux

内存: 4G算法

硬盘: 320Gubuntu

系统:xpwindows

 

说完电脑的硬件配置,下面说说本人安装hadoop的准备条件:centos

1 安装Vmware WorkStation软件浏览器

有些人会问,为什么要安装这个软件,这是一个VM公司提供的虚拟机工做平台,后面须要在这个平台上安装linux操做系统。具体安装过程网上有不少资料,这里不做过多的说明。安全

2 在虚拟机上安装linux操做系统

在前一步的基础之上安装linux操做系统,由于hadoop通常是运行在linux平台之上的,虽然如今也有windows版本,可是在linux上实施比较稳定,也不易出错,若是在windows安装hadoop集群,估计在安装过程当中面对的各类问题会让人更加崩溃,其实我还没在windows上安装过,呵呵~

在虚拟机上安装的linux操做系统为ubuntu10.04,这是我安装的系统版本,为何我会使用这个版本呢,很简单,由于我用的熟^_^其实用哪一个linux系统都是能够的,好比,你能够用centos, redhat, fedora等都可,彻底没有问题。在虚拟机上安装linux的过程也在此略过,若是不了解能够在网上搜搜,有许多这方面的资料。

3 准备3个虚拟机节点

其实这一步骤很是简单,若是你已经完成了第2步,此时你已经准备好了第一个虚拟节点,那第二个和第三个虚拟机节点如何准备?可能你已经想明白了,你能够按第2步的方法,再分别安装两遍linux系统,就分别实现了第2、三个虚拟机节点。不过这个过程估计会让你很崩溃,其实还有一个更简单的方法,就是复制和粘贴,没错,就是在你刚安装好的第一个虚拟机节点,将整个系统目录进行复制,造成第二和第三个虚拟机节点。简单吧!~~

不少人也许会问,这三个结点有什么用,原理很简单,按照hadoop集群的基本要求,其中一个是master结点,主要是用于运行hadoop程序中的namenode、secondorynamenode和jobtracker任务。用外两个结点均为slave结点,其中一个是用于冗余目的,若是没有冗余,就不能称之为hadoop了,因此模拟hadoop集群至少要有3个结点,若是电脑配置很是高,能够考虑增长一些其它的结点。slave结点主要将运行hadoop程序中的datanode和tasktracker任务。

因此,在准备好这3个结点以后,须要分别将linux系统的主机名重命名(由于前面是复制和粘帖操做产生另两上结点,此时这3个结点的主机名是同样的),重命名主机名的方法:

Vim /etc/hostname

经过修改hostname文件便可,这三个点结均要修改,以示区分。

如下是我对三个结点的ubuntu系统主机分别命名为:master, node1, node2

 

基本条件准备好了,后面要干实事了,心急了吧,呵呵,别着急,只要跟着本人的思路,一步一个脚印地,必定能成功布署安装好hadoop集群的。

这里面还有问题网络配置:

虚拟机三种网络模式该如何上网指导

虚拟机下载地址:

VMware Workstation 10.0.0简体中文正式版官方下载地址

若是是零基础能够参考:

集群搭建必备,云技术基础:Linux及虚拟化知识学习指导(hadoop、openstack)

 

安装过程主要有如下几个步骤:

1、            配置hosts文件

2、            创建hadoop运行账号

3、            配置ssh免密码连入

4、            下载并解压hadoop安装包

5、            配置namenode,修改site文件

6、            配置hadoop-env.sh文件

7、            配置masters和slaves文件

8、            向各节点复制hadoop

9、            格式化namenode

10、            启动hadoop

11、      用jps检验各后台进程是否成功启动

12、      经过网站查看集群状况

                                                  

下面咱们对以上过程,各个击破吧!~~

1、           配置hosts文件

先简单说明下配置hosts文件的做用,它主要用于肯定每一个结点的IP地址,方便后续

master结点能快速查到并访问各个结点。在上述3个虚机结点上均须要配置此文件。因为须要肯定每一个结点的IP地址,因此在配置hosts文件以前须要先查看当前虚机结点的IP地址是多少,能够经过ifconfig命令进行查看,如本实验中,master结点的IP地址为:

          

若是IP地址不对,能够经过ifconfig命令更改结点的物理IP地址,示例以下:

          

经过上面命令能够将IP改成192.168.1.100。将每一个结点的IP地址设置完成后,就能够配置hosts文件了,hosts文件路径为;/etc/hosts,个人hosts文件配置以下,你们能够参考本身的IP地址以及相应的主机名完成配置

 

2、           创建hadoop运行账号

即为hadoop集群专门设置一个用户组及用户,这部分比较简单,参考示例以下:

sudo groupadd hadoop    //设置hadoop用户组

sudo useradd –s /bin/bash –d /home/zhm –m zhm –g hadoop –G admin   //添加一个zhm用户,此用户属于hadoop用户组,且具备admin权限。

sudo passwd zhm   //设置用户zhm登陆密码

su zhm   //切换到zhm用户中

上述3个虚机结点均须要进行以上步骤来完成hadoop运行账号的创建。

3、           配置ssh免密码连入

这一环节最为重要,并且也最为关键,由于本人在这一步骤裁了很多跟头,走了很多弯

路,若是这一步走成功了,后面环节进行的也会比较顺利。

SSH主要经过RSA算法来产生公钥与私钥,在数据传输过程当中对数据进行加密来保障数

据的安全性和可靠性,公钥部分是公共部分,网络上任一结点都可以访问,私钥主要用于对数据进行加密,以防他人盗取数据。总而言之,这是一种非对称算法,想要破解仍是很是有难度的。Hadoop集群的各个结点之间须要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,hadoop采用的是ssh的方法经过密钥验证及数据加解密的方式进行远程安全登陆操做,固然,若是hadoop对每一个结点的访问均须要进行验证,其效率将会大大下降,因此才须要配置SSH免密码的方法直接远程连入被访问结点,这样将大大提升访问效率。

         OK,废话就不说了,下面看看如何配置SSH免密码登陆吧!~~

(1)     每一个结点分别产生公私密钥。

键入命令:

以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,以下:

Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程以下:

 

用上述一样的方法在剩下的两个结点中如法炮制便可。

(2)     单机回环ssh免密码登陆测试

即在单机结点上用ssh进行登陆,看可否登陆成功。登陆成功后注销退出,过程以下:

注意标红圈的指示,有以上信息表示操做成功,单点回环SSH登陆及注销成功,这将为后续跨子结点SSH远程免密码登陆做好准备。

用上述一样的方法在剩下的两个结点中如法炮制便可。

(3)     让主结点(master)能经过SSH免密码登陆两个子结点(slave)

为了实现这个功能,两个slave结点的公钥文件中必需要包含主结点的公钥信息,这样

当master就能够顺利安全地访问这两个slave结点了。操做过程以下:

如上过程显示了node1结点经过scp命令远程登陆master结点,并复制master的公钥文件到当前的目录下,这一过程须要密码验证。接着,将master结点的公钥文件追加至authorized_keys文件中,经过这步操做,若是不出问题,master结点就能够经过ssh远程免密码链接node1结点了。在master结点中操做以下:

由上图能够看出,node1结点首次链接时须要,“YES”确认链接,这意味着master结点链接node1结点时须要人工询问,没法自动链接,输入yes后成功接入,紧接着注销退出至master结点。要实现ssh免密码链接至其它结点,还差一步,只须要再执行一遍ssh node1,若是没有要求你输入”yes”,就算成功了,过程以下:

如上图所示,master已经能够经过ssh免密码登陆至node1结点了。

对node2结点也能够用一样的方法进行,以下图:

Node2结点复制master结点中的公钥文件

 

Master经过ssh免密码登陆至node2结点测试:

第一次登陆时:

 

第二次登陆时:

表面上看,这两个结点的ssh免密码登陆已经配置成功,可是咱们还须要对主结点master也要进行上面的一样工做,这一步有点让人困惑,可是这是有缘由的,具体缘由如今也说不太好,听说是真实物理结点时须要作这项工做,由于jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。

对master自身进行ssh免密码登陆测试工做:

 

 

至此,SSH免密码登陆已经配置成功。

4、下载并解压hadoop安装包

关于安装包的下载就很少说了,不过能够提一下目前我使用的版本为hadoop-0.20.2,

这个版本不是最新的,不过学习嘛,先入门,后面等熟练了再用其它版本也不急。并且《hadoop权威指南》这本书也是针对这个版本介绍的。

         注:解压后hadoop软件目录在/home/zhm/hadoop下

5、配置namenode,修改site文件

         在配置site文件以前须要做一些准备工做,下载java最新版的JDK软件,能够从oracle官网上下载,我使用的jdk软件版本为:jdk1.7.0_09,我将java的JDK解压安装在/opt/jdk1.7.0_09目录中,接着配置JAVA_HOME宏变量及hadoop路径,这是为了方便后面操做,这部分配置过程主要经过修改/etc/profile文件来完成,在profile文件中添加以下几行代码:

而后执行:

让配置文件马上生效。上面配置过程每一个结点都要进行一遍。

到目前为止,准备工做已经完成,下面开始修改hadoop的配置文件了,即各类site文件,文件存放在/hadoop/conf下,主要配置core-site.xml、hdfs-site.xml、mapred-site.xml这三个文件。

Core-site.xml配置以下:

Hdfs-site.xml配置以下:

接着是mapred-site.xml文件:

6、配置hadoop-env.sh文件

 

这个须要根据实际状况来配置。

7、配置masters和slaves文件

根据实际状况配置masters的主机名,在本实验中,masters主结点的主机名为master,

因而在masters文件中填入:

    同理,在slaves文件中填入:

 

8、向各节点复制hadoop

向node1节点复制hadoop:

 

    向node2节点复制hadoop:

这样,结点node1和结点node2也安装了配置好的hadoop软件了。

9、格式化namenode

这一步在主结点master上进行操做:

注意:上面只要出现“successfully formatted”就表示成功了。

10、启动hadoop

这一步也在主结点master上进行操做:

 

11、   用jps检验各后台进程是否成功启动

在主结点master上查看namenode,jobtracker,secondarynamenode进程是否启动。

若是出现以上进程则表示正确。

在node1和node2结点了查看tasktracker和datanode进程是否启动。

先来node1的状况:

 

下面是node2的状况:

进程都启动成功了。恭喜~~~

 

12、   经过网站查看集群状况

    在浏览器中输入:http://192.168.1.100:50030,网址为master结点所对应的IP:



 

    在浏览器中输入:http://192.168.1.100:50070,网址为master结点所对应的IP:

 

至此,hadoop的彻底分布式集群安装已经所有完成,

相关文章
相关标签/搜索