hadoop3.2.4 集群环境搭建

本文介绍hadoop3.2.4集群环境搭建看本文之前最好先看看伪分布式的
搭建文章链接如下,因为有些问题是伪分布式的时候遇到的,这里就不重复展示解决办法了。
链接:伪分布式搭建

文章目录

  • 前言
  • 一、准备机器
  • 二、linux环境准备工作
    • 2.1 修改主机名
    • 2.2 停止并且禁用防火墙
    • 2.3 配置机器之间的免密登录
      • 2.3.1 生成公钥私钥
      • 2.3.2 拷贝公钥到需要免密登录机器
      • 2.3.3 测试免密登录
  • 三、hadoop配置文件修改
    • 3.1修改core-site.xml
    • 3.2 修改hdfs-site.xml文件
    • 3.3 修改mapred-site.xml文件
    • 3.4 修改 yarn-site.xml文件
    • 3.5 修改workers文件
    • 3.6 配置文件拷贝到其他机器上
  • 四、启动集群
    • 4.1 在hadoop1上启动hdfs
    • 4.2 hadoop2上启动yarn
  • 五、运行测试demo
    • 5.1 计算圆周率demo
  • 六、启动脚本
  • 七、关键配置说明
    • 7.1yarn-site.xml 中
    • 7.2 hdfs-site.xml,确定secodarynamenode程序位置
    • 7.3确定yarn启动的节点是hadoop2。core-site.xml
    • 7.4 workers文件的配置,
  • 八、总结


前言

实际运用中,hadoop的搭建一定是集群部署方式,所以这里搭建了下集群部署方式,也熟悉hadoop的集群搭建。


一、准备机器

这次搭建,准备了三台虚拟机,分别是
hadoop1 192.168.184.129
hadoop2 192.168.184.130
Hadoop3 192.168.184.131
三台虚拟机相互要能ping通,我这里使用的是虚拟机用的nat网络配置,可以看我另一篇文章有说如何配置。nat虚拟网络配置
节点的部署规划如下

Hadoop1hadoop2hadoop3
hdfsNameNode DataNodeSecondaryNameNode DataNodeDataNode
yarnNodeManagerNodeManager ResourceManagerNodeManager

二、linux环境准备工作

以下操作需要在三台机器都进行操作,

2.1 修改主机名

Vi  /etc/hostname```

修改主机名分别为hadoop1、hadoop2、hadoop3
添加ip映射主机名

Vi /etc/hosts
192.168.184.129 hadoop1
192.168.184.130 hadoop2
192.168.184.131 hadoop3

2.2 停止并且禁用防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

2.3 配置机器之间的免密登录

免密登录的原理图如下,
在这里插入图片描述

2.3.1 生成公钥私钥

ssh-keygen -t rsa

2.3.2 拷贝公钥到需要免密登录机器

然后进入 cd .ssh 目录
可以看到有两个文件

cd .ssh

在这里插入图片描述
分别是私钥和公钥,拷贝公钥到hadoop2、hadoop3
执行

ssh-copy-id hadoop2
ssh-copy-id hadoop3

2.3.3 测试免密登录

ssh hadoop2
ssh hadoop3

在这里插入图片描述

如果不需要输入密码则修改成功,同理,在hadoop2、hadoop3上设置到另外两台机器免密登录。这里就不展示了,一样的操作。

三、hadoop配置文件修改

在安装目录的 etc/hadoop目录下修改以下文件。

3.1修改core-site.xml

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.184.129:8020</value>
</property>

<!-- 设置Hadoop本地保存数据路径 注意这个目录不存在会导致启动不起来-->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/tools/hadoop-3.2.4/data</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>

<!-- 文件系统垃圾桶保存时间 -->
<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>

3.2 修改hdfs-site.xml文件

<!-- 设置SecondNameNode进程运行机器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.184.130:9868</value>
</property>

3.3 修改mapred-site.xml文件

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序历史服务地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>192.168.184.129:10020</value>
</property>
 
<!-- MR程序历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>192.168.184.129:19888</value>
</property>

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

3.4 修改 yarn-site.xml文件

<!-- 设置YARN集群主角色运行机器位置 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>192.168.184.130</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 是否将对容器实施物理内存限制 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 开启日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://192.168.184.129:19888/jobhistory/logs</value>
</property>

<!-- 历史日志保存的时间 7-->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>

3.5 修改workers文件

192.168.184.129
192.168.184.130
192.168.184.131

3.6 配置文件拷贝到其他机器上

scp -r /root/tools/hadoop-3.2.4/etc/hadoop root@hadoop2:/root/tools/hadoop-3.2.4/etc/hadoop
scp -r /root/tools/hadoop-3.2.4/etc/hadoop root@hadoop3:/root/tools/hadoop-3.2.4/etc/hadoop

四、启动集群

注意如果是初次执行启动,需要在每台机器上执行初始化操作

hdfs namenode –format

4.1 在hadoop1上启动hdfs

安装目录我的是/root/tools/hadoop-3.2.4上执行以下操作。

./sbin/start-dfs.sh

启动dfs报错如下

dfs/name is in an inconsistent state: storage directory does not exist or is not accessible

解决:重新格式化namenode

hdfs namenode –format

我的不是这个问题,是路径前面多了一个空格去掉空格即可。
启动成功后访问namenode管理页面
http://192.168.184.129:9870 可以看到三个datanode都起起来了
在这里插入图片描述

4.2 hadoop2上启动yarn

./sbin/start-yarn.sh

访问resourcemanager管理页面
http://192.168.184.130:8088

在这里插入图片描述

五、运行测试demo

5.1 计算圆周率demo

到 share/mapreduce/目录表执行

hadoop jar hadoop-mapreduce-examples-3.2.4.jar pi 2 4

结果如图所示
在这里插入图片描述

六、启动脚本

启动有点麻烦,写了个脚本,只需要执行一次即可启动,关闭集群。
hadoop.sh,修改文件后需要修改执行权限,

chmod 777 hadoop.sh
#!/bin/bash
# 判断参数个数
if [ $# -ne 1 ];then
 echo "need one param, but given $#"
fi
 
# 操作hadoop
case $1 in
"start")
	echo " ========== 启动hadoop集群 ========== "
	echo ' ---------- 启动 hdfs ---------- '
	ssh hadoop1 "/root/tools/hadoop-3.2.4/sbin/start-dfs.sh"
	echo ' ---------- 启动 yarn ---------- '
	ssh hadoop2 "/root/tools/hadoop-3.2.4/sbin/start-yarn.sh"
	;;
"stop")
	echo " ========== 关闭hadoop集群 ========== "
	echo ' ---------- 关闭 yarn ---------- '
	ssh hadoop1 "/root/tools/hadoop-3.2.4/sbin/stop-yarn.sh"
	echo ' ---------- 关闭 hdfs ---------- '
	ssh hadoop2 "/root/tools/hadoop-3.2.4/sbin/stop-dfs.sh"
	;;
*)
	echo "Input Param Error ..."
	;;
esac

启动集群,关闭集群

./hadoop.sh start
./hadoop.sh stop

七、关键配置说明

节点关键的配置有,

7.1yarn-site.xml 中

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

7.2 hdfs-site.xml,确定secodarynamenode程序位置

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>192.168.184.130:9868</value>
</property>

7.3确定yarn启动的节点是hadoop2。core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://192.168.184.129:8020</value>
</property>

确定namenode位置也就是,hdfs启动节点是hadoop1

7.4 workers文件的配置,

就是确定datanode和nodemanage所有节点都运行。

八、总结

这里我就没有新建用户来运行hadoop程序,严格来说不能直接用root运行hadoop程序,这里我就懒得弄了,就直接用root运行,用root运行方法前一篇文章有说,可以看看前面的文章。这里展示了从头到尾的集群搭建过程也记录了遇到的问题,如果对你有帮助点个赞吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/7905.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

超详细从入门到精通,pytest自动化测试框架实战-钩子函数(五)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 pytest这个框架提供…

政务云建设与应用解决方案

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除 政府信息化趋势-四大四新-政务云需求 大平台共享-新设施&#xff1a;打造形成“覆盖全市、统筹利用、统一投入”的大平台&#xff0c;有力促进政务信息系统整合&#xff1b; 大…

面试官:说一说mysql的varchar字段最大长度?

在mysql建表sql里&#xff0c;我们经常会有定义字符串类型的需求。 CREATE TABLE user (name varchar(100) NOT NULL DEFAULT COMMENT 名字 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 ;比方说user表里的名字&#xff0c;就是个字符串。mysql里有两个类型比较适合这个场景。 ch…

【Maven】2—命令行创建Web工程依赖排除

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

【游戏逆向】FPS游戏玩家对象数据分析

目标(Objective) Ÿ Health Ÿ Rifle Ammo Ÿ Pistol Ammo Ÿ Player Pointer 0x01 玩家健康 查找玩家健康值&#xff0c;玩家健康值是100&#xff0c;但是我们并不知道数值类型&#xff0c;我们可以使用精确搜索方式搜索100-所有类型 CE搜索 结果很多&#xff0c;我们…

Windows/Mac/Linux测试远程端口是否开放

目录 Windows 第一种 第二种 Mac/Linux Windows 第一种 WinR快捷键, 在弹出的运行框中输入powershell 接着在powershell窗口中输入&#xff1a; Test-NetConnection ip地址 -Port 端口号 使用这个命令有个好的地方是如果失败了, 那么它会帮你去ping远程ip, 这样就不需…

ARIMA序列分析

1. 什么是平稳序列 &#xff08;stationary series&#xff09;&#xff1a;基本上不存在趋势的序列&#xff0c;各观察值基本上在某个固定的水平上波动或虽有波动&#xff0c;但并不存在某种规律&#xff0c;而其波动可以看成是随机的。 2. ARMA模型 ARIMA的优缺点 优点&am…

2023Q2押题,华为OD机试用Python实现 -【查找舆情热词 or 热词排序】

最近更新的博客 华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典【华为 OD 机试】全流程解析+经验分享,题型分享,防作弊指南华为 od 机试,独家整理 已参加机试人员的实战技巧本篇题解:查找舆情热词 or 热…

学校的地下网站(学校的地下网站1080P高清)

这个问题本身就提得有问题&#xff0c;为什么这么说&#xff0c;这是因为YouTube本身就不是一个视频网站或者说YouTube不是一个传统的视频网站&#xff01;&#xff01;&#xff01; YouTube能够一家独大&#xff0c;可不仅仅是因为有了Google这个亲爹&#xff0c;还有一点&…

牛客网在线编程SQL篇非技术快速入门题解

大家好&#xff0c;我是RecordLiu。 初学SQL,有哪些合适的练习网站推荐呢? 如果你有编程基础&#xff0c;那么我推荐你到Leetcode这样的专业算法刷题网站&#xff0c;如果没有&#xff0c;也不要紧&#xff0c;你也可以到像牛客网一样的编程网站去练习。 牛客网有很多面向非技…

为什么数字工厂管理系统是电子企业的必备品

与许多电子制造企业观望心态有所不同的是&#xff0c;电子产品分销商正在积极投身于实施数字工厂系统&#xff0c;部分分销商对已完成实施的系统赞不绝口。 数字工厂在元器件分销业的应用逐渐普遍 在一些大型分销商的影响下&#xff0c;数字工厂在分销行业的应用加快。相比而…

Java I/O流

I/O流I/O流IO流体系字节流体系FileOutPutStream(字节输出流)FileInPutStream(字节输入流)练习&#xff1a;文件拷贝Java中编码与解码的方法字符流FileReaderFileWriter综合练习缓冲流体系字节缓冲流字符缓冲流综合练习2转换流序列化流(对象操作输出流)/反序列化流(对象操作输入…

小白必看,吐血整理Facebook新手指南(一)

Facebook广告是营销人员工具包中最强大的工具。脸书广告可以帮助你实现几个高层次的商业目标&#xff0c;包括提高品牌知名度&#xff0c;产生线索&#xff0c;为你的商业网站带来流量&#xff0c;等等。本指南将帮助你创建你的第一个Facebook广告活动。它还将提供经过验证的技…

全链路追踪系统在技术运营层面的应用

随着微服务和分布式架构的引入&#xff0c;各类应用和基础组件形成了网状的分布式调用关系&#xff0c;这种复杂的调用关系就大大增加了问题定位、瓶颈分析、容量评估以及限流降级等稳定性保障工作的难度。正是这样的背景&#xff0c;催生了全链路追踪的解决方案。 这里的一个…

java版工程项目管理系统 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单

ava版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…

学习数据结构第3天(线性表的定义和基本操作)

线性表的定义和基本操作前言线性表的定义线性表的基本操作经典试题前言 线性表是算法题命题的重点。这类算法题实现比较容易且代码量较少&#xff0c;但是要求具有最优的性能&#xff08;时间复杂度、空间复杂度&#xff09;&#xff0c;才能获得满分。因此应牢固掌握线性表的…

【牛客刷题专栏】0x18:JZ16 数值的整数次方(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转)&#xff0c;它登陆后会保存刷题记录进度&#xff0c;重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏&#xff1a;个人CSDN牛客刷题专栏。 题目来自&#xff1a;牛客/题库 / 在线编程 / 剑指offer&#xff1a; 目录前言问题…

安全防御 --- APT、密码学

APT 深度包检测技术&#xff1a;将应用层内容展开进行分析&#xff0c;根据不同的设定从而做出不同的安全产品。 深度流检测技术&#xff1a;与APS画像类似。会记录正常流量行为&#xff0c;也会将某些应用的行为画像描述出来。也可将加密流量进行判断&#xff0c;并执行相应措…

程序员必知必会7种UML图(类图、序列图、组件图、部署图、用例图、状态图和活动图)画法盘点

众所周知&#xff0c;软件开发是一个分阶段进行的过程。不同的开发阶段需要使用不同的模型图来描述业务场景和设计思路&#xff0c;在不同的阶段输出不同的设计文档也是必不可少的&#xff0c;例如&#xff0c;在需求分析阶段需要输出领域模型和业务模型&#xff0c;在架构阶段…

2023疫情当头,3个月转行软件测试拿下8k+offer,我心满意足了

从2020年的疫情开始&#xff0c;全世界好像按下了暂停键一般&#xff0c;大量新网民涌入互联网。我们的生活方式也随之改变&#xff0c;失业也如洪流般席卷整个世界&#xff0c;宅家的人数在变多&#xff0c;当然大多数人开始寻求新的工作方式&#xff0c;随之进军互联网的人开…
最新文章