从零开始搭建完全分布式环境(学生版)

上一篇我们学习了如何搭建伪分布式环境,今天我们来学习如何搭建完全分布式环境。

第一步

我们需要新建一个虚拟机master1,内存和cpu根据自己的电脑进行合理分配即可。

bb469697b6bc4f998987a976c4ebc6bf.jpeg

 接下来我们首先查看自己master1虚拟机的ip

查看命令为

ifconfig

227a0d66bdb147178923068b86ac53a4.jpeg

之后使用我们的FinalShell软件对master1进行连接

 可以看到我们连接失败了失败的原因一般是ip地址,用户名或密码写错的问题

检查一下并没有写错

还有种原因是我们的主机的vm8网络没有打开,确实是没有打开,我们将它开启后重新进行连接成功了

a48327e877dd407a94308023a40294a2.jpeg9835b646821540938f9bc12247399d13.jpeg

8884bda4db40488ca1a37ee8f77b0073.jpegc091493ad0f04343ba9e15037a1158f9.jpeg

 

 更改虚拟机主机名称为master1

更改命令为vim  /etc/hostname

查看命令为cat  /etc/hostname

2657157a6378474c92c147b34ca25b49.jpeg

 JDK安装

第一步首先我们要将虚拟机自带的jdk进行卸载

命令为

rpm -qa | grep java | xargs rpm -e --nodeps

卸载后使用

java version 进行查看出现以下提示时,证明卸载成功了

aa1e91729b4243f78e51a04c2072c9c3.png

 下一步将自己下载的jdk进行安装

安装目录为

/usr/java

首先在usr目录下新建一个java目录

首先

cd到usr目录下

然后使用mkdir java 新建Java目录

9b42511cffec41ff8360604ea954b621.png

 之后将我们下载的JKD安装包导入到java目录下

cb332b36418f4f06b79cc7b282bf1659.png

 9424a0dde80d4e55a48ea4fe149c789c.png

上传完成开始进行安装

安装命令为

 rpm -ivh jdk-8u281-linux-x64.rpm 

4487be62d8944066aa17db4d225f90eb.png

 安装完成后就要对虚拟机的变量进行配置

使用vi ~/.bash_profile 进行配置,完成后使用source ~/.bash_profile进行释放

配置方法为

export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
export PATH=$JAVA_HOME/bin:$PATH

8f6c06f629a749a4aebc54d96d081846.png

完成后使用java -version命令进行查看出现下面提示后证明安装成功。

bba70510895e4b72bfecf7f6722146ff.png

 克隆虚拟机master1

首先关闭虚拟机(这个就不演示了)

 关闭之后右键虚拟机master1 点击管理 选择克隆

34282475d4184ec581afcfdfee183e4e.png

选择当前状态

f1db94e4c2e74953b47870a89aa7be8c.png

 

 选择创建完整克隆

147919937bf347ffb556cb12d8448945.png

更改名称为slave3 之后点击完成

8023327576874c8f86c670c3b63a3324.png

 之后重复以上步骤创建slave4

d1b1f5447ca448cc962c18d67fc4f081.png

 之后将三个虚拟机同时开启,使用ifconfig指令查看ip后用FinalShell软件进行连接

863edf4e44334f508cf8423382c40e59.png

 完成之后将slave3和slave4的虚拟机主机名称由master1更改为slave3和slave4并查看

 9de068919aee4eb19f3c125d3acc1da3.pngb6518b7f6c53474fbf690075ed637f13.png

 下一步更改三台虚拟机的hosts配置使三台虚拟机之间能够互相ping通

更改命令为

vi /etc/hosts

根据自己三台虚拟机的ip进行更改(虚拟机的ip查看命令上面有提到不知道的可以往上划一划) 

注:三台虚拟机都要进行更改

8e5d8cab8c2849ef99793e91e1c5409f.png

 测试一下(因为文章的原因这里我只展示了虚拟机master1pingslave3和slave4,你们进行搭建的时候必须全部测试以下)成功ping通

c9cb091de1dd4501a6b7304581ddf95d.png

 下一步为三台虚拟机设置静态ip

设置命令为 vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO处改为static

下面的是要自己手动添加的

IPADDR=虚拟机ip地址

NETMASK=255.255.255.0

GATEWAY=网关

DNS1=与GATEWAY一致

下面是三台虚拟机配置好的截图

master1

04c79a2e285d4f13b78c7f0dd6730088.png

slave3

b1c3b5544d184c50aa223180d37e2878.png

slave4

98cbaadbd76841b3a2d98848ce85f443.png

 完成后使用service network restart指令重启网络,出现下面提示(就是那个原谅色的确定)说明重启成功(三台虚拟机都要重启) 

001f3c918b174429a2ed2e2e43ceb9e2.png

下一步永久关闭防火墙(三台虚拟机都要关闭防火墙)

防火墙永久关闭命令为

systemctl stop firewalld.service & systemctl disable firewalld.service

可以看到防火墙已经成功关闭

82e3e4eed9f14c0aa2d55ba639665616.png

接下来的操作只在master1上进行

 Hadoop安装

首先上传hadoop安装包到opt目录下(与jkd安装包上传方式相同不做演示)

上传完成后进入到opt目录下使用命令

tar -zxf hadoop-3.1.4.tar.gz

进行解压安装

之后使用vi ~/.bash_profile进行变量配置之后使用source ~/.bash_profile进行释放

用hadoop version进行查看

0abf18b048824813901d2bff6a2ab875.png

之后就是进行环境变量配置

