Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx

上传人:b****6 文档编号:11959428 上传时间:2023-06-03 格式:DOCX 页数:16 大小:229.34KB
下载 相关 举报
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第1页
第1页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第2页
第2页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第3页
第3页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第4页
第4页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第5页
第5页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第6页
第6页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第7页
第7页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第8页
第8页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第9页
第9页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第10页
第10页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第11页
第11页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第12页
第12页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第13页
第13页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第14页
第14页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第15页
第15页 / 共16页
Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx

《Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx》由会员分享,可在线阅读,更多相关《Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx(16页珍藏版)》请在冰点文库上搜索。

Hadoop集群安装配置教程Hadoop260UbuntuCentOS.docx

Hadoop集群安装配置教程Hadoop260UbuntuCentOS

Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS

本教程讲述如何配置Hadoop集群,默认读者已经掌握了Hadoop的单机伪分布式配置,否则请先查看Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置。

本教程由厦门大学数据库实验室出品,转载请注明。

本教程适合于原生Hadoop2,包括Hadoop2.6.0,Hadoop2.7.1等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,保证按照步骤来,都能顺利安装并运行Hadoop。

另外有Hadoop安装配置简略版方便有基础的读者快速完成安装。

为了方便新手入门,我们准备了两篇不同系统的Hadoop伪分布式配置教程。

但其他Hadoop教程我们将不再区分,可同时适用于Ubuntu和CentOS/RedHat系统。

例如本教程以Ubuntu系统为主要演示环境,但对Ubuntu/CentOS的不同配置之处、CentOS6.x与CentOS7的操作区别等都会尽量给出注明。

环境

本教程使用Ubuntu14.0464位作为系统环境,基于原生Hadoop2,在Hadoop2.6.0(stable)版本下验证通过,可适合任何Hadoop2.x.y版本,例如Hadoop2.7.1,Hadoop2.4.1等。

本教程简单的使用两个节点作为集群环境:

一个作为Master节点,局域网IP为192.168.1.121;另一个作为Slave节点,局域网IP为192.168.1.122。

准备工作

Hadoop集群的安装配置大致为如下流程:

1.选定一台机器作为Master

2.在Master节点上配置hadoop用户、安装SSHserver、安装Java环境

3.在Master节点上安装Hadoop,并完成配置

4.在其他Slave节点上配置hadoop用户、安装SSHserver、安装Java环境

5.将Master节点上的/usr/local/hadoop目录复制到其他Slave节点上

6.在Master节点上开启Hadoop

配置hadoop用户、安装SSHserver、安装Java环境、安装Hadoop等过程已经在Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置中有详细介绍,请前往查看,不再重复叙述。

继续下一步配置前,请先完成上述流程的前4个步骤。

网络配置

假设集群所用的节点都位于同一个局域网。

如果使用的是虚拟机安装的系统,那么需要更改网络连接方式为桥接(Bridge)模式,才能实现多个节点互连,例如在VirturalBox中的设置如下图。

此外,如果节点的系统是在虚拟机中直接复制的,要确保各个节点的Mac地址不同(可以点右边的按钮随机生成MAC地址,否则IP会冲突):

VirturalBox中节点的网络设置

Linux中查看节点IP地址的命令为ifconfig,即下图所示的inet地址(注意虚拟机安装的CentoS不会自动联网,需要点右上角连上网络才能看到IP地址):

Linux查看IP命令

首先在Master节点上完成准备工作,并关闭Hadoop(/usr/local/hadoop/sbin/stop-dfs.sh),再进行后续集群配置。

为了便于区分,可以修改各个节点的主机名(在终端标题、命令行中可以看到主机名,以便区分)。

在Ubuntu/CentOS7中,我们在Master节点上执行如下命令修改主机名(即改为Master,注意是区分大小写的):

sudovim/etc/hostname

如果是用CentOS6.x系统,则是修改/etc/sysconfig/network文件,改为HOSTNAME=Master,如下图所示:

CentOS中hostname设置

然后执行如下命令修改自己所用节点的IP映射:

sudovim/etc/hosts

例如本教程使用两个节点的名称与对应的IP关系如下:

192.168.1.121Master

192.168.1.122Slave1

我们在/etc/hosts中将该映射关系填写上去即可,如下图所示(一般该文件中只有一个127.0.0.1,其对应名为localhost,如果有多余的应删除,特别是不能有“127.0.0.1Master”这样的记录):

Hadoop中的hosts设置

CentOS中的/etc/hosts配置则如下图所示:

CentOS中的hosts设置

修改完成后需要重启一下,重启后在终端中才会看到机器名的变化。

接下来的教程中请注意区分Master节点与Slave节点的操作。

