构建Spark集群经典四部曲的第一部,从零起步构建Hadoop单机版本和伪分布式的开发环境,涉及:
(1)下载Hadoop所需的基本软件。
(2)安装每个软件。
(3)配置Hadoop单机运行模式并运行Wordcount示例。
(4)配置Hadoop伪分布式模式并运行Wordcount示例。
我们是在Windows 7上构建Hadoop的,此时需要VMware虚拟机、Ubuntu的ISO镜像文件、Java SDK的支持、Eclipse IDE平台、Hadoop安装包等。
(1)VMware虚拟机,笔者这里使用的是VMware Workstation 9.0.2 for Windows,具体的下载地址是https://my.VMware.com/cn/web/VMware/details?downloadGroup=WKST-902-WIN&productId=293&rPId=3526,如图2-1所示。
图2-1 下载VMware虚拟机
安装VMware时需要的序列码,读者需要从网络上下载。
(2)Ubuntu的ISO镜像文件,笔者这里使用的ubuntu-12.10-desktop-i386,具体下载地址为http://www.ubuntu.org.cn/download/desktop/alternative-downloads,如图2-2所示。
(3)Java SDK的支持,笔者使用的是最新的“jdk-7u60-linux-i586.tar.gz”,具体的下载地址是:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,如图2-3所示。
图2-2 Ubuntu的ISO镜像文件
图2-3 Java SDK的支持
(4)下载最新稳定版本的Hadoop,笔者下载的是“hadoop-1.1.2-bin.tar.gz”,具体官方下载地址为http://mirrors.cnnic.cn/apache/hadoop/common/stable/,下载后在本地保存,如图2-4所示。
图2-4 最新稳定版本的Hadoop
1.安装VMware虚拟机
第1步:单击“VMware-workstation-full-9.0.2-1031769”可执行文件,如图2-5所示。
图2-5 安装VMware虚拟机之第1步
第2步:按照默认流程安装即可,界面如图2-6所示。
图2-6 安装VMware虚拟机之第2步
第3步:输入产品序列码,如图2-7所示。
图2-7 安装VMware虚拟机之第3步
第4步:此时输入产品的序列码,单击“Enter”按钮进入下一步完成安装,界面如图2-8所示。
图2-8 安装VMware虚拟机之第4步
VMware安装完成后启动VMware虚拟机,主界面如图2-9所示。
图2-9 VMware虚拟机主界面
2.安装Ubuntu系统
Unbuntu系统是我们搭建Hadoop集群时最常用的操作系统之一,下面带领大家一步步完成在VMware虚拟机下Unbuntu系统的安装。
第1步:创建VMware新虚拟系统,如图2-10所示。
图2-10 创建新虚拟机之第1步
第2步:这里选择“Typical”的方式,单击“Next”按钮进入下一步,如图2-11所示。
图2-11 创建新虚拟机之第2步
第3步:选择稍后安装操作系统,单击“Next”按钮进入下一步,如图2-12所示。
图2-12 创建新虚拟机之第3步
第4步:选择安装Linux系统的Ubuntu版本,单击“Next”按钮进入下一步,如图2-13所示。
图2-13 创建新虚拟机之第4步
第5步:笔者这里选择了自定义系统的存放路径为“E:\VMware\Virtual Machines\Master”,单击“Next”按钮进入下一步,如图2-14所示。
图2-14 创建新虚拟机之第5步
第6步:这里默认安装的Ubuntu系统会占用20 GB的磁盘,当然也可以根据自己的磁盘情况进行调整,其他默认设置即可,单击“Next”按钮进入下一步,如图2-15所示。
图2-15 创建新虚拟机之第6步
第7步:单击“Next”按钮进入下一步,如图2-16所示,该图显示了根据前面的设置创建虚拟机的汇总信息。完成操作系统所在虚拟机的创建,并设置Ubuntu的ISO镜像路径。
图2-16 创建新虚拟机之第7步
第8步:单击“Finish”按钮完成新虚拟机的创建,如图2-17所示。
图2-17 完成新虚拟机的创建
接下来对创建的新虚拟机进行配置。
第1步:单击我们新创建的名称为Master的Ubuntu虚拟机,如图2-18所示。
图2-18 开始配置
第2步:在如图2-18所示界面上单击“CD/DVD(IDE)”进入如图2-19所示的界面。
图2-19 硬件配置
第3步:选择Ubuntu的ISO的具体存放路径,选择好单击“OK”按钮后的界面如图2-20所示。单击“OK”完成设置。
图2-20 选择ISO的具体存放路径
第4步:在图2-20左侧单击“Memory”,此时把我们虚拟的内存设置为2 GB,如图2-21所示。单击“OK”完成设置。
图2-21 设置内存大小
启动虚拟机,正式开启Ubuntu系统的安装。单击“Power on this virtual machine”启动虚拟机,此时进入Ubuntu的安装,如图2-22所示。
图2-22 开始Ubuntu的安装
等待一段时间后虚拟机自动进入如图2-23所示的欢迎界面。
图2-23 欢迎界面
单击“Install Ubuntu”进入Ubuntu的安装,如图2-24所示。
图2-24 安装Ubuntu第1步
一直单击“Continue”按钮进入下一步,如图2-25~图2-29所示。
图2-25 安装Ubuntu第2步
图2-26 安装Ubuntu第3步
图2-27 安装Ubuntu第4步
设置好用户名和密码等信息:
图2-28 安装Ubuntu第5步
进入自动安装过程:
图2-29 安装Ubuntu第6步
这个自动安装的过程需要大约5分钟,即完成了安装,如图2-30所示。
图2-30 完成安装
单击“Restart Now”重启系统,在如图2-31所示的界面输入自己的密码,即进入Ubuntu系统,如图2-32所示。
图2-31 输入密码
图2-32 进入Ubuntu系统
单击“Firefox Web Browser”进入如图2-33所示的界面,成功地访问了网络,表明Ubuntu系统安装成功。
图2-33 Ubuntu系统安装成功
3.登录和使用Ubuntu系统
为了简化权限等问题,下面我们以root用户的身份登录和使用Ubuntu系统,而Ubuntu在默认情况下并没有开启root用户,这需要我们做如下设置:
下面是笔者的具体操作:
第1步:进入root用户权限。
• 通过 sudo-s进入 root用户权限模式
• 输入密码,进入root模式:
此时我们发现已经是root用户了。
第2步:修改“/etc/lightdm/lightdm.conf”文件。
此时系统提示我们没有vim编辑器,必须安装vim编辑器:
输入“Y”完成安装。
此时再次修改“/etc/lightdm/lightdm.conf”文件:
进入文件:
此时输入“i”进入插入修改模式,把文件具体修改为:
按下“esc”,输入“:wq”保存退出。
第3步:启动root帐号。
sud opasswd root
按下回车键:
此时要求输入root账号的密码,设置好即可:
重新启动系统:
在此次进入的系统界面中输入密码,单击“Login”,输入“root”账户,进行如图2-34~图2-37所示的一系列操作即可发现账户已是“root”账户。
图2-34 输入密码
图2-35 输入“root”
图2-36 输入密码登录进系统
图2-37 登录进的账户为root账户
4.安装Java
第1步:打开终端,建立新目录“/usr/lib/java”。
第2步:把下载的JDK文件移到刚刚创建的“/usr/lib/java”中。
第3步:解压JDK文件。
解压完成的文件目录:
第4步:修改环境变量。
进入配置文件:
按下“i”进入INSERT模式,把Java的环境编写信息加入其中:
按下“esc”键回到正常模式,输入“:wg”命令保存并退出配置文件。
执行以下命令使配置文件的修改生效:
第5步:在终端中显示刚刚安装的Java版本,表明Java安装结束。
1.安装SSH
Hadoop是采用SSH进行通信的,此时要设置密码为空,即不需要密码登录,这样免去每次通信时都输入密码,安装如下:
输入“Y”进行安装并等待自动安装完成:
安装SSH完成后启动服务:
以下命令验证服务是否正常启动:
可以看到SSH正常启动。设置免密码登录,生成私钥和公钥:
在/root/.ssh中生成两个文件:id_rsa和id_rsa.pub,id_rsa为私钥,其中id_rsa.pub为公钥,我们将公钥id_rsa.pub追加到 authorized_keys中,因为authorized_keys用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容:
看看现在能否免密码登录SSH:
输入“yes”继续登录:
表明登录成功。
使用以下命令可以退出localhost:
再次登录进localhost的时候就不需要密码了:
2.安装rsync
我们的Ubuntu 12.10版本默认安装了rsync,可以通过以下命令来安装或者更新rsync:
第1步:安装Hadoop,笔者把下载下来的最新稳定版本的Hadoop保存在电脑本地的以下位置,如图2-38所示。
图2-38 Hadoop的保存方式
创建/usr/local/hadoop目录并把下载下来的Hadoop解压/usr/local/hadoop中:
第2步:在hadoop-env.sh配置Java安装信息。
进入/usr/local/Hadoop/Hadoop-1.2.1/conf:
打开hadoop-env.sh:
按下回车键即可进入该配置文件:
在前面我们Java安装在了“/usr/lib/java/jdk1.7.0_60”,此时在hadoop-env.sh配置文件加入如下配置信息保存退出即可。
使用source命令使hadoop-env.sh配置信息生效:
此时Hadoop的单机模式配置成功!
为了方便我们在开机启动后也可以立即使用Hadoop的bin目录下的相关命令,可以把bin目录配置到“~/.bashrc”文件中,此时开启启动后系统自动读取“~/.bashrc”文件的内容,就可以随时使用Hadoop的命令了:
修改后的文件内容:
保存退出,使用下面的命令使配置生效:
验证Hadoop的版本信息,使用“hadoop version”命令即可:
3.运行Hadoop自带的WordCount例子
首先在Hadoop的目录下创建一个input目录,并把conf下的所有文件复制到该目录下,需要如下命令即可:
使用Hadoop命令运行自带的wordcount程序并把结果输出到output中:
运行过程如下:
一直运行直到完成(因为运行过程有些长,中间省略了一些运行过程,只截取了开始和结束部分):
查看运行结果:
该命令执行后即显示出Wordcount运行input中若干个文件中单词统计结果,如下所示(只截取了其中一部分):
至此,单机模式的构建、配置和运行测试彻底成功!
伪分布模式主要涉及以下的配置信息:
(1)修改Hadoop的核心配置文件core-site.xml,主要是配置HDFS的地址和端口号。
(2)修改Hadoop中HDFS的配置文件hdfs-site.xml,主要是配置replication。
(3)修改Hadoop的MapReduce的配置文件mapred-site.xml,主要是配置JobTracker的地址和端口。
在具体操作前先在Hadoop目录下创建几个文件夹:
下面开始构建伪分布式的具体过程并进行测试。
第1步:配置core-site.xml文件。
第2步:进入core-site.xml文件。
配置后文件的内容如下所示。
使用“:wq”命令保存并退出。
第3步:配置hdfs-site.xml,打开文件。
打开后的文件:
配置后的文件:
输入“:wq”保存修改信息并退出。
第4步:修改mapred-site.xml配置文件。
进入配置文件:
修改后的mapred-site.xml配置文件的内容为:
使用“:wq”命令保存并退出。
通过上面的配置,我们完成了最简单的伪分布式配置。
接下来进行Hadoop的namenode格式化:
输入“Y”,完成格式化过程:
接下来启动Hadoop,如下所示。
使用Java自带的jps命令查询出所有的守护进程:
启动Hadoop!
接下来使用Hadoop中用于监控集群状态的Web页面(http://localhost:50070/dfshealth.jsp)查看Hadoop的运行状况,具体的页面分别如图2-39~图2-41所示。
图2-39 http://localhost:50030/jobtracker.jsp
图2-40 http://localhost:50060/tasttracker.jsp
图2-41 http://localhost:50060/tasttracker.jsp
上述Hadoop运行状态监控页面表明我们的伪分布式开发环境完全搭建成功!
接下来使用新建的伪分布式平台运行wordcount程序。
首先在dfs中创建input目录:
此时创建的文件因为没有指定HDFS具体的目录,所以会在当前用户“rocky”下创建“input”目录,查看Web控制台,如图2-42所示。
图2-42 查看Web控制台
复制文件:
复制后的“input”文件夹的内容如图2-43所示。
图2-43“input”文件夹的内容
和我们的Hadoop安装目录下的“conf”文件的内容是一样的。现在,在刚刚构建的伪分布式模式下运行wordcount程序:
运行完成后我们查看一下输出的结果:
部分统计结果如下:
此时到达Hadoop的Web控制台会发现我们提交并成功运行了任务,如图2-44所示。
图2-44 成功运行任务
最后在Hadoop执行完任务后,可以关闭Hadoop后台服务:
至此,Hadoop伪分布式环境的搭建和测试你完全成功!同时也意味着我们彻底完成了实验。