我准备了4台虚拟机:别名分别为node1,node2,node3,node4
1.jdk的安装2.查看虚拟机别名是否正确,通过如下命令查看 cat /etc/sysconfig/network
查看虚拟机的hosts文件是否一致,保证能够ping通
cat /etc/hosts
3.检查时间是否一致,命令如下
date
如果时间不一致,可以通过如下命令设置时间同步:dtae -s “年-月-日 时-分-秒”,设置的时间不一定和真实时间完全一致,但四台虚拟机的时间要一致
4 检查安全机制,使用如下命令
cat /etc/sysconfig/selinux
3.全分布式配置方案 node2作为NomeNode node1作为SNN(SecondaryNameNode)和DN(DataNode) node3作为DataNode node4作为DataNode
秘钥文件的生成在我搭建伪分布式上有说明在虚拟机上实现搭建1.x版本的Hadoop伪分布式 首先先检查是否能在家目录下查找到.shh隐藏文件
如果不能,则输入ssh localhost(或者别名)。
然后从node2向node1/node3/node4分发公钥(公钥的名称要变),进入到.ssh目录下
输入命令
scp id_dsa.pub node1:`pwd`/node2.pub #改命令将文件分发给node1节点,然后自己再将文件通过改命令分发给其他节点
各节点把node1的公钥追加到认证文件里 cat ~/node2.pub >> ~/.ssh/authorized_keys
进入到node2下的hadoop-2.6.5下的etc文件下,在 在虚拟机上实现搭建1.x版本的Hadoop伪分布式中我们已经配置好了伪分布式,配置全分布式中hadoop的部分配置在其中已经进行了配置,我们修改其中的部分配置就行。所以先备份hadoop
cp -r hadoop/ hadoop_copy(备份的名字可以自己取)
hadoop的JAVA_HOME环境变量的二次配置在伪分布式搭建的文章中有说明,这里就不在说了。 然后 配置core-site.xml
vi core-site.xml
在<configuration></configuration>中加入以下配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://node2:9000</value> #指定主节点是哪个节点
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/sxt/hadoop/full</value> #指定数据上传的目录
</property>
配置hdfs-site.xml
vi mapred-env.sh
在<configuration></configuration>中,加入以下内容
<property>
<name>dfs.replication</name>
<value>2</value> #配置副本数,可以改变
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50090</value>#配置SecondaryNameNode
</property>
slaves文件用来配置从节点
vi slaves
#将从节点加入到文件中
#如下图所示
分发hadoop到各个节点
scp -r hadoop-2.6.5/ node1:`pwd`#将hadoop分发给node1节点
在我另一篇博客《在虚拟机上实现搭建1.x版本的Hadoop伪分布式》上介绍了java环境变量的配置和Hadoop环境变量的配置。这里的node2由于已经配置好了,所以可以将/etc下的profile文件分发给各个节点。当然,其他节点的Hadoop和jdk版本要一致
scp /etc/profile node1:/etc/ #分发给node1节点
通过source /etc/profile重读配置文件 通过jps测试java环境,通过hdfs测试Hadoop环境是否搭建成功
格式化集群:hdfs namenode -format 启动集群:start-dfs.sh jps查看各节点进程启动情况 通过web UI 查看Hadoop— IP:50070 停止: node2: stop-dfs.sh
本文中Hadoop中JAVA_HOME的二次配置和配置core-site.xml、配置hdfs-site.xml、配置slaves和免密匙、java环境变量和Hadoop环境变量的配置,这些配置在我《在虚拟机上实现搭建1.x版本的Hadoop伪分布式》博客中已经说明了。本文就没有在进行说明如何配置了。