需要在所有节点上完成网络配置

如上面讲的是Master节点的配置,而在其他的Slave节点上,也要对/etc/hostname(修改为Slave1、Slave2等)和/etc/hosts(跟Master的配置一样)这两个文件进行修改!

配置好后需要在各个节点上执行如下命令,测试是否相互ping得通,如果ping不通,后面就无法顺利配置成功:

pingMaster-c3#只ping3次,否则要按Ctrl+c中断

pingSlave1-c3

例如我在Master节点上pingSlave1,ping通的话会显示time,显示的结果如下图所示:

检查是否ping得通

继续下一步配置前,请先完成所有节点的网络配置,修改过主机名的话需重启才能生效。

SSH无密码登陆节点

这个操作是要让Master节点可以无密码SSH登陆到各个Slave节点上。

首先生成Master节点的公匙,在Master节点的终端中执行(因为改过主机名,所以还需要删掉原有的再重新生成一次):

cd~/.ssh#如果没有该目录,先执行一次sshlocalhost

rm./id_rsa*#删除之前生成的公匙(如果有)

ssh-keygen-trsa#一直按回车就可以

让Master节点需能无密码SSH本机,在Master节点上执行:

cat./id_rsa.pub>>./authorized_keys

完成后可执行sshMaster验证一下(可能需要输入yes,成功后执行exit返回原来的终端)。

接着在Master节点将上公匙传输到Slave1节点:

scp~/.ssh/id_rsa.pubhadoop@Slave1:

/home/hadoop/

scp是securecopy的简写,用于在Linux下进行远程拷贝文件,类似于cp命令,不过cp只能在本机中拷贝。

执行scp时会要求输入Slave1上hadoop用户的密码(hadoop),输入完成后会提示传输完毕,如下图所示:

通过scp向远程主机拷贝文件

接着在Slave1节点上,将ssh公匙加入授权:

mkdir~/.ssh#如果不存在该文件夹需先创建,若已存在则忽略

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

rm~/id_rsa.pub#用完就可以删掉了

如果有其他Slave节点,也要执行将Master公匙传输到Slave节点、在Slave节点上加入授权这两步。

这样,在Master节点上就可以无密码SSH到各个Slave节点了,可在Master节点上执行如下命令进行检验,如下图所示:

sshSlave1

在Master节点中ssh到Slave节点

配置PATH变量

(CentOS单机配置Hadoop的教程中有配置这一项了,这一步可以跳过)

在单机伪分布式配置教程的最后,说到可以将Hadoop安装目录加入PATH变量中,这样就可以在任意目录中直接使用hadoo、hdfs等命令了,如果还没有配置的,需要在Master节点上进行配置。

首先执行vim~/.bashrc,加入一行:

exportPATH=$PATH:

/usr/local/hadoop/bin:

/usr/local/hadoop/sbin

如下图所示:

配置PATH变量

保存后执行source~/.bashrc使配置生效。

配置集群/分布式环境

集群/分布式模式需要修改/usr/local/hadoop/etc/hadoop中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项:

slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。

1,文件slaves,将作为DataNode的主机名写入该文件,每行一个,默认为localhost,所以在伪分布式配置时,节点即作为NameNode也作为DataNode。

分布式配置可以保留localhost,也可以删掉,让Master节点仅作为NameNode使用。

本教程让Master节点仅作为NameNode使用,因此将文件中原来的localhost删除,只添加一行内容:

Slave1。

2,文件core-site.xml改为下面的配置:

fs.defaultFS

hdfs:

//Master:

9000

hadoop.tmp.dir

file:

/usr/local/hadoop/tmp

Abaseforothertemporarydirectories.

3,文件hdfs-site.xml,dfs.replication一般设为3,但我们只有一个Slave节点,所以dfs.replication的值还是设为1:

dfs.namenode.secondary.http-address

Master:

50090

dfs.replication

1

dfs.namenode.name.dir

file:

/usr/local/hadoop/tmp/dfs/name

dfs.datanode.data.dir

file:

/usr/local/hadoop/tmp/dfs/data

4,文件mapred-site.xml(可能需要先重命名,默认文件名为mapred-site.xml.template),然后配置修改如下:

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

Master:

10020

mapreduce.jobhistory.webapp.address

Master:

19888

5,文件yarn-site.xml:

yarn.resourcemanager.hostname

Master

yarn.nodemanager.aux-services

mapreduce_shuffle

配置好后,将Master上的/usr/local/Hadoop文件夹复制到各个节点上。

因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。

在Master节点上执行:

cd/usr/local

sudorm-r./hadoop/tmp#删除Hadoop临时文件

