上一课讲了怎样在一台机器上建立Hadoop环境。我们仅仅配置了一个NHName Node, 这个Name Node里面包括了我们全部Hadoop的东西。包括Name Node, Secondary Name Node, Job Tracker, Task Tracker,这一课解说怎样把上述配置放到不同机器上。从而构建一个分布式的hadoop配置。
1. hadoop分布式安装概览
a) 2-10个nodes:Name Node, Job Tracker, Secondary Name Node都能够放在一台机器上,全部的Data Node和Task Tracker放在其它机器上
b) 10-40个nodes: 能够把Secondary Name Node分开来
c) 100+ nodes: 全部的Node和Trackers都分开放。而且加入rack awareness支持,同一时候须要各类优化设置。
本课的流程:
配置好ssh到全部的机器上。使其能够免输入password连接(如同上一课所述)
配置好masters和slaves
配置好全部的*-site文件
学习使用命令来启动。控制和关闭Hadoop(经常使用脚本说明例如以下图)。
2. 配置Hadoop到2-10个节点上
这个图非常帅。我们在HN Client机器上来控制全部的Hadoop机器。每一个机器给一个窗体(下图已经通过ssh链接到每台机器了,链接方式见上一课)。
第一步:取消全部机器上面的sshpassword訪问
ssh-copy-id -i $HOME/.ssh/id-rsa.pub [email protected]
把这个文件复制到全部的HNData和Secondary Name Node上面。这样就能够无password登陆了。
第二步:配置Master和Slaves
全部的配置文件都在/usr/local/hadoop/conf目录以下
配置好masters来指向Secondary Name Node, 然后配置slaves文件指向全部的HNData Node
Master文件默认的是localhost
用不论什么编辑器打开masters文件。删除localhost, 输入HN2ndName (就是你Secondary Name Node 的名称)
相同。编辑slaves文件,把全部的HNData Node名称输入
第三步:配置全部的Data Node,让它们指向Name Node。全部的Task Tracker指向Job Tracker
通过core-site.xml配置前者,通过mapred-site.xml配置后者
在HNData Node配置core-site.xml例如以下(由于我们是直接把上次的机器配置拷贝进来的。所以能够发现这个文件已经配置过了,例如以下:)
配置mapred-site.xml例如以下:
上面的配置应该已经是这样了,只是不妨检查好每个Data Node中的配置是不是这样
第四步:又一次格式化Name Node
hadoop namenode -format
第五步:配置完毕了,能够试着看看是否能启动
start-dfs.sh 这个命令启动全部的Name Nodes和Data Nodes,能够使用jps命令来查看是否成功启动了。
start-mapred.sh 这个命令启动全部的Job Trackers和Task Trackers。 相同使用jps来检測是否启动了,假设没有成功,能够去看看logs文件
3. 启动和关闭Hadoop各部分的命令
假设要删除一个node。能够建立一个excludes文件,在里面输入你不想要的node名称,比方HNData3.
然后配置HN Name Node中core-site.xml例如以下(在最后加入一个property)
相同能够建立一个includes文件来指定包括哪些节点
配置完毕后,启用配置:
hadoop dfsadmin -refreshNodes
我们能够在hnname:50070上面看到被排除的Node
执行rebalancer命令
start-balancer.sh
关闭Job Tracker。 Task Tracker:
stop-mapred.sh
关闭Name Node, Data Nodes:
stop-dfs.sh
假设要同一时候启动HNName Node, Data Node, Job Tracker, Task Tracker,则直接输入:
start-all.sh