zoukankan      html  css  js  c++  java
  • 大数据之Linux服务器集群搭建

    之前写过一篇关于Linux服务器系统的安装与网关的配置,那么现在我们要进一步的搭建多台Linux服务器集群。

    关于单台服务器的系统搭建配置就不在赘述了,详情见https://www.cnblogs.com/sky9408251/p/12034904.html

    那么好,现在我们来开始搭建多台Linux服务器集群。

      首先第一步,准备环境,我们需要准备环境有三台硬盘空间大于40G 内存最好在4G或以上内存的电脑。之前说过如果是搭建在不同电脑上,那么我们需要用到的联网模式就是桥接模式,如果你没有那么多电脑,只有一台配置很高的电脑,那么建议你至少预留出120G的硬盘,和给每台机器分配至少4G的内存,为什么呢?有人会问,因为后续的Hadoop集群搭建以及各项辅助软件的部署搭建之后,如果你内存过低,那么运行一些任务调度时,你就知道什么叫做卡。

       之前呢我们已经成功搭建出一台Linux服务器了,如果你在同一台电脑搭建三台,那么你就不用说每台服务器去逐步安装系统了,只需要在那台服务器关机的情况下复制那个系统部署生成出来的文件夹即可,重新命名为Hadoop02,Hadoop03。当然名字随你定

        

      好了我们复制完系统文件夹之后呢,怎么去做呢。很简单,打开VMware左上方的文件--->打开-->选择刚刚复制的两个文件夹里的.vmx文件即可添加到你VMware中了。那么接下来就是给你新加的两台虚拟机分配内存即可。然后按照之前介绍的安装Linux服务器的方式修改IP和MAC地址。这里就不在一一截图表示了,不明白的去看看我之前发的文章就行了。

      好了修改完IP和MAC地址后,我们配置三台机器的hosts文件让三台机器相互之间有某种不可告人的联系形成集群第一步三角恋。

           

      接下来呢,我们就需要关闭三台服务器的防火墙和Selinux,因为是学习所以彻底关闭也没啥所谓。当然如果去工作中就不要这样做了,老老实实配置防火墙出入端口,我们这样是为了两个字方便,简单粗暴。

      关闭防火墙命令很简单,service iptables stop 关闭完防火墙之后我们在坏事做的彻底点儿,彻底让它永不翻身,关闭开机自启。chkconfig iptables off 执行它防火墙就彻底跟你的这台服务器告别了。再次强调工作中在公司千万别这么搞,就算没出事人家知道了都会怀疑你的技术水平以及安全意识。

      关闭防火墙了,我们再来关闭selinux,为什么要关闭这个selinux呢,这个selinux是什么东西呢,要说上面的防火墙,只要知道玩电脑的都听过,但是selinux我相信初学者对这个单词肯定是它不认识你你不认识它。

      什么是selinux?selinux是Linux系统的安全子系统,我们知道Linux是一个文件系统,所以Linux的权限管理是针对文件的没有说针对进程的,也就是说如果root启动 某个进程,那么这个进程就可以操作任何一个文件。所以就有了selinux,它就是补足Linux对进程的毫无想法的缺陷。说白了就是一个对Linux内的进程权限管理的安全子系统。相信看到这里的大家应该能想到我们为什么要关闭它了。没错不让它碍事。因为我们如果不关闭它,那么我们学习当中,安装部署一些软件工具的时候会涉及到很多进程,如果我们要一个一个去对它们进行权限设置的话,那也未免太过于麻烦与费时,所以我们就一不做二不休直接关了它。

      关闭selinux,第一步首先打开selinux的相关配置文件。指令:vim /etc/selinux/config

      

       注释原本的SELINUX=enforcing,添加SELINUX=disabled。这样SELINUX安全子系统就彻底关闭了

      接下来我们就让这三台服务器直接的三角恋变的更加亲密一些,让它们之间不分你我,我们在它们之间安装免密登录。为什么要这样做呢?其实大家想想就知道了如果以后在公司中的时候,服务器集群中的节点不止三个是十几个或者更多,那么我要执行一些指令或者安装部署一些东西的时候我还得一台一台的去登录,然后在执行相关操作,那也未免太过于繁杂。现在我们就有一种方法让我们能在其中任何一台机器上能随意登录其他节点的方式,就是SSH免密登录。

      SSH免密登录它是基于一种什么原理来达到那种不需要密码就可以直接登录其他子节点的呢?

      SSH免密登录的原理主要基于下面的五个步骤:

        1. 需要先在 B节点 配置 A节点 的公钥

        2. A节点 请求 B节点 要求登录  

        3. B节点 使用 A节点 的公钥, 加密一段随机文本

        4. A节点 使用私钥解密, 并发回给 B节点

        5. B节点 验证文本是否正确

      相信很多朋友们看完都一脸懵B,那么我们就上图,图文解说相信会更直白些

      

       好了解释完SSH免密登录的原理,那我们就来操作一波。首先在三台机器分别执行下面这台指令

          ssh-keygen -t rsa

      执行完该命令后,按三个回车,当你看到一串字符The key's randomart image is: 然后加上一个稀奇古怪的杂七杂八的字符拼接出来一个框框,那么你就生成成功了。

      

      然后将三台机器生成的秘钥拷贝到你经常使用的一台机器。执行命令ssh-copy-id hadoop01 我这里是将三个秘钥拷贝到我的第一台机器上。然后复制这台机器的秘钥到其他机器上,执行指令 scp /root/.ssh/authorized_keys hadoop02:/root/.ssh     scp /root/.ssh/authorized_keys hadoop03:/root/.ssh到此呢我们三台机器的SSH免密登录就好了,怎么校验我们是不是成功了呢,很简单 直接在你经常使用的那台机器 ssh hadoop02 回车 看到让你输入密码就等于成功了,那有人会问了,这不是还是要输入密码吗?其实不然,当你第一次输入完密码后,你输入exit 退出之后,你在输入刚刚输入的命令,你就会发现诶直接就登录到指定的机器了。这就是SSH免密登录的魅力。它只是第一次需要输入密码而已。

      到此我们三台服务器可以说是亲密无间了,集群基本上是搭建好了,接下来呢我们就要做些锦上添花的事情了,比如说三台服务器的时间保持一致。很多人纳闷了难道我搭建的三台服务器时间不是一样的吗。是的不信你输入date指令进行验证,绝大多数人搭建完三台Linux服务器后三台服务器的时间都是不一样的。那么我们怎么样才能让三台服务器的时间保持一致呢,有人会说我去调呗,这个想法倒是没错,但是每次都自己手动去调那么也未免太过于麻烦,怎么样才能让我们三台服务器的时间自己就保持一致呢。有人肯定想到了,对了跟网络的时间保持一致,那么我三台服务器的时间不就一致了。是的,现在我们就来设置三台服务器的时间自动与网络时间同步。

      首先第一步安装crontab定时服务组件。指令yum install -y ntp

      安装完毕后启动定时同步服务。指令 crontab -e

      然后大家会看到小黑窗什么也没有,知道vim编辑的同学肯定知道按i 进行输入配置信息。配置信息为:

      */1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com; 

      按ESC 然后:wq退出保存即可,三台机器都执行上诉操作,那么你三台机器的时间就自动与网络同步了,可能有人会问 这句配置指令是什么意思呢。

      从1开始算 分别为minute hour day month week command时间单词就是表示执行间隔填*表示不设置,

        第一个星表示分钟,取值为0-59 我们这里填1表示每分钟同步一次

        第二个星表示小时,取值为0-23我们这是填*表示不设置,下面同意

        第三个星表示天,取值为0-31

        第四个星表示月,取值为0-12

        第五个星表示星期,取值为0-7

      后面的就是定时同步的命令,我们这里的命令是执行/usr/sbin/ntpdate 表示更新时间,后面的网址是阿里云的网络时间地址,所以我们就是定时从阿里云上定时获取网络时间更新到我们的服务器。

    好了服务器集群搭建就写到这,这些步骤比较简单,只要不输错指令基本没什么难点。按照步骤一步一步来,很简单的。

  • 相关阅读:
    梯度提升树(GBDT)原理小结
    scikit-learn Adaboost类库使用小结
    集成学习之Adaboost算法原理小结
    集成学习原理小结
    支持向量机高斯核调参小结
    scikit-learn 支持向量机算法库使用小结
    支持向量机原理(五)线性支持回归
    支持向量机原理(四)SMO算法原理
    支持向量机原理(三)线性不可分支持向量机与核函数
    支持向量机原理(二) 线性支持向量机的软间隔最大化模型
  • 原文地址:https://www.cnblogs.com/sky9408251/p/12040915.html
Copyright © 2011-2022 走看看