安装部署Hadoop集群.docx
- 文档编号:30037687
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:27
- 大小:1.01MB
安装部署Hadoop集群.docx
《安装部署Hadoop集群.docx》由会员分享,可在线阅读,更多相关《安装部署Hadoop集群.docx(27页珍藏版)》请在冰豆网上搜索。
安装部署Hadoop集群
安装部署Hadoop集群
课程名称:
云计算
实验名称:
安装部署Hadoop集群
学号:
姓名:
专业班级:
软件工程1班
指导教师:
实验时间:
2015年12月15日
目录
1hadoop简介1
2配置步骤1
2.1环境说明1
2.2网络配置2
2.2.1修改主机名2
2.2.2设定IP地址3
2.3配置hosts文件6
2.4配置免密登录7
2.4.1配置master免密登录所有slave7
2.4.2配置slave1免密登录master和slave29
2.4.3配置slave2免密登录master和slave110
2.5安装JDK10
2.6Hadoop集群安装11
2.6.1安装hadoop11
2.6.2配置hadoop(master主机)13
2.6.3配置hadoop(slave主机)17
3验证配置17
3.1格式化HDFS文件系统17
3.2启动hadoop18
3.3验证hadoop19
3.3.1jps命令验证19
3.3.2查看集群状态20
3.4网页查看集群21
3.5关闭hadoop22
4单词统计实验22
5实验总结25
1hadoop简介
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
它由许多元素构成,其最底部是HadoopDistributedFileSystem,简称HDFS,它存储Hadoop集群中所有存储节点上的文件。
HDFS的上一层是MapReduce引擎,该引擎由JobTrackers和TaskTrackers组成。
Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase,基本构成了Hadoop分布式平台的所有技术核心。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。
用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。
它主要有以下几个优点:
(1)高可靠性。
Hadoop按位存储和处理数据的能力值得人们信赖;
(2)高扩展性。
Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中;
(3)高效性。
Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快;
(4)高容错性。
Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配;
(5)低成本。
与一体机、商用数据仓库以及QlikView、YonghongZ-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
2配置步骤
2.1环境说明
集群包括3个节点,这个三个节点是用户名为hadoop-un的安装有CentOS6.7系统的虚拟机,这里虚拟机的安装过程略去。
三个节点中,1个master节点,2个slave节点,节点之间通过局域网连接,可以相互ping通。
节点IP地址设置如下:
机器名称
IP地址
master
192.168.137.150
slave1
192.168.137.151
Slave2
192.168.137.152
master主机主要配置Namenode和JobTracker的角色,负责总管分布式数据和分解任务的执行;2个slave主机配置Datanode和JobTracker的角色,负责分布式数据存储以及任务的执行。
2.2网络配置
2.2.1修改主机名
这里以master主机为例说明网络配置过程,另外两个主机的配置过程与master的配置过程相同。
为了方便管理使用,先修改主机的hostname。
先通过如下命令查看当前主机名:
如果当前主机名与规划的主机名不一致,可以修改/etc/sysconfig/network文件中”HOSTNAME”来使主机名与规划的相一致。
修改命令如下:
打开该文件后,将”HOSTNAME”后面的值改成规划的主机名,保存退出,重启该主机即生效。
修改后结果如下:
到这里,hostname修改完毕。
2.2.2设定IP地址
三台主机的配置过程都相同。
首先添加一块网卡(这里选择host-only模式),如图2-1。
图2-1添加网卡
然后查看该网卡的MAC地址,并复制,如图2-2。
图2-2查看MAC地址
编辑Autoeth1,检查该网卡MAC地址与刚才添加的host-only网卡的MAC地址是否一致。
如果不一致,则将host-only网卡的MAC地址粘贴到MAC的编辑框中,如图2-3。
图2-3确认MAC地址
切换到IPvSettings选项卡,如图2-4所示。
将Method改成Maual,即手动。
同时在Address栏目里添加相应的Address、netmask和gateway。
如果需要连接外网,则需要配置DNS服务器地址,以及在物理机的网卡里设置共享。
图2-4编辑网络
Apply即可。
到这里,网络设置完毕。
2.3配置hosts文件
"/etc/hosts"文件是用来配置主机的DNS服务器信息,是记载LAN内各主机的对应hostname和IP的对应情况。
当用户在进行网络连接时,首先查找该文件,寻找主机名(或域名)对应的IP地址。
这里配置hosts文件目的是后续试验中可以使用主机名来代替IP,方便使用。
打开”/etc/hosts”文件,命令如下:
在该文件末尾追加本实验所用三个主机的主机名和IP(注意要对应),保存退出即可。
结果如下图:
另外两台主机主机配置过程与上述过程相同。
配置完成后,通过ping命令进行测试配置效果。
部分测试结果如下:
2.4配置免密登录
配置免密登录的主要目的是方便在后续实验中传输文件,以及namenode节点对datanode节点的访问。
2.4.1配置master免密登录所有slave
以下操作,除非特殊说明,否则都是在master主机上操作。
(1)SSH免密登录原理
Master(NameNode|JobTracker)作为客户端,要实现无密码公钥认证,在连接到服务器Salve(DataNode|Tasktracker)上时,需要在Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的Slave上。
当Master通过SSH连接Salve时,Salve就会生成一个随机数并用Master的公钥对随机数进行加密,并发送给Master。
Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。
这就是一个公钥认证过程,其间不需要用户手工输入密码。
(2)master主机生成密钥对
如下图,先进入.ssh目录。
如果提示没有该目录的话,就运行”sshlocalhost”命令,其间需要输入本主机的密码。
然后在进入.ssh目录,运行”ssh-keygen–trsa”命令生成密钥对,其间会要求输入保存密钥对的文件路径,以及解析密钥的密码,这里采用系统默认的路径以及密码,所以都只需要按Enter就可以。
最后将在.ssh目录下生成公钥和私钥文件。
(3)配置免密登录本主机
如果.ssh目录下不存在authorized_keys文件,那么可以known_hosts文件重命名为authorized_keys。
运行”cat~/.ssh/id_rsa.pug>>~/.ssh/authorized_keys”命令,将刚才生成的公钥追加到authorized_kyes文件末尾。
此时可以验证免密登录本主机是否配置成功。
运行如下命令,如果没有要求输入密码,那么配置成功。
(4)配置免密登录slave1
运行如下命令,将master生成的id_rsa.pub文件复制到slave1主机的/home/master-un目录下
此时切换到slave1主机上运行命令。
运行如下命令将master主机的公钥追加到slave1主机的authorized_keys文件末尾。
(如果slave1主机的.ssh目录下不存在authorized_keys文件,则将known_hosts文件重名为authorzied_keys)
此时可以在master主机上运行”sshslave1”命令,测试配置是否成功。
出现如下结果则配置成功:
以同样的步骤配置master免密登录slave2。
2.4.2配置slave1免密登录master和slave2
这里不详细叙述,只要按照2.5.1节中的相应步骤配置即可。
2.4.3配置slave2免密登录master和slave1
这里不详细叙述,只要按照2.5.1节中的相应步骤配置即可。
2.5安装JDK
首先从Oracle官网下载jdk,这里使用版本是jdk-7u79-linux-x64。
将JDK上传至master主机。
这里有两种方式,第一种是如果有图形界面且安装了vmwaretools的话,可以直接将文件复制到/home/master-un/Documents目录下。
第二种是如果不是图形界面,那么需要使用FTP工具将文件上传至master主机。
这里采用第一种方式。
在/usr目录下创建java文件夹,将/home/master-un/Documents中的JDK文件复制到java文件夹中。
命令如下:
进入java文件夹中,通过如下命令是jdk-7u79-linux-x64.rpm获得可执行权限,并安装JDK。
进入”/etc/profile”文件:
在”/etc/profile”文件末尾追加Java环境变量,修改结果如下:
保存退出,运行”source/etc/profile”使修改生效:
到这里,JDK安装完毕。
接下来我们验证一下是否安装成功,最简单的验证方法是”运行java-version”命令:
如果出现类似上图的JDK版本信息,那么配置成功,否则,配置失败。
以相同的方式在另外两台主机上安装JDK,并配置环境变量。
2.6Hadoop集群安装
以下步骤,除特殊说明,均在master主机上操作。
2.6.1安装hadoop
首先从网上下载hadoop的安装包,这里使用版本是hadoop-1.0.0。
将hadoop-1.0.0.tar.gz上传至master主机。
这里有两种方式,第一种是如果有图形界面且安装了vmwaretools的话,可以直接将文件复制到/home/master-un/Documents目录下。
第二种是如果不是图形界面,那么需要使用FTP工具将文件上传至master主机。
这里采用第一种方式。
将/home/master-un/Documents中的hadoop-1.0.0.tar.gz文件复制到/usr文件夹中。
命令如下:
进入/usr目录,解压hadoop-1.0.0.tar.gz,命令如下:
解压完毕,可以在/usr目录下看到hadoop-1.0.0文件夹,为了方便配置,将该文件夹重命名为hadoop,命令如下:
如果使用的是非root用户操作,则需要给相应用户分配读权限,命令如下:
上述命令中,haddoop-un是你需要赋予读权限的用户名,冒号后面的master是该机器的主机名,最后一个hadoop是相应的文件夹。
此时可以将hadoop-1.0.0.tar.gz删除,命令如下:
将hadoop的安装路径追加到”/etc/profile”末尾,命令如下:
追加结果如下:
运行如下命令使修改生效:
2.6.2配置hadoop(master主机)
Hadoop配置文件在conf目录下,之前的版本的配置文件主要是Hadoop-default.xml和Hadoop-site.xml。
由于Hadoop发展迅速,代码量急剧增加,代码开发分为了core,hdfs和map/reduce三部分,配置文件也被分成了三个core-site.xml、hdfs-site.xml、mapred-site.xml。
core-site.xml和hdfs-site.xml是站在HDFS角度上配置文件;core-site.xml和mapred-site.xml是站在MapReduce角度上配置文件。
(1)配置hadoop-env.sh文件
该文件位于”/usr/hadoop/conf”目录下,运行如下命令进入hadoop-env.sh:
修改结果如下:
(2)配置core-site.xml文件
首先在hadoop目录下创建tmp文件夹,作为系统的临时目录:
该文件位于”/usr/hadoop/conf”目录下,运行如下命令进入core-site.xml:
修改结果如下:
备注:
如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:
/tmp/hadoo-hadoop。
而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。
(3)配置hdfs-site.xml文件
该文件位于”/usr/hadoop/conf”目录下,运行如下命令进入hdfs-site.xml:
修改结果如下:
备注:
replication是数据副本数量,默认为3。
这里因为只有两台datanodez主机,所以设置成2。
(4)配置mapred-site.xml文件
该文件位于”/usr/hadoop/conf”目录下,运行如下命令进入mapred-site.xml:
修改结果如下:
(5)配置masters文件
有两种配置方案:
第一种是修改masters文件中的localhost为master;第二种方案是将localhost修改为master主机的IP地址。
这里推荐使用第二种方案,因为如果忘记配置"/etc/hosts",局域网的DNS将失效,这样将无法找到相应主机。
但是如果用IP进行配配置,在网络畅通的情况下,将不存在这种问题。
该文件位于”/usr/hadoop/conf”目录下,运行如下命令进入masters:
修改结果如下:
(6)配置slaves文件
只有master主机需要配置slaves文件,配置方式同样有两种:
第一种是删除slaves文件中的localhost,然后添加slave1和slave2的主机名;第二种方案是删除slaves文件中的localhost,然后添加slave1和slave2的P地址。
这里推荐使用第二种方案。
该文件位于”/usr/hadoop/conf”目录下,运行如下命令进入slaves:
修改结果如下:
到这里master主机配置完成。
2.6.3配置hadoop(slave主机)
对于slave1和slave2主机,配置方法有两种:
第一种,根据2.7.2中的步骤,分别在slave1和slave2主机上操作一遍即可。
第二种,将master主机的/usr/hadoop文件夹分别复制到slave1主机和slave2主机的/usr目录下,命令如下:
同时需要分别在两个主机的/etc/profile文件末尾追加hadoop的安装路径。
3验证配置
3.1格式化HDFS文件系统
只需要在安装完成时格式化一次即可,以后不用再格式化。
格式化命令如下:
这里需要注意运行命令的路径。
如果运行时提示找不到命令,可以尝试使用”bin/Hadoopnamenode-format”命令。
3.2启动hadoop
在启动之前最好先关闭防火墙,命令如下:
使用”start-all.sh”命令启动hadoop,启动结果如下:
启动hadoop成功后,在master中的tmp文件夹中生成了dfs文件夹,在slave1和salve2中的tmp文件夹中均生成了dfs文件夹和mapred文件夹。
如下图所示:
3.3验证hadoop
3.3.1jps命令验证
用java自带的小工具jps查看进程,在master主机运行结果如下:
在slave1主机上运行结果如下:
在slave2主机上运行结果如下:
3.3.2查看集群状态
通过运行”Hadoopdfsadmin-report”查看集群状态,结果如下则状态正常:
3.4网页查看集群
(1)访问http:
//localhost:
50030,出现如下页面:
(2)访问http:
//localhost:
50070,出现如下页面:
3.5关闭hadoop
通过”stop-all.sh”关闭hadoop:
4单词统计实验
(1)从程序生成或者从网络摘取英文文档,该实验测试文档命名为mytest.txt(为了体现hadoop在处理大数据方面的优势,文档大小最好大于等于800M);
(2)将文档传入虚拟机/home/master-un/Documents目录下;
(3)通过如下命令,在HDFS上创建input文件夹:
(4)登录网页查看文件夹是否创建成功,如下图,可以看到input目录已创建成功:
(5)通过如下命令将测试文档上传至input目录下:
(6)登录网页查看测试文档是否上传成功,如下图,可以看到mytest.txt已上传成功:
(7)进入hadoop目录,可以看到该目录下有hadoop-example-1.0.0.jar文件,这是hadoop官方例程,其功能是统计文档中的单词数目。
接下来通过该程序来实验在hadoop上统计大数据量文本中的单词个数。
运行命令如下:
(8)运行结果如下图:
(9)通过网页查看统计结果。
在网页中的/output下的part-r-00000文件中可以查看本次实验统计的结果,部分结果如下图:
5实验总结
初次接触云计算与大数据,这方面知识都不了解,所以这次搭建hadoop的过程遇到很多问题。
在老师、同学和热心网友的帮助下,在我自己查阅各种资料之后,最后各种问题都成功解决,搭建好了hadoop平台,并利用hadoop官方例程体验了hadoop在处理大批量数据时的优势,同时也对hadoop的处理与实验过程有了初步的了解和认识,非常感谢在实验过程中帮助过我的人,谢谢你们。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安装 部署 Hadoop 集群