Hadoop分布式集群环境部署!

1.  机器准备

1.1三台机器的目录结构,用户,用户权限都必须完全一致!且在同一网段

      为了方便管理,ip等用一下设置:

           ip                hostname                                        

      192.168.59.162bigdata-hpsk02.com bigdata-hpsk02

      192.168.59.163bigdata-hpsk03.com bigdata-hpsk03

      192.168.59.164bigdata-hpsk04.com bigdata-hpsk04

1.2Linux环境配置

      1)关闭防火墙: sudo service iptables stop

      2)关闭安全机制: vim /ect/selinux/config(设置SELINUX=disabled  该设置必须重启才能生效)

      3)添加映射信息:(作用的让添加映射信息的机器通过主机名就能找到指定ip的节点机器!)           

1.3三台机器之间的时间必须一致!(ntp服务统一时间)

    一般集群中只会有一台机器拥有访问外网的权限!这台可以访问外网的机器同步外网的时间,!那么所有的没有访问外网权限的节点机器,都去同步拥有访问外网权限的节点机器!

   这样的好处是:就算外网断网了,拥有访问外网权限的节点机器时间同步错误,其他节点也依旧能保持时间同步!

  1.3.1设置拥有外网权限的节点机器:

          sudo vim /etc/ntp.conf

              删除

                   restrict default kod nomodify notrap nopeer noquery

                   restrict -6 defaultkod nomodify notrap nopeer noquery

                   restrict 127.0.0.1

                   restrict -6 ::1

                   server0.centos.pool.ntp.org

                   server1.centos.pool.ntp.org

                   erver2.centos.pool.ntp.org

            添加拥有外网权限的节点机器同步的服务器:

                  erver 202.112.10.36

                         202.112.10.35:北京市北京市 教育网提供的一个时间服务器

            允许哪些节点可以本同步本节点时间:

                   restrict 192.168.59.0mask 255.255.255.0 nomodify notrap

                         设置59网段的所有节点机器都可以同步本节点机器!

             配置本地同步 (当断网时,不管本节点的时间是否正确,其他节点都同步本节点就行)

                   server 127.127.1.0

                         fudge 127.127.1.0 stratnum10

    

        启动ntp服务

               sudo service ntpdstart

 

1.3.2.设置没有外网权限的节点机器:

        sudo vi /etc/ntp.conf

                删除

                    restrict defaultkod nomodify notrap nopeer noquery

                    restrict -6default kod nomodify notrap nopeer noquery

                    restrict127.0.0.1

                    restrict -6 ::1

                    server 0.centos.pool.ntp.org

                    server1.centos.pool.ntp.org

                    server2.centos.pool.ntp.org

                设置没有网络权限的节点机器同步拥有网络权限节点的机器

                       server 拥有网络权限的节点机器ip

            启动ntp服务

                 sudo servicentpd start

            查看当前节点机器和谁同步时间:

                ntpq -p

            查看同步进程:

                ntpstat

 1.3.3或手动同步:

            sudo ntpdate 拥有网络权限的节点机器ip 

注意;同步时间需要很长时间,请耐性等待,要是配置完成,但是时间没有同步,那么你可以查看当前机器同步的节点和你设置的节点是否一致!

            查看当前节点机器和谁同步时间:

                ntpq -p


1.4三台机器之间配置免密ssh登录!

     Linux系统作为一款安全稳定的操作系统,被广泛应用于如金融、通讯等行业的信息系统建设。

     随着科技的不断创新,系统应用不断深入,实现linux ssh免密码登录也越来越多的被涉及到,其中比较典型的是hadoop大数据平台的搭建中,就不可避免的应用到ssh免密码登录。那么如何实现linuxssh的免密码登录呢?下面根据自己的亲身经历及验证测试对其做了详细的介绍.

   首先我们看一下没有配置ssh免密码登录的流程

       1.     输入ssh命令尝试远程连接

       2.     系统找到对应主机,询问是否连接

       3.     确认连接后,要求我马上输入目标主机的用户密码

       4.     在输入的用户密码正确的情况下需要再次输入密码却认


        以上就是没有配置免密钥登录的一个流程,这里只是一次登录,已经很繁琐了,但是有些人会说:”还好啊就四步!”是,登录一次是还好,我也可以接受,但是多次呢!要是你需要在两台机器中来回切换呢?是不是感觉有点太麻烦了,能不能让我一个连接请求直接连接啊!能,接下来我们就来配置ssh的免密钥登录!

        在配置之前我们先了解一下它的免密钥是怎么实现的;

        疑问:我配置了免密钥登录是不是所有人都可以一条命令登录我的机器了?

        Linux的ssh免密钥登录是用到了 RSA算法, RSA算法是一种非对称加密算法:

对称加密算法:

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥mi yao)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

非对称加密算法:

非对称加密算法需要两个密钥:公开密钥publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。


        因此我们可以知道,我们需要做的就是生成私钥,和公钥,然后将公钥发送给你允许它远程免密钥登录的机器!

        解答: 我配置了免密钥登录是不是所有人都可以一条命令登录我的机器了?

        能免密钥登录的机器都是我给予公钥的机器,所以不是所有机器都能远程免密钥登录我的机器!

1.创建公钥和私钥


2.在指定路径查看密钥:


3.将公钥发送给目标节点机器:


4.目标节点查看接收到的公钥文件:


5.测试(免密成功)


2.  安装部署hadoop:

2.1节点分布情况

node2   datanode   nodemanager  NameNode(工作)

      node3  datanode   nodemanager            

      node4  datanode nodemanager  resourceManager(工作)

2.2安装JDK:

      选择一台机器先安装jdk:

           node2上面 解压jdk文件:

           配置JAVA_HOME环境变量

      分发数据:给node3和node4

           scp要发送的本地文件 用户名@目标主机名:目标路径:

           scp-r jdk1.8.0_91/ [email protected]:/opt/modules/

           scp-r jdk1.8.0_91/ [email protected]:/opt/modules/

配置node3和node4的JAVA_HOME环境变量

2.3安装Hadoop(详细请看我往期的博客)

      上传解压

修改配置文件

-》-env.sh 环境变量

  JAVA_HOME


-》-site.xml:配置用户自定义需求

  core-site:

  hdfs的入口

       临时存储目录

  hdfs-site:

       文件副本时

       dfs.permissions.enabled

  mapred-site:

        mapreduce程序将运行在Yarn上

  yarn-site:

        resourceManager入口、

        告知yarn ,mapreduce程序将在你这里运行


分发数据:给node3和node4

           scp要发送的本地文件 用户名@目标主机名:目标路径:

           scp-r hadoop-2.7.3/ [email protected]:/opt/modules/

           scp-r hadoop-2.7.3/  [email protected]:/opt/modules/

 

2.4启动测试:

重点:在配置namenode的节点主机上格式化hdfs

在配置namenode的机器上启动hdfs服务sbin/start-dfs.sh

在配置resourcemanager的机器上启动yarn服务: sbin/start-yarn.sh


                                                        

作者:唐平

时间:2018-06-21