基于Ubuntu16搭建Hadoop大数据完全分布式环境

Posted 天道酬勤2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Ubuntu16搭建Hadoop大数据完全分布式环境相关的知识,希望对你有一定的参考价值。

【目的】:学习大数据

 在此记录搭建大数据的过程。

 【系统环境】

            宿主机操作系统:Win7 64位

            虚拟机软件:Vmware workstation 12

            虚拟机:Ubuntu 16 64位桌面版

  【步骤概要】

   一、准备

          1、准备安装软件

           2、规划好虚拟机数量、机器名称、IP 

           3、设置虚拟机静态IP

           4、建立专用于hadoop的账号

   二、设置免密登录

          实现这几台测试机之间可以免密码登录

   三、安装和配置Java环境

   四、安装和配置Hadoop

   五、测试和收尾

 

  【搭建过程】

         一、准备

                1、安装文件准备

                       Hadoop软件:

                      JDK:

                       Ubuntu 16的安装软件

                 2、虚拟机准备

                       测试计划使用三台虚拟机

                       在Win7里启动Vmware workstation,安装一台操作系统为Ubuntu 16的空的虚拟机,从这台虚拟机另外再克隆出来两台

                 3、机器名称:hadoop.master、hadoop.slave1、hadoop.slave2

                       通过修改/etc/hostname来设置虚拟机的主机名称

                        #vi /etc/hostname

                       

                 4、查看和确定网关,我这测试环境的网关是:192.168.152.2

                       查看方式:

                       1)、点击Vmware workstation左上角的“编辑”

                       2)、选择“虚拟网络编辑器”

                      

 

                       3)、选择NAT模式

                       

                       4)、上图中“使用本地DHCP服务将IP地址分配给虚拟机”,很多网上文档都是把此项前面的“√"去掉,如果所有的虚拟机都设置为静态IP,可以去掉,因为我还有别的虚拟机,不在意是否静态IP,所以,此项“√”保留。

                        5)、“NAT设置”按钮,可看到网关设置,我虚拟机的网关为:192.168.152.2

                       

                        这是系统默认的,在此无需变更。

                 5、规划三台虚拟机的IP:192.168.152.21、192,168.152.22、192.168.152.23

                       IP地址选择,前面三节都是:192.168.152,后面是除了网关里占用了2,其它1~255之间的数即可。如果已经设定了其它静态IP,不和那些冲突即可。

                 6、修改/etc/hosts,修改hosts文件目的是为了这三台虚拟机可以通过机器名称互相访问

                       

                       上图是第一台hadoop.master的,另两台,修改127.0.0.1  hadoop.XXXXX 修改为相应的机器名称

                 7、为虚拟机设置静态IP

                        只所以设置为静态IP,是因为虚拟机启动后,有时会自动变更IP,而在搭建的大数据环境里,会配置IP地址,动态变化后,会出现IP地址不匹配。

                        #sudo vi /etc/network/interfaces

                       

                        我的文件打开后,里面有如下内容:

                        auto lo

                        iface lo inet loopback

                          

                        这些内容不变,增加下面内容 

                     auto ens33

                        iface ens33 inet static
                        address 192.168.152.21
                        netmask 255.255.255.0
                        gateway 192.168.152.2
                        dns-nameservers 202.96.209.5

                      

                        保存后退出,重启电脑,使用ifconfig检查新设置的IP地址是否已经生效。

                        使用Ping命令检查是否能ping通

                        1)、内网是否能ping通其它机器,比如,在hadoop.master里ping 192.168.152.22

                        2)、 Ping外网,比如:ping www.baidu.com

                        测试如下:

                   

                        说明:

                               1、如果编辑/etc/network/interfaces,里面没有配置dns,则可以ping通内网的其它机器,无法ping通外网的机器

                                2、注意软件版本,如果虚拟机不是Ubuntu16,而是Ubuntu14或Ubuntu18,那么配置静态IP,可能需要编辑不同的文件,就不是/etc/network/interfaces了

                                      如果虚拟机是CentOS ,更不是/etc/network/interfaces,但道理是通的,搭建Hadoop完全分布式大数据环境,利用虚拟机来实现,需要配置静态IP,避免机                                    器重启后配置失效。

                                 3、如果设定有问题,则查找原因,解决后再往后继续。

                 8、增加user,这个用户专用于操作hadoop

                        1)、切换到root账号

                         

                        2)、这里用户名设为:hadoop

                        #useradd hadoop

                        3)、为增加的账号设置口令

                        #passwd hadoop

                        4)、去home文件夹下检查

                          #cd /home

                          #ll

                           在home文件夹下发现没有新增hadoop文件夹

                           

                          5)、删除已建立的user hadoop,换种方式重新建立

                            a.删除原hadoop账号

                            #userdel hadoop

                            b.查看,在home文件夹下没有hadoop的账号信息

                            #ll

                            c.按下述命令增加hadoop账号,使用参数

                            #useradd -r -m -s /bin/bash hadoop

                            d.再查看home文件夹,正常情况下,在home文件夹下会出现hadoop文件夹

                            

                           6)、参照步骤5)在另外两台机器上建立hadoop账号,并设置hadoop的口令,这三台机器的口令要一致。

                                 #useradd -r -m -s /bin/bash hadoop

                                 #passwd hadoop

                 9、把新增的这个用户设为管理员,编辑/etc/sudoers

                         

                         注意:Tab键的使用

                 

         二、设置免密登录

                1、#cd ~/.ssh

                      提示无此目录

                  2、安装,sudo apt-get install openssh-server

                      

                      按提示输入y,回车

                     3、安装好以后,输入cd ~/.ssh,仍然提示没有这个文件夹

                     4、执行ssh localhost

                          执行ssh localhost命令后,就会建立一个~/.ssh的隐藏的文件夹

                     5、输入exit 退出

                       

                     6、进入~/.ssh

                          #cd ~/.ssh

                      7、如果先前有公钥,则先删除

                          #rm ./id_rsa*

                       8、生成公钥

                          #ssh-keygen -t rsa

                          一路按回车即可

                         

                      9、让主节点能够免密登录到主节点

                         1)、把公钥添加到key中

                             # cat ./id_rsa.pub >> ./authorized_keys

                          2)、第一次使用ssh登录主节点本机

                              #ssh hadoop.master

                          3)、输入exit退出

                                #exit

                          4)、第二次使用ssh登录主节点本机

                                #ssh hadoop.master

                          5)、输入exit退出

                              #exit

                      10、把主节点的公钥传到从节点,也就是另外两台机器行,实现从主节点免密登录到从节点

                              1)、分别到两台从节点机器上hadoop.slave1和hadoopslave2上,切换到hadoop账号,检查有无~/.ssh文件夹

                                 #su hadoop

                                  #cd ~/.ssh

                                  如果没有,则建立

                                  #mkdir ~/.ssh

                                  检查

                                   #cd ~/.ssh

                              2)、切换到hadoop账号下

                                    #su hadoop

                              3)、进入~/.ssh

                                     #cd ~/.ssh

                              4)、查看

                                      #ll

                              5)、拷贝传输

                                      #scp id_rsa.pub >> hadoop@hadoop.slave1:/home/hadoop/

                                      #scp  id_rsa.pub >> hadoop@hadoop.slave2:/home/hadoop/

                                 

                               6)、从上图看,公钥传输被拒绝掉了,解决办法:

                                      分别在hadoop.slave1和hadoop.slave2上执行下面语句:

                                       #sudo apt-get install openssh-server

                               7)、回到主节点,重新拷贝传输公钥

                                     #su hadoop

                                     #cd /home/hadoop

                                     #cd .ssh

                                      #scp  id_rsa.pub >> hadoop@hadoop.slave1:/home/hadoop/

                                      #scp  id_rsa.pub >> hadoop@hadoop.slave2:/home/hadoop/

                                       

                                  8)、再分别到两台从节点,把id_rsa.pub加到authorized_Keys里

                                        #su hadoop

                                        #cd /home/hadoop         

                                        #cat ~/id_rsa.pub >> ~/.ssh/authorized_keys             

                                    9)、从主节点,以hadoop登录,检查是否能免密登录hadoop.slave1和hadoop.slave2

                                      

                               

         三、安装和配置Java环境

         四、安装和配置Hadoop

 

以上是关于基于Ubuntu16搭建Hadoop大数据完全分布式环境的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop完全分布式环境搭建——基于Ubuntu16.04设置免密登录

VMware12使用三台虚拟机Ubuntu16.04系统搭建hadoop-2.7.1+hbase-1.2.4(完全分布式)

大数据学习

Hadoop完全分布模式的搭建

Hadoop完全分布式搭建

hadoop完全分布式集群搭建(超详细)-大数据集群搭建