Hadoop基础教程之分布式环境搭建
前面,我们已经在单机上把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章中已经描述。这里就不多述了。结果就是:
为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:
1
2
3
|
$cd ~/.ssh $scp zjf @master :~/.ssh/id_dsa.pub ./master_dsa.pub $cat master_dsa.pub >> authorized_keys |
好了,配置完后,回到master机器中,再来试一下ssh node1:
OK,成功进入,没有要输入密码。
同样,把node2也安这个方式操作一下。
在第一章配置基础上,我们需要增加两项配置:
在conf文件夹下,找到masters文件,编辑,在里面输入master后保存:
在同文件夹下,找到slaves,编辑,在里面输入node1 node2后保存:
打开conf下core-site.xml:
里面的localhost换成master。
打开conf下的marped-site.xml:
同样,也是里面的localhost换成master。
前 面,在一台机器上部署时,我们的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
这样,再来看:
平衡了。
Hadoop基础教程之分布式环境搭建的更多相关文章
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
- Hadoop 2.7 伪分布式环境搭建
1.安装环境 ①.一台Linux CentOS6.7 系统 hostname ipaddress subnet mask ...
- [hadoop]hadoop2.6完全分布式环境搭建
在经过几天的环境搭建,终于搭建成功,其中对于hadoop的具体设置倒是没有碰到很多问题,反而在hadoop各节点之间的通信遇到了问题,而且还反复了很多遍,光虚拟机就重新安装了4.5次,但是当明白了问题 ...
- Hadoop学习2—伪分布式环境搭建
一.准备虚拟环境 1. 虚拟环境网络设置 A.安装VMware软件并安装linux环境,本人安装的是CentOS B.安装好虚拟机后,打开网络和共享中心 -> 更改适配器设置 -> 右键V ...
- hadoop(集群)完全分布式环境搭建
一,环境 主节点一台: ubuntu desktop 16.04 zhoujun 172.16.12.1 从节点(slave)两台:ubuntu server 16.04 hadoop2 ...
- 【Hadoop基础教程】4、Hadoop之完全分布式环境搭建
上一篇blog我们完成了Hadoop伪分布式环境的搭建,伪分布式模式也叫单节点集群模式, NameNode.SecondaryNameNode.DataNode.JobTracker.TaskTrac ...
- 【Hadoop离线基础总结】CDH版本Hadoop 伪分布式环境搭建
CDH版本Hadoop 伪分布式环境搭建 服务规划 步骤 第一步:上传压缩包并解压 cd /export/softwares/ tar -zxvf hadoop-2.6.0-cdh5.14.0.tar ...
- 【Hadoop离线基础总结】完全分布式环境搭建
完全分布式环境搭建 服务规划 适用于工作当中正式环境搭建 安装步骤 第一步:安装包解压 停止之前的Hadoop集群的所有服务,并删除所有机器的Hadoop安装包,然后重新解压Hadoop压缩包 三台机 ...
- 攻城狮在路上(陆)-- hadoop分布式环境搭建(HA模式)
一.环境说明: 操作系统:Centos6.5 Linux node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 ...
随机推荐
- 2.2孙鑫C++
1.继承 动物有 吃 睡 呼吸的方法 当然 鱼也有 不用重复再定义 1)public 那里都可以访问 #include <iostream.h> class Animal //类 基 ...
- JNA开发中的问题积累
[Qboy原创] 2013年12月28日 在开发一个项目过程中需要调用第三方的C的dll.由于是第一次在项目中使用JNA,很多都安装开发文档来做,但是出现了很多的问题. 由于很多接口还没调完,还不知道 ...
- cocos中使用VS自动创建工程的方法
为了省事,直接用VS编写了一小段代码,将cocos手动创建工程的命令改用system来执行,免去了手动输入命令的麻烦 其中: -d F:\\cocos2d-x-3.2-projects 是你要存放的工 ...
- 关于myeclipse代码提示的一些问题
默认是 .xxx 输入点提示,要写注释 @xxx的时候怎么输入@后面有代码提示呢? Auto activation delay 是代码提示出现的速度 下面一行是出现代码提示的条件 我们在.后面加 ...
- HDU 2196 求树上所有点能到达的最远距离
其实我不是想做这道题的...只是今天考试考了一道类似的题...然后我挂了... 但是乱搞一下还是有80分....可惜没想到正解啊! 所以今天的考试题是: 巡访 (path.pas/c/cpp) Cha ...
- 【BZOJ】【1449】【JSOI2009】球队收益
网络流/费用流/二分图最小权匹配 题解:http://blog.csdn.net/huzecong/article/details/9119741 太神了!由于一赢一输不好建图,就先假设全部都输,再将 ...
- Matlab绘制透明平面(二元函数)
一.需求来源 对空间结构聚类,恰好是圆台,找到了上下底面的方程,所以画图. 二.需求解决 2.1 绘制平面 x = linspace(0,5,100); y = linspace(0,4,100); ...
- 了解javascript中的事件(二)
本文目录如下: 零.寒暄 一.事件的分类 二.事件代理 2.1 问题引出 2.2 什么是事件代理 2.3 完整示例 二.事件代理 三.事件代理思想的用处 四.总结 零.寒暄 这篇博客本该出现在两个月以 ...
- 使用命令行进行 VS单元测试 MSTest
测试 指定的方法 "D:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /test ...
- cache应用(asp.net 2.0 SQL数据缓存依赖 [SqlCacheDependency ] )
Asp.net 2.0 提供了一个新的数据缓存功能,就是利用sql server2005 的异步通知功能来实现缓存 1.首先在sqlserver2005 中创建一个test的数据库. 在SQL Ser ...