在配置之前先设置一下免密钥登录

第一步设置密钥

ssh-keygen -t rsa  (这里是三次回车)

bdd9685b2de942a6a5b0e59b6aff0653.png

完成后将密钥发送个另外这三台虚拟机

这里直接打上yes 

297072141d4f4d138e896fb2ec48a42c.png

 这里的密码就是我们root用户的密码注意这里不会显示

34efcbf6cc054a70ae2cd27ea1e29355.png

 这个就完成了

ba558d77122b48e7b09f0ea872c16afa.png

之后使用命令

ssh-copy-id -i ~/.ssh/id_rsa.pub slave3
ssh-copy-id -i ~/.ssh/id_rsa.pub slave4

将密钥发送给slave3和slave4

然后用master1虚拟机连接slave3和slave4时只需要在初次连接时输入密码之后就都不需要了

这里我们看的连接上slave3后他的名称是master1这里其实是因为我为了方便并没有重启虚拟机如果大家害怕自己搞混了可以在更改完名称后重启一下自己的虚拟机

e1775930853c499fb5c372d95bcb1aa5.png

 下面就开始配置hadoop变量

首先进入/opt/hadoop-3.1.4/etc/hadoop目录下

第一步配置 hadoop-env.sh 变量 命令为 vi hadoop-env.sh

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

8d23e88bfc8143ba8720b84ea9f9ecb6.png

 

export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64

3f4e6354577347c998b8c15f177fc25d.png

第二步配置 core-site.xml 变量命令为 vi core-site.xml (这里的master1记得改成自己的虚拟机主机名

<!--hdfs临时路径-->
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
<!--hdfs的默认地址、端口访问地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master1:8020</value>
</property>

 

20128fe955e14d4a8a28cb45e5b704cd.png

第三步配置 hdfs-site.xml 变量 命令为 vi  hdfs-site.xml (这里的master1记得改成自己的虚拟机主机名

<property>
    <name>dfs.namenode.http-address</name>
    <value>master1:50070</value>
</property>
<!-- 副本数-->
<property>
        <name>dfs.replication</name>
        <value>2</value>
</property>
<!-- 是否启用hdfs权限检查 false 关闭 -->
<property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
</property>
<!-- 块大小,默认字节, 可使用 k m g t p e-->
<property>
        <name>dfs.blocksize</name>
        <value>134217728</value>
</property>
<property>
      <name>dfs.namenode.name.dir</name>
      <value>/data/hadoop/namenode</value>
</property>
<property>
      <name>dfs.datanode.name.dir</name>
      <value>/data/hadoop/datanode</value>
</property>

 

dc48a4797d1c44f88dfba4e5d09c2618.png

 

第四步配置 mapred-site.xml 变量,命令为 vi mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/opt/hadoop-3.1.4</value>
</property>
<property>
        <name>mapreduce.application.classpath</name>
        <value>/opt/hadoop-3.1.4/share/hadoop/mapreduce/*:/opt/hadoop-3.1.4/share/hadoop/mapreduce/lib/*</value>
</property>

 5659198fe2664bb68fe4b34b1a7dc1f9.png

 

 第五步配置 yarn-site.xml 变量,命令为vi yarn-site.xml  (这里的master1记得改成自己的虚拟机主机名

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master1</value>
</property>

<!-- NodeManager上运行的附属服务-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 关闭内存检测-->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

d80e604d575d4f449055d97b3dff9610.png

 

 第六步设置workers 变量 命令为 vi workers (这里的slave3和slave4记得改成自己创建的名称)

slave3
slave4
     

c223e350933c44edad83efc32caadb37.png

 配置完成后将配置好的hadoop拷贝到slave3和slave4上

命令为

scp -r /opt/hadoop-3.1.4/ slave3:/opt/

scp -r /opt/hadoop-3.1.4/ slave4:/opt/

e7d9afa6f9a345b3b2272785fd0ec2e0.png

 拷贝完成后下一步就要进行格式化了 (格式化尽量保证一次正确,多次格式化会报错)

首先先来新建几个文件夹

首先使用命令建立tmp和namenode文件夹

mkdir -p /data/hadoop/tmp
mkdir -p /data/hadoop/namenode

23ed1c85fc8841f5a569c75329226bb4.png

下一步使用命令在slave3和slave4虚拟机里面建立tmp和datanode文件夹

命令为

ssh slave3 "mkdir -p /data/hadoop/tmp"
ssh slave3 "mkdir -p /data/hadoop/datanode"
ssh slave4 "mkdir -p /data/hadoop/datanode"
ssh slave4 "mkdir -p /data/hadoop/tmp"

 4b178ec8a30f44fe8fc81c40330ecce3.png

 然后切换目录到hadoop安转目录的bin里输入命令

./hdfs namenode -format   进行格式化

1f8ce7cc9a544687a330a9b639b0a9ba.png

 格式化完成后转会到hadoop的sbin目录下

62b8dd50c61d488496196952e1d14054.png

 开启进程命令为

 ./start-dfs.sh

 ./start-yarn.sh

开启后使用 jps 查看进程是否正常启动

79681d494b104f61b11497ad0051c7d5.png

最后就是开启日志进行50070连接

 开启命令为

./mr-jobhistory-daemon.sh start historyserver

注意这里为主节点ip

(此次学习主节点为master1,分节点为slave3和slave4)
befdda0d82cc4a45b1adc5999a72fd4b.png

a3e4165e704f479e914cbdee343ff9da.png

 好了,这样我们的完全分布式环境搭建就完成了。

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我真的很笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值