虚拟机装Hadoop集群完全分布式

环境

系统:ContOS 8
虚拟机:VMware 16
hadoop:hadoop-3.3.0.tar.gz
JDK:jdk-8u241-linux-x64.tar.gz
文件上传工具 :WinSCP
连接Linux:XShell

可以在官网下载也可以在百度网盘下载:
操作系统:
链接:https://pan.baidu.com/s/1DuzjRqxwvMXjDsBXeXDObQ 
提取码:kdmn 

虚拟机:
链接:https://pan.baidu.com/s/1JVjnjvctpR-LaCC-iwRktQ 
提取码:9cp5 

Hadoop相关:
链接:https://pan.baidu.com/s/1dFLL3PcWsZmGSg1Ex5EzYA 
提取码:7ony 

要求

安装虚拟机时有三种网络模式:Bridged(桥接模式)、NAT(网络地址转换模式)、 Host-Only(仅主机模式)

安装桥接或者NAT模式
安装桥接或者NAT模式
安装桥接或者NAT模式

网络配置

三种网络模式的网络设置:https://blog.csdn.net/Noob_f/article/details/51099040

我的另一个文章:https://blog.csdn.net/qq_45638264/article/details/111027588
里面涉及IP、网关、掩码、DSN等的详细设置

设置域名

用root用户设置,两个系统都要弄

命令:vim /etc/hosts
在这里插入图片描述
保存即可

集群情况

系统名系统域名系统IP用户名
mastermaster192.168.163.10hadoop
worker01worker01192.168.163.11hadoop

上传文件

  1. 使用root在根目录下建一个bigdata目录:mkdir /bigdata

  2. 给目录加其它用户写的权限:chmod -R o+w /bigdata

  3. 使用WinScp软件上传文件
    这里的主机名填Linux系统的IP,用户名:root

在这里插入图片描述

创建hadoop用户
创建组:groupadd -r hadoop
创建用户:useradd -d /home/hadoop -s /bin/bash -g hadoop  hadoop
设密码:passwd hadoop
解压包到bigdata目录中

切换到hadoop用户操作

解压JDK:tar -zxvf jdk-8u241-linux-x64.tar.gz -C /bigdata/
解压Hadoop:tar -zxvf hadoop-3.3.0.tar.gz -C /bigdata/

重命名:
cd /bigdata
mv jdk-8u241-linux-x64  jdk
mv hadoop-3.3.0 hadoop
创建添加环境变量

使用root用户
命令: vim /etc/profile

##JAVA_HOME
export JAVA_HOME=/bigdata/jdk
export PATH=$JAVA_HOME/bin:$PATH

##HADOOP_HOME
export HADOOP_HOME=/bigdata/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

随后使用命令:source /etc/profile

查看是否成功:java -verison
在这里插入图片描述

免密登录

切换到hadoop用户

master机器:
S1:使用命令:ssh master
输入密码后
要是没有下面这种出现情况---hadoop@master
重启系统,切换到用户hadoop,再使用命令S1
你也可以重启ssh服务试试:命令:systemctl restart sshd

在这里插入图片描述

S2:使用命令:ssh-keygen -t rsa
后面都是默认,一直回车
S3:使用命令:cd .ssh
S4:使用命令:cat id_rsa.pub >> authorized_keys 


worker01机器:完成步骤:S1~S3
这里的S1:ssh worker01 
在hadoop的.ssh目录下

S5:将worker01的公钥发给master:scp id_rsa.pub hadoop@master:/home/hadoop/.ssh/id_rsa.pub.worker01

master机器:
S6:使用命令:cat id_rsa.pub.worker01 >> authorized_keys 

master将authorized_keys文件传给worker01
S7:使用命令:scp authorized_keys hadoop@worker01:/home/hadoop/.ssh/

S8:在两台机器上分别测试 
都是在Hadoop用户下
命令:ssh master、ssh worker

master:
在这里插入图片描述
worker01:
在这里插入图片描述

authorized_keys :
在这里插入图片描述
authorized_keys 文件是对的,但是就是不能免密登录,看我的另一文章:https://blog.csdn.net/qq_45638264/article/details/109114939

配置Hadoop文件

注意:完全分布式的Hadoop配置内容和伪分布式不同!! 利用hadoop搭伪分布式环境需要配置4个xml文件,这4个xml文件都在/bigdata/hadoop/etc/hadoop文件夹中。

先在master上配置,再通过scp命令复制到worker01

使用hadoop用户操作

1)修改hadoop-env.sh配置文件

配置hadoop-env.sh过程
S1:打开hadoop-env.sh文件,将当前位置切换了/bigdata/hadoop/etc/hadoop中,使用命令vim hadoop-env.sh,命令执行后hadoop-env.sh文件被打开
S2:在hadoop-env.sh文件中修改JAVA_HOME环境变量,将export JAVA_HOME=${JAVA_HOME}(虽然之前的代码也能获取到JAVA_HOME的值,但是有时候会失效)修改为export JAVA_HOME=/bigdata/jdk

(2)修改core-site.xml配置文件

