百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Hadoop教程:Hadoop分布式环境搭建

yuyutoo 2025-02-17 14:38 8 浏览 0 评论

前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下。

在这里,我们采用这样的策略来模拟环境,我们使用3台ubuntu机器,1台为作主机(master),另外2台作为从机(slaver)。同时,这台主机,我们就用第一章中搭建好的环境来。

我们采用与第一章中相似的步骤来操作:

1、运行环境搭建

在前面,我们知道,运行hadoop是在linux上运行的。所以我们单机就在ubuntu上运行着。所以同样,2台从机,同样采用linux系统。为了节省资源,本人试验时用了2台centOS系统,而且是采用命令行的方式,没有用图形方式。

系统中软件准备,第一章中我们准备了subversion ssh ant 和jdk。那在这里,从机上我们不要这么多了,我们不用再下载、编译代码了,从主机上复制就行。所以在从机上只需要安装ssh 和jdk这两个:

先用 sudo apt-get install ssh这个命令,把SSH安装起来。

注:在centOS中,使用yum install ssh。

java环境,可以在网上下载一个JDK安装包,如:jdk-6u24-linux-i586.bin

安装直接在目录下运行./jdk-6u24-linux-i586.bin即可。

然后配置jdk目录:

先进入安装目录 cd jdk-6u24-…

然后输入 PWD 就可以看到java安装目录,复制下来:

命令行执行:sudo gedit /etc/profile

在打开的文件里,追加:

export JAVA_HOME=
/home/administrator/hadoop/jdk1.6.0_27 //这里要写安装目录

export PATH=${JAVA_HOME}/bin:$PATH

执行source /etc/profile 立即生效

2、网络配置

要想运行分布式环境,那这3台计算机(虚拟机)肯定是要联网才行。同时,三台之前也要畅通无阻。

如果直接采用虚拟机,就比较方便了,默在虚拟机中都使用NAT联网方式即可:

分别进入三个系统,用ifconfig命令,可以查到当前分配过来的IP地址:

如上图中可以看到是10.0.0.11。

如果发现没有eth0,也就是说网卡还没启用或分配好地址,则可以手动分配:

ifconfig eth0 10.0.0.12 netmask 255.255.255.0 //设置eht0 的IP地址

route add default gw 10.0.0.2 //设置网关

在VMware中,怎么看到网关呢,可以在菜单 编辑->虚拟网络编辑器 中看到:

网关一定要配置对,否则光IP地址后,机器之前互想ping不通的。

在配置好IP后,可以尝试ping一下网关和其他机器,看是否能通。

在这里,我们3台机IP为:

主机 master : 10.0.0.10

从机1 salter1 :10.0.0.11

从机2 salter2 :10.0.0.12

有了3台机器的IP地址,我们想,后面在配置中肯定会用到,但为了方便以后IP地址的变动,所以我们还是用另名吧。在window中,我们知道在C:\Windows\System32\driver\etc下,有个host文件,修改后,就可以将IP换成别名了。

在linux中,同样有这个文件,在/etc/hosts中。所以编辑一下: $vi /etc/hosts:

文件保存后,就可以试一下ping master ping node1来代替IP地址了。

这个操作需要在三个机器上都操作一下。

现在网络了,为了后面操作,在所有部署运行hadoop的机器上,都必须使用相同的帐号。所以需要在2台从机上创建一个与主机一样的帐号、密码:

比如都用zjf帐号: $user add zjf 设置密码: $passwd zjf 进入该帐号: $su zjf

有可能机器上会有防火墙,影响后面的远程,所以可以先关一下:

$ service iptables stop

3、配置SSH

第1章中我们了解了SSH的功能,在这里就可真正派用处了。

我们在master机中,用ssh试一下连接node1:

可以看到,需要输入密码才能够进入。远程启动所有从机时,一个个输入密码,也不是个好事,得配置下:

1)在从机node1中先实现自己登陆自己时不要输入密码。

这个在第1章中已经描述。这里就不多述了。结果就是:

2)让主结点(master)能通过SSH免密码登录两个子结点(slave)

为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:

3$cd ~/.ssh

$scp zjf@master:~/.ssh/id_dsa.pub ./master_dsa.pub

$cat master_dsa.pub >> authorized_keys

好了,配置完后,回到master机器中,再来试一下ssh node1:

OK,成功进入,没有要输入密码。

同样,把node2也安这个方式操作一下。

4、配置hadoop

在第一章配置基础上,我们需要增加两项配置:

在conf文件夹下,找到masters文件,编辑,在里面输入master后保存:

在同文件夹下,找到slaves,编辑,在里面输入node1 node2后保存:

打开conf下core-site.xml:

里面的localhost换成master。

打开conf下的marped-site.xml:

同样,也是里面的localhost换成master。

5、复制hadoop包

前 面,在一台机器上部署时,我们的hadoop包是通过SVN下载了源码,然后再用ant编译出来的,但在这里,从机上就不用这么麻烦了,我们可以从主机上 复制过去。如何复制呢? 远程登陆我们用SSH,远程复制就用SCP。在复制前要注意,我们在主机中hadoop存放在什么位置,在从机中也要存放在该位置才行。

比如,在主机中,我们存放于test下,所以在2台node上,都创建一下test文件夹。

然后在主机上执行:scp -r hadoop-0.20.2/ node1:~/test 然后会看到刷屏,表示在复制了。

同样执行: scp -r hadoop-0.20.2/ node2:~/test

