【Hadoop】创建Hadoop集群,2024年最新头条面试Linux运维

2.1集群环境准备

集群模式主要用于生产环境部署,需要多台主机,并且这些主机之间可以相互访问,我们在之前搭建好基础环境的三台虚拟机上进行Hadoop的搭建

(1)找到之前伪分布式hadoop虚拟机的路径

(2)创建三个文件夹master、slave1、slave2,然后复制步骤1中找到的虚拟机文件,并分别粘贴一份到这三个文件夹中

(3)用VMware Workstation,打开master、slave1、slave2文件夹下的虚拟机,并重命名,以防万一与之前伪分布式的虚拟机搞混了

2.2修改master、slave1、slave2的ip

master、slave1、slave2这三台虚拟机是从原有的虚拟机拷贝过来的,所有东西都是一样的,包括环境变量、已安装的程序(jdk、redis、hadoop、hbase等)、ip、主机名。而不同的主机,ip肯定不能一样,所以要修改这三台虚拟机的ip和主机名。

打开网卡配置文件,将IPADDR修改为部署规划的master ip,然后保存退出

代码示例如下:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

ip修改后,重启网卡重启网卡,并验证是否可以访问外网:

代码示例如下:

systemctl restart network
ping www.baidu.com

执行hostnamectl set-hostname …(master/slave1/slave2),将主机名分别改为master、slave1、slave2

退出root,再重新登录,命令行提示符看到最新的主机名

2.3修改master、slave1、slave2的主机名和IP的映射

我们知道,网络中,都是通过IP来通信的,在集群中,如果想要通过主机名通信,则还要设置IP来与之对应,类似于域名要绑定IP。编辑/etc/hosts这个文件,然后追加一条记录,master、slave1、slave2三个主机的/etc/hosts新增的映射记录一样

能ping成功三个主机名,说明映射配置成功

提示:为了避免手写错误,master的hosts映射配置好后,可以通过scp命令,将master修改好的/etc/hosts文件,同步到slave1、slave2主机上。

2.4设置免密登录

想要在机器1上,远程控制机器2,常用的方案就是在机器1安装ssh客户端,机器2安装ssh服务端,ssh客户端和ssh服务端之间的通信协议是ssh协议。在linux系统中ssh命令,就是一个ssh客户端程序,sshd服务,就是一个ssh服务端程序。在windows中,给大家提供的mobaxterm是一个图形化界面的ssh客户端。因为master、slave1、slave2三个节点都是从之前的已经安装好Hadoop伪分布式的虚拟机复制而来,而当时已经设置了免密登录,故不需再设置了,也就是master可以免密登录到master、slave1、slave2。

2.5关闭防火墙

防火墙实质是一个程序,它可以控制系统进来或者出去的流量,Centos7默认情况下,防火墙是开机自起的,在集群部署模式下,各个节点之间的进程要通信,为了方便,一般都要关闭防火墙。同理,之前已经设置不允许防火墙开机自启,默认开机是关闭的,故也不需要操作。

2.6删除Hadoop伪分布式数据

因为master、slave1、slave2三个节点都是从之前的已经安装好Hadoop伪分布式的虚拟机复制而来,为了保证整个进程环境干净,我们需要删除这三个节点/usr/local/hadoop-2.7.1/data路径。

2.7修改hadoop配置文件

vi core-site.xml,该配置文件内容如下:

<configuration>
      <!-- hdfs分布式文件系统名字/地址 -->
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
      </property>
      <!--存放namenode、datanode数据的根路径 -->
      <property>
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop-2.7.1/data</value>
      </property>
  </configuration>

vi hdfs-site.xml,该配置文件内容如下:

<configuration>
    <!-- 数据块副本数 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!-- secondary namenode 按照规划部署到slave1上 -->
    <property>
        <name>dfs.secondary.http.address</name>
        <value>slave1:50090</value>
    </property>
</configuration>

vi yarn-site.xml,该配置文件内容如下:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>

vi mapred-site.xml,该配置文件内容如下:

vi mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

slaves文件里面记录的是集群主机名。一般有以下两种作用:

一是:配合一键启动脚本,如start-dfs.sh、stop-yarn.sh用来进行集群启动,这时候slaves文件里面的主机标记的就是从节点角色所在的机器。

二是:可以配合hdfs-site.xml里面dfs.hosts属性形成一种白名单机制。

dfs.hosts指定一个文件,其中包含允许连接到NameNode的主机列表,必须指定文件的完整路径名,那么所有在slaves中的主机才可以加入的集群中。如果值为空,则允许所有主机。

vi slaves,该配置文件内容如下:

2.8将master主机上的hadoop配置文件,同步到其他两个主机上

scp第一个参数*表示当前路径下的所有文件,第二个参数冒号左边表示目标主机,冒号右边表示目标主机的路径。pwd打印出当前路径

整句命令的作用是将当前路径下的所有文件,以root身份,同步到slave1、slave2的pwd输出的路径下

2.9时间同步

hadoop集群各个节点之间的时间应该一致,也就是master当前时间如果是2023-01-01 01:01:01,那么slave1和slave2上也应该是这个时间,如果各个节点之间时间不一致/不同步,那么集群就会出现一些错误。ntp(Network Time Protocol,网络时间协议)是一种跟时间设置相关的协议。客户端-服务端架构,ntp.api.bz是一个公开的ntp服务器,执行ntpdate ntp.api.bz命令,可以从这个ntp服务器拉取时间并更新当前机器的时间。在master、slave1、slave2上分别执行该命令,即可完成时间同步,此时三个节点的时间应该是一致的。

2.10NameNode格式化

格式化只需格式化一次,以后启动Hadoop集群时,不需要再格式化。

在master上执行格式化命令:hdfs namenode -format

2.11hadoop集群的启动和停止

启动:start-all.sh

停止:stop-all.sh

master启动了四个进程,与规划表对应

slave1启动了三个进程,与规划表对应

slave2启动了三个进程,与规划表对应

2.12查看hdfs的web管理页面

浏览器访问master的50070端口:http://192.168.1241.100:50070

可以看到hdfs有三个datanode节点,没有节点可用的磁盘空间是 16.99GB

2.13查看yarn的web管理页面

验证是否部署成功

192.168.241.100:8088/cluster/nodes

IP改为本人真实IP,访问该地址,看到该页面,YARN组件部署成功

hadoop部署总结:

互联网的快速发展带来了数据快速增加,海量数据的存储已经不是一台机器所能处理的问题了。Hadoop的技术应运而生,对于伪分布式存储,Hadoop有自己的一套系统Hadoop distribution file system来处理,为什么分布式存储需要一个额外的系统来处理,而不是就把1TB以上的文件分开存放就好了呢,如果不采用新的系统,我们存放的东西没办法进行一个统一的管理。存放在A电脑的东西只能在连接到A去找,存在B的又得单独去B找,繁琐目不便干管理,而这个分布式存储文件系统能把这些文件分开存储的过程透明化,用户看不到文件是怎么存储在不同电脑上,看到的只是一个统一的管理界面。现在的云盘就是很好的给用户这种体验。对于分布式计算,在对海量数据进行处理的时候,一台机器肯定也是不够用的,所以也需要考虑将将数据分在不同的机器上并行的进行计算,这样不仅可以节省大量的硬件的1/0开销,也能够将加快计算的速度。

三、HBase部署

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

资料预览

给大家整理的视频资料:

[外链图片转存中…(img-1fqa6oUG-1712750738253)]

给大家整理的电子书资料:

[外链图片转存中…(img-vspRZc96-1712750738253)]

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-LJhzT3JQ-1712750738254)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值