Hadoop 1.2.1 完全分布式搭建

一、准备工作

(1)在Windows 10机器上安装VMware Workstation并建立三台虚拟机,我使用的是CentOS7系统,配置相应的IP地址(根据自己电脑的IP地址配置),然后在每台机器中配置JDK环境。

(2)安装Xshell 6用于远程登录系统

(3)安装Secure File Transfer Client,用于在Windows系统向虚拟机上传输文件

(4)Hadoop-1.2.1.tar.gz 压缩包

相关软件链接: https://pan.baidu.com/s/1whr9qFtJLiTl95BIvyttmw 密码: cv78

二、Hadoop完全分布式配置

1、打开三台虚拟机和Xshell,在Xshell命令中输入ssh ip地址,分别连接三台电脑,连接时需要输入用户名和密码(在安装CentOS时自己配置)。为了方便我的三台虚拟机主机名为node1,node2,node3。

          Hadoop 1.2.1 完全分布式搭建

连接成功后如下:

          Hadoop 1.2.1 完全分布式搭建

2、通过Secure File Transfer Client,将Hadoop-1.2.1.tar.gz压缩包传到node1系统上

          Hadoop 1.2.1 完全分布式搭建

3、输入命令解压hadoop-1.2.1.tar.gz文件

         Hadoop 1.2.1 完全分布式搭建

解压之后输入ls命令查看目录,如下:

         Hadoop 1.2.1 完全分布式搭建

4、进入hadoop-1.2.1文件夹的conf目录下,进行相关的配置

         Hadoop 1.2.1 完全分布式搭建

5、配置core-site.xml文件

        Hadoop 1.2.1 完全分布式搭建

修改文件内容,fs.default.name配置NameNode在哪台机器上,端口是什么。hadoop.tmp.dir是设置hdfs的工作目录,如果不设置,那默认工作目录在Linux系统的tmp目录下,而这个目录在每次系统重启之后会清空,数据会消失,因此最好改一下,设置一个工作目录。这个目录不需要创建,在之后格式化时会自动创建。第三个属性暂时可以不要。

        Hadoop 1.2.1 完全分布式搭建

6、配置hdfs-site.xml文件,dfs.replication是配置文件的副本数也即block的副本数,如果不配置默认为3,而现在是三台虚拟机,一个NameNode和两个DataNode,因此副本数最多为2。

       Hadoop 1.2.1 完全分布式搭建

7、配置DataNode,修改slaves文件,内容为另外两台的主机名或IP地址

        Hadoop 1.2.1 完全分布式搭建

8、配置Serondary NameNode,它只要不和NameNode在同一台机器即可,因此可以放在node2或node3机器上。修改配置文件masters,我将其放在node2机器上,也可写IP地址。

       Hadoop 1.2.1 完全分布式搭建

9、配置hadoop-env.sh文件,更改JAVA_HOME的路径为自己设置的路径

       Hadoop 1.2.1 完全分布式搭建

10、设置三台机器之间的免密码登录。为什么要设置免密码登录?因此在三台机器上定义了不同的节点,有的是NameNode,有的是DataNode。每一个节点实际上是一个进程,三台机器上的节点都启动,那么整个集群才算启动,所以要做到在任何一台机器上输入启动命令都可以启动整个集群,那么就要免密码登录,远程登录其他机器启动进程,否则就需要在每一台机器上都启动一次。

(1)首先修改hosts文件,添加两台主机(最后两行)。同理在另外两台机器上也添加其他两台机器

      Hadoop 1.2.1 完全分布式搭建

       Hadoop 1.2.1 完全分布式搭建

(2)输入命令生成**,并将公钥放到本地认证文件中去,另外两个主机做相同的操作,这里只是本地的免密码登录。

      Hadoop 1.2.1 完全分布式搭建

      Hadoop 1.2.1 完全分布式搭建

(3)远程免密码登录,此命令是将node1上的id_sda.pub文件全部拷贝到node2上的根目录下,回车后需要输入node2的密码。

      Hadoop 1.2.1 完全分布式搭建

完成之后再node2上会有这个文件

      Hadoop 1.2.1 完全分布式搭建

最后将此文件追加到指定的认证文件中

      Hadoop 1.2.1 完全分布式搭建

然后在node1中输入命令登录node2就不需要输入密码

      Hadoop 1.2.1 完全分布式搭建

同理将上述步骤用在node3中。

11、在node2和node3机器上解压hadoop-1.2.1.tar.gz,并将node1上conf下的配置文件拷贝到node2和node3上,保证配置文件相同。

12、格式化,首先进入hadoop-1.2.1/bin目录下进行格式化,命令为:./hadoop namenode -format

13、启动,命令为:./start-dfs.sh。因为此时还没有配置MapReduce,不能用 ./start-all.sh。启动之后可用jps命令查看启动的节点。

14、在Windows系统的域名解析文件hosts文件添加三台机器,文件路径为:C:\Windows\System32\drivers\etc

      Hadoop 1.2.1 完全分布式搭建

15、启动集群后,打开浏览器输入地址:http://node1:50070,若网页加载失败,使用命令:./stop-dfs.sh,关闭集群,然后在三台机器上输入命令:systemctl stop firewalled.service,关闭防火墙之后重新启动,在进入即可。

16、配置MapReduce,修改conf文件夹下的mapred-site.xml文件,之后启动用 ./start-all.sh即可。

      Hadoop 1.2.1 完全分布式搭建