配置core-site.xml过程
S1:打开core-site.xml文件,将当前位置切换了/bigdata/hadoop/etc/hadoop中,使用命令 vim core-site.xml,命令执行后,core-site.xml文件被打开
S2:在core-site.xml文件末尾添加上如下代码:
代码如下(<'configuration'><'/configuration'>标签原来就有):

<configuration>
  <property>
     <name>hadoop.tmp.dir</name>
     <value>/bigdata/hadoop/etc/hadoop/tmp</value>
     <description>Abase for other temporary directories.</description>
  </property>
  <property>
     <name>fs.default.name</name>
     <value>hdfs://master:9000</value>
     <final>true</final>
  </property>
</configuration>

注意: hadoop.tmp.dir文件不是一个临时文件,是存放所有master中数据的文件,其目录地址为:/bigdata/hadoop/etc/hadoop/tmp。

(3)修改hdfs-site.xml配置文件

配置hdfs-site.xml过程
S1:打开hdfs-site.xml文件,将当前位置切换了/bigdata/hadoop/etc/hadoop中,使用命令vim hdfs-site.xml,命令执行后hdfs-site.xml文件被打开
S2:在hdfs-site.xml文件末尾添加上如下代码:
代码如下(<'configuration'><'/configuration'>标签原来就有):

<configuration>
  <property>
     <name>dfs.replication</name>
     <value>2</value>
     <final>true</final>
  </property>
   <property>
      	<name>dfs.http.address</name>
        <value>0.0.0.0:50070</value>
 </property>
  </configuration>

注意:2是指备份2份(总共2份)。在hadoop中默认有3份文件(含备份),这里总共想要存放2份文件,则改为2。

dfs.http.address是为了让浏览器可以访问

(4)修改mapred-site.xml配置文件

配置mapred-site.xml过程
S1:(1)打开mapred-site.xml文件(你会发现在/bigdata/hadoop/etc/hadoop中没有mapred-site.xml文件,只有一个mapred-site.xml.template文件。这是因为mapreduce比较特殊,它可以配置也可以不配置,而其他例如core-site.xml存在因为其必须配置
(2)这里只需要将mapred-site.xml.template复制一下,并且将文件名改为mapred-site.xml进行修改即可,直接在/bigdata/hadoop/etc/hadoop/下使用 cp mapred-site.xml.template mapred-site.xml即可)
(3)将当前位置切换了/bigdata/hadoop/etc/hadoop/中,使用命令 vim mapred-site.xml,命令执行后mapred-site.xml文件被打开
S2:在mapred-site.xml文件末尾添加上如下代码:
代码如下(`<'configuration'>``<'/configuration'>`标签原来就有):
<configuration>
  <property>
     <name>mapred.job.tracker</name>
     <value>master:9001</value>
  </property>
</configuration>

(5)修改yarn-site.xml配置文件

配置yarn-site.xml过程
S1:打开yarn-site.xml文件,将当前位置切换了/bigdata/hadoop/etc/hadoop中,使用命令sudo vi yarn-site.xml,命令执行后yarn-site.xml文件被打开
S2:在yarn-site.xml文件末尾添加上如下代码:
代码如下(`<'configuration'>``<'/configuration'>` 标签原来就有):
<configuration>
  <property>
     <name>yarn.resourcemanager.hostname</name>
     <value>masater</value>
  </property>
  <property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
  </property>
</configuration>

(6)配置masters和slaves文件
切换至/bigdata/hadoop/etc/hadoop,使用ls查看文件,发现只有workers,这里使用cp workers masters 命令复制一下。

(1)配置的masters文件如下:
S1:打开masters文件,将当前位置切换了/bigdata/hadoop/etc/hadoop中,使用命令vim masters,命令执行后masters文件被打开
S2:在masters文件末尾添加上如下代码:

在这里插入图片描述

(2)配置的worker01文件如下:
S1:打开worker01文件,将当前位置切换了/bigdata/hadoop/etc/hadoop中,使用命令vim worker01,命令执行后worker01文件被打开
S2:在worker01文件末尾添加上如下代码:

在这里插入图片描述

(7)master向worker01节点复制hadoop配置

worker01系统中也必须用Root建一个bigdata目录

步骤
S1:复制JDK。将当前位置切换了/bigdata/下。scp -r jdk/ hadoop@worker01:/bigdata/
S1:复制Hadoop。将当前位置切换了/bigdata/下。scp -r hadoop/ hadoop@worker01:/bigdata/

(8)worker01中的环境变量和master是一样的。

格式化HDFS文件

在master中格式化
将当前位置切换了/bigdata/hadoop下

格式化:./hdfs namenode -format

启动hdfs

命令: ./sbin/start-dfs.sh
或者:start-dfs.sh

如果配置了yarn的话必须要启动yarn:./sbin/start-yarn.shstart-yarn.sh

查看是否启动

命令:jps

master机器:
在这里插入图片描述
worker01机器:
在这里插入图片描述

在本地浏览器访问:
hdfs:192.168.163.10:50070/
在这里插入图片描述

自此,安装成功,测试的话可以自己百度一个计算单词个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值