我们很早之前也说过,完全分布式和伪分布式的区别这里再回顾一下。
伪分布式,也就是像我们之前做的那样,把NameNode,DataNode,NodeManager,ResourceManager,SecondaryNameNode部署在同一个机器上,没有所谓的在多台机器上进行真正的分布式计算,故称为"伪分布式"。
完全分布式,运用多台机器搭建一个包含三台机器以上的机群,可以是实体机也可以是虚拟机。
那么接下来看看怎么配置。
首先要先完成虚拟机的克隆。那么这边已经完成了虚拟机的克隆,该怎么操作之前有讲过。克隆虚拟机
下一步:配置SSH免密登陆。这里也是借鉴我往期推文,也有详细的讲过,这些都是常用的,所以就分开讲了,往前翻翻。最终达到如下图即可。从一台机器登入到另外一台机器。
Q:为什么要配置呢?
A:在配置好hadoop后,可以通过一台机器打开其他机器的节点,免去密码输入。
下一步,我们可以考虑一下服务节点的部署规划。为了使每台机器压力不要那么大,直接如下图分配好了。
怎么配置呢?
首先要解压Hadoop到指定目录下。
然后清理一下Hadoop/share/下的doc目录,删除。
最后就是更改配置,这边直接上代码。
1、修改core-site.xml
//修改core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://songjian-01.com:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/app/hadoop-2.5.0/data/tmp</value>
</property>
2、修改hdfs-site.xml
//修改hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>songjian-03.com:50090</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
3、修改slaves
//修改slaves
songjian-01.com
songjian-02.com
songjian-03.com
4、修改mapred-site.xml
修改mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>songjian-01.com:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>songjian-01.com:19888</value>
</property>
5、修改yarn-site.xml
//修改yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>songjian-02.com</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
接下来要格式化namenode。这边要注意一下,如果有原有的namenode会报错,主要是日志文件那边有问题,具体的百度一下就可以解决。
bin/hdfs namenode -format
然后就是将配置远程发给其他节点。代码:
scp -r hadoop-2.5.0/ songjian-02.com:/opt/app/
scp -r hadoop-2.5.0/ songjian-03.com:/opt/app/
最后就可以开启所有相关服务节点。其中resourcemanager和historyserver需要分别单独打开。
//这个是开启namenode,datanode等
[root@songjian-01 hadoop-2.7.3]# sbin/start-all.sh
//historyserver需要单独打开,在哪个机器打开就在那个机器运用命令
[root@songjian-01 hadoop-2.7.3]# sbin/mr-jobhistory-daemon.sh start historyserver
//resourcemanager需要单独打开,在哪个机器打开就在那个机器运用命令
[root@songjian-01 hadoop-2.7.3]# sbin/yarn-daemon.sh start resourcemanager