【hadoop】完全分布式集群部署

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

完全分布式模式:是多台服务器组成的分布式环境,安全系数比较高。当企业在工作时,数据的安全是非常重要的,当我们一个主机出现故障的时候,如果我们使用的是伪分布,这种是单机运行的,出现故障也容易造成不可挽回的损失。但是完全分布式就能够解决这个问题,它最少有三个主机,当主节点出现宕机的时候,从节点就会补上。


一、准备好三台虚拟机

1.创建虚拟机

可以参考此文档,创建虚拟机,里面有详细的教程。

创建虚拟机详细教程:http://www.360doc.com/content/22/0622/09/74713971_1037051336.shtml

此链接可以下载centos镜像:http://mirrors.aliyun.com/centos/7/isos/x86_64/


2.配置网卡

1.通过cmd,输入ipconfig查看ip地址
ip地址
2.使用vi /etc/sysconfig/network-scripts/ifcfg-ens33这个命令,进行编辑
修改模板
3.重启网卡systemctl restart network

3.配置JDK和HADOOP

1、可以先连接远程工具如MobaXterm、Xshell

连接远程工具MobaXterm详细可以看此连接:https://blog.csdn.net/Nurbiya_K/article/details/100146457?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168743815016800182770111%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168743815016800182770111&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-100146457-null-null.142v88control_2,239v2insert_chatgpt&utm_term=hadoop%E8%BF%9E%E6%8E%A5%E8%BF%9C%E7%A8%8B%E5%B7%A5%E5%85%B7MobaXterm&spm=1018.2226.3001.4187

连接远程工具Xshell详细可以看此连接:
https://blog.csdn.net/feizuiku0116/article/details/120688891?ops_request_misc=&request_id=&biz_id=102&utm_term=hadoop%E8%BF%9E%E6%8E%A5%E8%BF%9C%E7%A8%8B%E5%B7%A5%E5%85%B7&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-120688891.142v88control_2,239v2insert_chatgpt&spm=1018.2226.3001.4187

2、将jdk和hadoop解压到/usr/local/路径下
我们采用1.8版本的jdk

可以在这个网址里挑选合适的jdk: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

本篇博客使用的hadoop是2.7.1版本的

此地址可以找到选择合适的版本: https://www.apache.org/dyn/closer.cgi#

使用代码tar -xzvf (被解压的压缩包所在的路径) -C (解压后的储存路径)

3.配置HADOOP_HOME
通过vi /etc/profile将入配置全局变量
如图:
配置全局变量
使用source /etc/profile 使环境变量生效

4.创建好一个虚拟机后,通过复制再创建出另外两台主机。
查看路径的方法
重命名,好区分虚拟机:
重命名虚拟机

4.修改主机名

hostnamectl set-hostname (你需要取的主机名)

修改主机名
修改后
另外两部虚拟机也是同样的操作

二、修改ip、映射

1.修改ip

因为我们是复制的虚拟机,但是ip不能一样,所以我们需要修改这三台虚拟机的ip
也是运行vi /etc/sysconfig/network-scripts/ifcfg-ens33进行修改
修改了ip
另外两台虚拟机也是修改这个位置
修改完以后需要重启网卡:
systemctl restart network
可以输入:
ping www.baidu.com
查看是否能链接外网

2.修改映射

使用vi /etc/hosts配置映射
修改映射
在master配置好后,我们根据"scp"语句,同步文件

scp (同步的文件路径)  root(以root的身份)@(同步的主机):(同步过去的路径)

例如:

scp /etc/hosts root@slave1:/etc

同步到了slave1主机上

scp /etc/hosts root@slave2:/etc

同步到了slave2主机上
检验是否成功:
检验是否成功

三、设置免密登录

三部机器都需要配置免密登录
现在的代码是基于master操作的
我们需要生成公钥/私钥密码对
1.通过ssh-keygen -t rsa生成一对公钥/私钥密码对,接下来一直按回车就可以了。
2.通过cat ~/.ssh/id_rsa.pub查看公钥是否存在
3.通过cat ~/.ssh/id_rsa查看私钥是否存在
4.通过ssh-copy-id -i ~/.ssh/id_rsa.pub master用公钥拷贝到master目标机器上,在执行这个命令的过程中需要输入master的密码
5.通过ssh master检验免密登录是否成功

四、关闭防火墙

1.通过systemctl status firewalld查看防火墙的状态
2.通过systemctl stop firewalld关闭防火墙
3.通过systemctl is-enabled firewalld查看是否开机自起,如果输出“enabled”表示开机自起/输出“disabled”表示开机不会自起
4.通过systemctl disable firewalld禁止防火墙开机自起

五、配置hadoop配置文件

将hadoop-2.7.1.tar.gz上传到Centos7的/usr/local路径

下载路径为: https://archive.apache.org/dist/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

解压hadoop-2.7.1.tar.gz:tar -xzvf hadoop-2.7.1.tar.gz

接下来我们配置core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件他们存放在$HADOOP_HOME/etc/hadoop这个路径上,所以我们可以先切换进这个路径,进行配置,最后群起集群slaves

1.配置core-site.xm

1.vi core-site.xml
2.配置成

  <configuration>
      <property>
      <!-- NameNode的地址 -->
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
      </property>
      <property>
      <!-- hadoop数据的存储目录 -->
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop-2.7.1/data</value>
      </property>
  </configuration>
~

2.配置hdfs-site.xml

1.vi hdfs-site.xml
2.配置成

<configuration>
    <property>
    <!-- 集群数量 -->
        <name>dfs.replication</name>
        <value>3</value>
    </property>

    <property>
    <!-- web端访问地址 -->
        <name>dfs.secondary.http.address</name>
        <value>slave1:50090</value>
    </property>

</configuration>

3.配置yarn-site.xml

1、vi yarn-site.xml
2.配置成

<configuration>
    <property>
    <!-- 让MR走shuffle -->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
    <!-- ResourceManager的地址-->
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>

</configuration>

4.配置mapred-site.xml

1、vi mapred-site.xml
2、配置成

<configuration>
    <property>
    <!-- 让MapReduce程序在Yarn上运行 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

5.群起集群

1.vi slaves
2.配置成

master
slave1
slave2

六、将hadoop配置文件,同步到其他两个主机上

1.切换到:cd /usr/local/hadoop-2.7.1/etc/hadoop
2、同步到slave1

scp * root@slave1:`pwd`

3、同步到slave2

scp * root@slave2:`pwd`

七、设置时间同步

如果各个节点之间时间不一致/不同步,集群容易出现一些错误。
ntp服务器可以更新当前机器的时间
1、安装ntp

yum -y install ntp

2、进行同步

ntpdate ntp.aliyun.com

输出这条语句则表示同步成功,三台主机都需要设置哦
同步成

八、NameNode格式化

格式化只需要一次,只在master上执行格式化命令就可以了

hdfs namenode -format

格式化后需要启动集群

start-all.sh

九、查看相关进程

1.在master上执行jps,出现:
在这里插入图片描述

2.在slave1上执行jps,出现:
slave1
2.在slave2上执行jps,出现:
在这里插入图片描述
这样我们的配置就算完成啦!!!

总结

通过这些我们能够大致的明白配置方法,也能够保证我们数据的安全性,毕竟我也是小白,有的地方不对的话,还劳烦大家指正,谢谢~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值