sudorm-r./hadoop/logs/*#删除日志文件

tar-zcf~/hadoop.master.tar.gz./hadoop#先压缩再复制

cd~

scp./hadoop.master.tar.gzSlave1:

/home/hadoop

在Slave1节点上执行:

sudorm-r/usr/local/hadoop#删掉旧的(如果存在)

sudotar-zxf~/hadoop.master.tar.gz-C/usr/local

sudochown-Rhadoop/usr/local/hadoop

同样,如果有其他Slave节点,也要执行将hadoop.master.tar.gz传输到Slave节点、在Slave节点解压文件的操作。

首次启动需要先在Master节点执行NameNode的格式化:

hdfsnamenode-format#首次运行需要执行初始化,之后不需要

CentOS系统需要关闭防火墙

CentOS系统默认开启了防火墙,在开启Hadoop集群之前,需要关闭集群中每个节点的防火墙。

有防火墙会导致ping得通但telnet端口不通,从而导致DataNode启动了,但Livedatanodes为0的情况。

在CentOS6.x中,可以通过如下命令关闭防火墙:

sudoserviceiptablesstop#关闭防火墙服务

sudochkconfigiptablesoff#禁止防火墙开机自启,就不用手动关闭了

若用是CentOS7,需通过如下命令关闭(防火墙服务改成了firewall):

systemctlstopfirewalld.service#关闭firewall

systemctldisablefirewalld.service#禁止firewall开机启动

如下图,是在CentOS6.x中关闭防火墙:

CentOS6.x系统关闭防火墙

接着可以启动hadoop了,启动需要在Master节点上进行:

start-dfs.sh

start-yarn.sh

mr-jobhistory-daemon.shstarthistoryserver

通过命令jps可以查看各个节点所启动的进程。

正确的话,在Master节点上可以看到NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer进程,如下图所示:

通过jps查看Master的Hadoop进程

在Slave节点可以看到DataNode和NodeManager进程,如下图所示:

通过jps查看Slave的Hadoop进程

缺少任一进程都表示出错。

另外还需要在Master节点上通过命令hdfsdfsadmin-report查看DataNode是否正常启动,如果Livedatanodes不为0,则说明集群启动成功。

例如我这边一共有1个Datanodes:

通过dfsadmin查看DataNode的状态

也可以通过Web页面看到查看DataNode和NameNode的状态:

http:

//master:

50070/。

如果不成功,可以通过启动日志排查原因。

伪分布式、分布式配置切换时的注意事项

1,从分布式切换到伪分布式时,不要忘记修改slaves配置文件;

2,在两者之间切换时,若遇到无法正常启动的情况,可以删除所涉及节点的临时文件夹,这样虽然之前的数据会被删掉,但能保证集群正确启动。

所以如果集群以前能启动,但后来启动不了,特别是DataNode无法启动,不妨试着删除所有节点(包括Slave节点)上的/usr/local/hadoop/tmp文件夹,再重新执行一次hdfsnamenode-format,再次启动试试。

执行分布式实例

执行分布式实例过程与伪分布式模式一样,首先创建HDFS上的用户目录:

hdfsdfs-mkdir-p/user/hadoop

将/usr/local/hadoop/etc/hadoop中的配置文件作为输入文件复制到分布式文件系统中:

hdfsdfs-mkdirinput

hdfsdfs-put/usr/local/hadoop/etc/hadoop/*.xmlinput

通过查看DataNode的状态(占用大小有改变),输入文件确实复制到了DataNode中,如下图所示:

通过Web页面查看DataNode的状态

接着就可以运行MapReduce作业了:

hadoopjar/usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jargrepinputoutput'dfs[a-z.]+'

运行时的输出信息与伪分布式类似,会显示Job的进度。

可能会有点慢,但如果迟迟没有进度,比如5分钟都没看到进度,那不妨重启Hadoop再试试。

若重启还不行,则很有可能是内存不足引起,建议增大虚拟机的内存,或者通过更改YARN的内存配置解决。

显示MapReduceJob的进度

同样可以通过Web界面查看任务进度http:

//master:

8088/cluster,在Web界面点击“TrackingUI”这一列的History连接,可以看到任务的运行信息,如下图所示:

通过Web页面查看集群和MapReduce作业的信息

执行完毕后的输出结果:

MapReduce作业的输出结果

关闭Hadoop集群也是在Master节点上执行的:

stop-yarn.sh

stop-dfs.sh

mr-jobhistory-daemon.shstophistoryserver

此外,同伪分布式一样,也可以不启动YARN,但要记得改掉mapred-site.xml的文件名。

自此,你就掌握了Hadoop的集群搭建与基本使用了。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2