大数据原生集群本地测试环境搭建二

上一篇补充小提示

根据上一篇安装好虚拟机和系统之后,在安装软件之前我有两个对于虚拟机的注意点想送给大家,大家可以不看,但是后期在虚拟机的使用上或许对你有帮助

一、在安装配置集群的时候,涉及到不同机器之间有关ip地址的设置时,一定要用域名代替ip,不代替虽然也可以,但是后续在虚拟机的移植使用上,将非常麻烦,因为正常情况下无论win还是说linux的网卡我们对其配置ip时都有着自己的内部需求和外界所处网络环境决定要使用的ip网段,但是在虚拟机中这个ip网段被虚拟机安装时,虚拟网卡,就是在cmd窗口查看ip时那块VM…8的网卡,生成的时候限制了,一般情况下不可使用其他的网段,除非你用的是桥接

不过不管用哪个网络模式,总之不同的网络环境与安装环境下虚拟机可使用的ip地址段也不一样,不信的话大家可以去试一试,我自己尝试过虚拟环境搭建好之后,在确保ip与网络正常的情况下,ip不动迁移到另一台机器上,此时会发现因为网络策略不同的因素,网络是无法使用的,这里澄清一下不要有某些人看到这里直接怼我说两台电脑ip一样会冲突本来就用不了这类的话,我只能说麻烦这类人好好理解一下我说的是啥意思
所以在搭建时直接使用ip,那么后期搭建好的虚拟机被复制走在其他机器上使用的时候改ip都能麻烦死你,所以直接用域名后期迁移虚拟机的时候直接改域名对应的ip就可以了,一步到位

第二个,是迁移虚拟服务器时的网卡注意事项

本篇安装软件版本

配置主机名字
配置域名映射
虚拟机之间的免密
关闭防火墙
同步服务器时间
JAVAJDK1.8
mysql5.6
hadoop2.7
提前说明本套安装文档中是单例的hadoop,如果你需要安装HA的可以去看我单独出的HA搭建方式,并且本套安装文档中涉及到HA的点一般会声明,但为防止作者本人遗漏,在搭建时要明白所有相关的配置单例是配置到端口,而HA只配置Namenode通道名

开始安装

修改主机名

编辑 /etc/sysconfig/network在该文件中修改HOSTNAME属性值
如果你用的是centos7的,则编辑/etc/hostname

三台虚拟机都要修改,我这里分别修改为hdp1、hdp2、hdp3

配置域名映射

编辑 /etc/hosts在这个文件中原有的信息不要动,我们在后面追加域名映射就可以了,如:
192.168.83.136 hdp1
192.168.83.137 hdp2
192.168.83.138 hdp3
注意同样的 三台虚拟机都要修改,而且一个映射占一行,不要在一行,ip地址和域名之间有一个 空格

免密

免密一定要配置,因为涉及到集群之间的相互访问,不用输入密码,不然就连自己访问自己的服务都要密码,而且注意免密操作 三台虚拟机都要进行,包括自己对自己免密
  1. 生成公钥

    ssh-keygen -t rsa

    在linux命令行中运行上面这个命令,之后会让你输入东西,这个时候不要输入任何东西,直接回车,正常情况下会让你输入三次,就是说什么都不输入的情况下总计要输入三次回车,直到最后一次回车后出现如下图案:

m

  1. 拷贝公钥
    拷贝公钥到其他虚拟机上,包括服务器自己,就是说有多少台虚拟机那么复制公钥的操作就执行多少次,包括当前虚拟机自己也要拷贝,拷贝时yes之后的密码是虚拟机之间访问服务时的密码,作为免密登录的依据,根据信息提示以及之前配置的域名映射输入对应的linux服务器的根密码就可以

  2. 测试免密是否成功
    ssh hdp1(这里是已近拷贝了公钥的服务器)

    用上面这个这个命令登录其他服务器,如果免密成功,会弹出login信息,并在当前的窗口中登录到目标服务器,想要退出输入exit命令,会退出并且弹出logout信息,这就表示免密可以了
    最后在强调一遍上面这三步操作完只能算一台机器完事,其他的服务器都要这样操作
    当然你要觉得麻烦可以在网上找批量免密,但是一般批量免密用起来简单,但是配置较为麻烦,到头来其实废的功夫都是一样的,个人建议如果你不是和我一样有一个牛人运维朋友的话,批量免密这方面知道有这个事就行,不要去尝试不然那就不用搭建大数据集群了,因为时间全浪费在那上面了

  3. 如果你发现有一个免密没有成功,那么也不用担心,cd到你做免密操作时使用的用户主目录下,一般我们自己的测试环境用的都是root用户,我们到主目录下之后,我们要使用cd .ssh命令进入“.ssh”目录,这里注意你直接cd就可以了,因为这个文件夹是个隐藏文件夹进入之后进去之后把里面的文件全删掉,之后重新做免密就好了,但是删除的话要把免密的两台都要删除,就是说一个出问题了免密就相当于白干了,所以做得时候要仔细一些,不过大家也别担心,按照上面三步走一般没问题的,至少我从开发到现在好几年了都没出现过大问题

最后狗头保命一下,上面这个免密,是想让大家知道免密的原始底层流程是什么,大家其实可以使用脚本方式完成免密,方法我也发过:linux脚本方式批量免密

关闭防火墙

linux6:运行如下命令
永久关闭防火墙
chkconfig iptables off
即时关闭防火墙
service iptables stop
查看防火墙状态
service iptables status

linux7:运行如下命令
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

注:不关将影响时间同步及集群安装,且关闭时永久关闭和及时关闭都要运行这样就不需要重启了
还应该注意的是如果在实际的生产环境中我们不是关闭防火墙,而是去进行设置防火墙开放端口等操作

同步服务器时间

https://blog.csdn.net/dudadudadd/article/details/110947177

JAVAJDK

安装之前使用java –verson 或者rmp命令测试服务器是否有jdk,一般情况下正规的服务器都自带,如有自带的一定要删除,并且是强制删除,否则删不掉,不过按照我之前的那套方法走那么就没有
第一步:上传并解压jdk的安装包到/opt目录下,linux的JDK安装包是一个tar.gz的压缩包,对于linux来说,它的应用安装包,如果以压缩文件结尾的一般都是解压及安装,删除及卸载
第二步:修改配置文件/etc/profile,在该文件中配置环境变量home与path,配置的时候, 把路径改成你自己的

在这里插入图片描述
第三步:使用source /etc/profile命令重新加载系统配置文件

第四步:最后测试java –version命令,如果正常显示版本信息则安装完毕

第五步:使用scp -r jdk路径 root@目标域名:目标路径命令分发到其他服务器上,并修改其他结点的环境变量,注意目标路径只需要指定到jdk的上一级就可以,jdk的文件夹是自动会创建的,比如你jdk安装在/opt/jdk,那么你目标路径只写/opt就行

Mysql

安装之前准备好安装包,要注意的是mysql的安装包是rpm的 https://blog.csdn.net/dudadudadd/article/details/110874570

Hadoop

第一步:准备工作,要确保有奇数台装服务器,并选择其中一台开始进行安装hadoop,为了后期使用便捷,我们要再次确定每台虚拟机已经配置了静态ip(在第一篇中有修改过程)、域名、服务器名字等网络设置,并上传且解压hadoop安装包,只用上传在我们目前安装的服务器上就可以,其他的在配置完之后scp命令分发就可以了

第二步:开始安装,进入服务器的hadoop目录,以及在该目录下准备一个datenode的工作文件存放地,其实就是准备一个空文件,文件名自定义

第三步:进入hadoop安装目录下的的 etc/hadoop目录下这是hadoop的配置文件存放地

第四步:修改配置文件slaves,文件中写入hadoop集群每台服务器的地址,如果配置了域名,则填写域名,我在之前已经修改了域名映射和主机名,因此我这里使用的是域名
hdp1
hdp2
hdp3

第五步:修改配置文件mapred-env.sh、yarn-env.sh、hadoop-env.sh文件夹中的JAVA_HOME值,保证hadoop运行时的java环境

第六步:修改配置文件hdfs-site.xml,这个文件用来指定集群中服务器的数量、namenode辅助服务器,辅助服务器缓解namenode的压力,可以理解成给namenode加了一块内存条或者一个小秘书
<configuration>

		<!-- 数据的副本数量 -->
        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>
        <!-- 指定Hadoop辅助名称节点主机配置 -->
        <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>hdp2:50090</value>
        </property>

</configuration>

第七步:修改配置文件core-site.xml,这个文件中指定集群中namenode的访问地址,一个集群只有一个起效的namenode,这也就是为什么它需要辅助服务器,还要在这个文件中指定datenode的工作路径,当然namenode可以配置高可用但是因为比较麻烦,而且还是本地测试环境,所以我没有配置高可用,如果想了解怎么配置,可以在网上找其他的教程,当然也可以去我的主页里面看看我发了没有,因为截止我写现在这篇博客为止我还没有时间去搞高可用的博客
<configuration>
        <!-- 指定HDFS中NameNode的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hdp1:9000</value>
        </property>

        <!-- 指定Hadoop运行时产生文件的存储目录,默认是NameNode、DataNode、JournalNode等存放数据的公共目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/hadoop-2.7.2/data</value>
        </property>

</configuration>

第八步:修改配置文件yarn-site.xml,指定yarn,也就是资源集群资源管理器在那台服务器上运行
<configuration>

        <!-- Reducer获取数据的方式 -->
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!-- 指定YARN的ResourceManager的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hdp3</value>
        </property>
        <!-- 日志聚集功能使能 -->
        <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
        </property>

        <!-- 日志保留时间设置7-->
        <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>604800</value>
        </property>

</configuration>

第九步:修改配置文件mapred-site.xml,指定历史记录存放在那个服务器上
<configuration>

	<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hdp2:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hdp2:19888</value>
    </property>

</configuration>

第十步:使用scp,具体怎么写我就不展示了,和之前的一样,使用scp将已经配置好的hadoop发送到其他集群服务器上去,路径最好相同,因为发过去之后配置是一样的

第十一步:开始运行,首先在namenode所在服务器上,我上面的配置中namenode在hdp1上,格式化并运行namenode,这台服务器也将成为集群核心,它会启动集群中所有的datenode,并建立心跳机制,格式化方法为在namenode所在节点,调用hadoop的bin目录下的 hdfs namenode –format命令进行格式化,之后调用 sbin/start-dfs.sh

第十二步:在yarn所在服务器上运行yarn,我的配置中yarn在hdp3上,就是说我们要切换到yarn所在服务起上的hadoop安装目录下,运行 sbin/start-yarn.sh

第十三步:测试,使用浏览器访问namenode所在服务器的50070端口,如hdfs界面正常显示,并可以看到集群中的每个datanode服务器,而且关注点切换到服务器上,调用jsp命令三台服务器上namenode、yarn的进程都有了,这时就表示hadoop集群搭建成功

第十四步:配置环境变量

在这里插入图片描述


总结:改了八个配置文件,其实最核心的就是namenode、yarn所在的服务器,其次是namenode辅助服务器、历史记录服务器,因为集群的运行,要靠这四个东西,就是说其他集群中的服务器可以出现意外,但是这四大集群部件所在服务器一旦出现意外,这个集群就奔溃了,我们配置的时候要将这四个任务,最好交给多台服务器,当然这是自己决定的,我们要从集群整体性能、服务器压力等方面考虑如何部署这四大部件,不过有很多小伙伴其实会发现我没有主动的启动辅助节点和历史记录服务器,这是因为辅助节点在启动namenode的时候会跟着启动,而历史服务器不是必须启动的

还有就是我之前说了,我缺乏时间去搞高可用,但是大数据集群还有一种伪分布式就是把我上面的配置文件中的配置项全部配置在一台机器上就可以了

第一篇https://blog.csdn.net/dudadudadd/article/details/109647930

第三篇https://blog.csdn.net/dudadudadd/article/details/109679296

第四篇https://blog.csdn.net/dudadudadd/article/details/109719624

第五篇https://blog.csdn.net/dudadudadd/article/details/109726023

第六篇https://blog.csdn.net/dudadudadd/article/details/109744195

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值