好了,现在两台从机上也都有了hadoop包了。

6、运行

在主机上,进入hadoop-0.20.2目录,运行bin/start-all.sh,即可以启动整个分布式系统了。

然后在主机上运行jps:

在从机上运行jps:

在主服务器上打开 http://localhost:50070,可以看到:

有两个活动的结点,点进去,可以看到:

点下面的结点可以查看详细,如果点开页面打不开,则有可能是机器防火墙阻止了。

可以进入相应机器,执行

$ service iptables stop

来关闭防火墙。

我们可以尝试上传一下文件:

$bin/hadoop fs -put ~/Tool/eclipse-SDK-3.7.1-linux-gtk.tar.gz test1.tar.gz

可以看到:

再上传一下文件:

$bin/hadoop fs -put ~/Tool/eclipse-SDK-3.7.1-linux-gtk.tar.gz test2.tar.gz

可以看到:

但发现不平衡,都跑一台上了。所以可以执行命令

$bin/hadoop balancer -threshold 1

这样,再来看:

平衡了。

本站文章除注明转载外,均为本站原创或翻译

相关推荐

墨尔本一华裔男子与亚裔男子分别失踪数日 警方寻人

中新网5月15日电据澳洲新快网报道,据澳大利亚维州警察局网站消息,22岁的华裔男子邓跃(Yue‘Peter’Deng,音译)失踪已6天,维州警方于当地时间13日发布寻人通告,寻求公众协助寻找邓跃。华...

网络交友须谨慎!美国犹他州一男子因涉嫌杀害女网友被捕

伊森·洪克斯克(图源网络,侵删)据美国广播公司(ABC)25日报道,美国犹他州一名男子于24日因涉嫌谋杀被捕。警方表示,这名男子主动告知警局,称其杀害了一名在网络交友软件上认识的25岁女子。雷顿警...

一课译词:来龙去脉(来龙去脉 的意思解释)

Mountainranges[Photo/SIPA]“来龙去脉”,汉语成语,本指山脉的走势和去向,现比喻一件事的前因后果(causeandeffectofanevent),可以翻译为“i...

高考重要考点:range(range高考用法)

range可以用作动词,也可以用作名词,含义特别多,在阅读理解中出现的频率很高,还经常作为完形填空的选项,而且在作文中使用是非常好的高级词汇。...

C++20 Ranges:现代范围操作(现代c++白皮书)

1.引言:C++20Ranges库简介C++20引入的Ranges库是C++标准库的重要更新,旨在提供更现代化、表达力更强的方式来处理数据序列(范围,range)。Ranges库基于...

学习VBA,报表做到飞 第二章 数组 2.4 Filter函数

第二章数组2.4Filter函数Filter函数功能与autofilter函数类似,它对一个一维数组进行筛选,返回一个从0开始的数组。...

VBA学习笔记:数组:数组相关函数—Split,Join

Split拆分字符串函数,语法Split(expression,字符,Limit,compare),第1参数为必写,后面3个参数都是可选项。Expression为需要拆分的数据,“字符”就是以哪个字...

VBA如何自定义序列,学会这些方法,让你工作更轻松

No.1在Excel中,自定义序列是一种快速填表机制,如何有效地利用这个方法,可以大大增加工作效率。通常在操作工作表的时候,可能会输入一些很有序的序列,如果一一录入就显得十分笨拙。Excel给出了一种...

Excel VBA入门教程1.3 数组基础(vba数组详解)

1.3数组使用数组和对象时,也要声明,这里说下数组的声明:'确定范围的数组,可以存储b-a+1个数,a、b为整数Dim数组名称(aTob)As数据类型Dimarr...

远程网络调试工具百宝箱-MobaXterm

MobaXterm是一个功能强大的远程网络工具百宝箱,它将所有重要的远程网络工具(SSH、Telnet、X11、RDP、VNC、FTP、MOSH、Serial等)和Unix命令(bash、ls、cat...

AREX:携程新一代自动化回归测试工具的设计与实现

一、背景随着携程机票BU业务规模的不断提高,业务系统日趋复杂,各种问题和挑战也随之而来。对于研发测试团队,面临着各种效能困境,包括业务复杂度高、数据构造工作量大、回归测试全量回归、沟通成本高、测试用例...

Windows、Android、IOS、Web自动化工具选择策略

Windows平台中应用UI自动化测试解决方案AutoIT是开源工具,该工具识别windows的标准控件效果不错,但是当它遇到应用中非标准控件定义的UI元素时往往就无能为力了,这个时候选择silkte...

python自动化工具:pywinauto(python快速上手 自动化)

简介Pywinauto是完全由Python构建的一个模块,可以用于自动化Windows上的GUI应用程序。同时,它支持鼠标、键盘操作,在元素控件树较复杂的界面,可以辅助我们完成自动化操作。我在...

时下最火的 Airtest 如何测试手机 APP?

引言Airtest是网易出品的一款基于图像识别的自动化测试工具,主要应用在手机APP和游戏的测试。一旦使用了这个工具进行APP的自动化,你就会发现自动化测试原来是如此简单!!连接手机要进行...

【推荐】7个最强Appium替代工具,移动App自动化测试必备!

在移动应用开发日益火爆的今天,自动化测试成为了确保应用质量和用户体验的关键环节。Appium作为一款广泛应用的移动应用自动化测试工具,为测试人员所熟知。然而,在不同的测试场景和需求下,还有许多其他优...

取消回复欢迎 发表评论: