Hadoop高手之路7-Hadoop的新特性

news2024/10/5 19:14:42

文章目录

  • Hadoop高手之路7-Hadoop的新特性
    • 一、Hadoop2.0以上新特性
    • 二、Yarn资源管理框架
      • 1. yarn体系结构
      • 2. yarn的工作流程
    • 三、HDFS的高可用HA
      • 1. HDFS的高可用(HA)架构
      • 2. 搭建Hadoop高可用HA集群
        • 1) 规划集群节点
        • 2) 环境准备
        • 3) 配置HA集群
          • (1) 修改core-site.xml
          • (2) 修改hdfs-site.xml
          • (3) 修改mapred-site.xml
          • (4) 修改yarn-site.xml
          • (5) workers
          • (6) hadoop-env.sh
        • 4) 分发配置文件到ha002和ha003
        • 5) 启动HA集群
          • (1) 启动各节点的zookeeper
          • (2) 启动各节点监控NM的管理日志JournalNode
          • (3) 在ha001上格式化NM,并将格式化后的目录复制到ha002中
          • (4) 在ha001上格式化ZKFC
          • (5) 在ha001上启动HDFS
          • (6) 在node1上启动yarn
      • 3. 测试HA,模拟node1宕机

在这里插入图片描述

Hadoop高手之路7-Hadoop的新特性

一、Hadoop2.0以上新特性

组件hadoop1.0局限和不足hadoop2.0及以上改进
HDFSNameNode存在单点故障引入了高可用HA
MapReduceJobTrackerYarn

二、Yarn资源管理框架

1. yarn体系结构

  • ResourceManager:是一个全局的资源管理器,负责整个yarn集群资源的监控、分配和管理工作

  • NodeManager:是每个节点上的资源和任务管理器

  • ApplicationMaster:负责协调来自RM的资源,把获得的资源分配给内部的各个任务,实现“二次分配”。还通过NM监控容器的执行和资源的使用情况。

2. yarn的工作流程

image-20221205110911728

三、HDFS的高可用HA

1. HDFS的高可用(HA)架构

image-20221205110925521

2. 搭建Hadoop高可用HA集群

1) 规划集群节点

服务器NNDNRMNMJournalManager管理日志ZookeeperZKFC
node1
node2
node3

2) 环境准备

首先搭建Hadoop集群,建议大家重新搭建,巩固前面所学的知识,也可以在原有的基础上,创建快照,如下所示:

image-20221116085935056

image-20221116085943817

3) 配置HA集群

(1) 修改core-site.xml
<configuration>
	<!--用于设置hadoop的文件系统-->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://ns1</value>
	</property>
	<!--用于设置hadoop的临时文件目录-->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/export/data/hadoop/tmp</value>
	</property>
	<!--用于设置ZooKeeper-->
	<property>
		<name>ha.zookeeper.quorum</name>
		<value>ha001:2181,ha002:2181,ha003:2181</value>
	</property>
</configuration>

image-20221116161913148

(2) 修改hdfs-site.xml
<configuration>
	<!--用于设置hadoop的HDFS的副本的数目-->
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>	
	<!--用于设置hadoop的namenode的name数据的目录-->
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/export/data/hadoop/name</value>
	</property>
	<!--用于设置hadoop的datanode的data数据的目录-->
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/export/data/hadoop/data</value>
	</property>	
	
	<!--开启webHDFS-->
	<property>
		<name>dfs.webhdfs.enabled</name>
		<value>true</value>
	</property>
	<!--指定nameservice为ns1-->
	<property>
		<name>dfs.nameservices</name>
		<value>ns1</value>
	</property>
	<!--指定ns1下面有两个namenode,nn1和nn2	-->
	<property>
		<name>dfs.ha.namenodes.ns1</name>
		<value>nn1,nn2</value>
	</property>
	<!--指定nn1的rpc地址 -->
	<property>
		<name>dfs.namenode.rpc-address.ns1.nn1</name>
		<value>ha001:9000</value>
	</property>
	<!--指定nn1的http地址 -->
	<property>
		<name>dfs.namenode.http-address.ns1.nn1</name>
		<value>ha001:50070</value>
	</property>
	<!--指定nn2的rpc地址 -->
	<property>
		<name>dfs.namenode.rpc-address.ns1.nn2</name>
		<value>ha002:9000</value>
	</property>
	<!--指定nn2的http地址 -->
	<property>
		<name>dfs.namenode.http-address.ns1.nn2</name>
		<value>ha002:50070</value>
	</property>
	<!--指定nm的元数据在journalnode上的存放位置-->
	<property>
		<name>dfs.namenode.shared.edits.dir</name>
		<value>qjournal://ha001:8485;ha002:8485;ha003:8485/ns1</value>
	</property>
	<!--指定nn2的http地址 -->
	<property>
		<name>dfs.journalnode.edits.dir</name>
		<value>/export/data/hadoop/journaldata</value>
	</property>
	<!--开启namenode失败自动切换 -->
	<property>
		<name>dfs.ha.automatic-failover.enabled</name>
		<value>true</value>
	</property>
	<!--配置namenode失败自动切换的实现方式 -->
	<property>
		<name>dfs.client.failover.proxy.provider.ns1</name>
		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>
	<!--配置隔离机制的方法-->
	<property>
		<name>dfs.ha.fencing.methods</name>
		<value>
			sshfence
			shell(/bin/true)
		</value>
	</property>
	<!--开启sshfence隔离的免登录-->
	<property>
		<name>dfs.ha.fencing.ssh.private-key-files</name>
		<value>/root/.ssh/id_rsa</value>
	</property>
	<!--开启sshfence隔离的超时时间-->
	<property>
		<name>dfs.ha.fencing.ssh.connect-timeout</name>
		<value>30000</value>
	</property>

</configuration>

image-20221116162422191

image-20221116162522883

image-20221116162541221

(3) 修改mapred-site.xml
<configuration>
	<!--用于设置hadoop的MapReduce的运行框架为yarn-->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
	<property>
		<name>yarn.app.mapreduce.am.env</name>
		<value>HADOOP_MAPRED_HOME=/export/servers/hadoop-3.1.4/</value>
	</property>
	<property>
		<name>mapreduce.map.env</name>
		<value>HADOOP_MAPRED_HOME=/export/servers/hadoop-3.1.4/</value>
	</property>
	<property>
		<name>mapreduce.reduce.env</name>
		<value>HADOOP_MAPRED_HOME=/export/servers/hadoop-3.1.4/</value>
	</property>
</configuration>

image-20221116165004357

(4) 修改yarn-site.xml
<configuration>	
	<!--用于设置hadoop的yarn是否需要辅助shuffle-->
	<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>		
    <!--是否开启RM ha,默认是开启的-->  
    <property>  
       <name>yarn.resourcemanager.ha.enabled</name>  
       <value>true</value>  
    </property>
    <!--声明两台resourcemanager的地址-->
    <property>
       <name>yarn.resourcemanager.cluster-id</name>  
       <value>yrc</value>        
    </property>
    <property>  
       <name>yarn.resourcemanager.ha.rm-ids</name>  
       <value>rm1,rm2</value>  
    </property>
    <property>  
       <name>yarn.resourcemanager.hostname.rm1</name>  
       <value>ha001</value> 
    </property>  
    <property>  
       <name>yarn.resourcemanager.hostname.rm2</name>
       <value>ha002</value>  
    </property>  

    <!--指定zookeeper集群的地址-->   
    <property>  
       <name>yarn.resourcemanager.zk-address</name>
        <value>ha001:2181,ha002:2181,ha003:2181</value>
    </property>  
    <!--启用自动恢复,当任务进行一半,rm坏掉,就要启动自动恢复,默认是false-->
    <property>  
       <name>yarn.resourcemanager.recovery.enabled</name>
       <value>true</value>  
    </property>  

    <!--指定resourcemanager的状态信息存储在zookeeper集群,默认是存放在FileSystem里面。-->
    <property>  
       <name>yarn.resourcemanager.store.class</name>
       <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
    </property> 
</configuration>

image-20221116165249150

image-20221116165307821

(5) workers
ha001
ha002
ha003

image-20221116165356125

(6) hadoop-env.sh

image-20221116165422145

image-20221116165437212

4) 分发配置文件到ha002和ha003

image-20221116173902050

image-20221116173921856

5) 启动HA集群

(1) 启动各节点的zookeeper

image-20221116174234692

image-20221116174253148

image-20221116174312812

(2) 启动各节点监控NM的管理日志JournalNode

image-20221116174521300

image-20221116174540634

image-20221116174557411

(3) 在ha001上格式化NM,并将格式化后的目录复制到ha002中

image-20221116174839867

image-20221116175122213

分发到ha002

image-20221116180408259

(4) 在ha001上格式化ZKFC

image-20221116192249534

(5) 在ha001上启动HDFS

image-20221116180730366

出现错误,修改hadoop-env.sh文件

image-20221116181102156

分发该文件到ha002上

image-20221116181716861

停止hdfs,然后再重新启动hdfs

image-20221116192342118

(6) 在node1上启动yarn

image-20221116192552735

image-20221116192616777

image-20221116192642741

3. 测试HA,模拟node1宕机

image-20221116192945420

image-20221116193042601

image-20221116193144973

kill掉ha001的相关的进程

image-20221116193327649

再查看

image-20221116193404228

image-20221116193459624

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ROS】—— ROS通信机制——实践与练习(六)

文章目录前言1. 话题发布1.1 C方式实现1.2 python实现2. 话题订阅2.1 C实现2.2 python实现3. 服务调用3.1 C3.2 python4. 参数设置4.1 C4.2 python4.3 运行4.4 其他方式4.4.1 修改小乌龟节点的背景色(命令行实现)4.4.2 启动节点时&#xff0c;直接设置参数4.4.3 通过launch文件…

Java测试框架——JUnit详解(45)

文章目录前言何为JUnit&#xff1f;官方资料JUnit4常用注解和断言代码测试搭建一个JUnit测试环境生命周期忽略测试断言测试异常测试测试时间套件测试JUnit5JUnit5对比JUnit4的好处导包的改变注解的改变扩展JUnit新功能&#xff1a;参考文章JUnit是Java编程语言的单元测试框架&a…

list的介绍及模拟实现

&#x1f308;感谢阅读East-sunrise学习分享——list的介绍及模拟实现 博主水平有限&#xff0c;如有差错&#xff0c;欢迎斧正&#x1f64f;感谢有你 码字不易&#xff0c;若有收获&#xff0c;期待你的点赞关注&#x1f499;我们一起进步 今天想分享介绍一下STL的容器之一lis…

openharmony GPIO 驱动开发

openharmony GPIO 驱动开发GPIO 基础知识GPIO 基础知识——概念GPIO 基础知识——IO 复用GPIO 基础知识——GPIO 分组和编号GPIO 基础知识——用户态测试HDF 框架下 GPIO 驱动HDF 框架下的 GPIO 驱动——案例描述(以 HI3516DV300 平台为例&#xff0c;提供代码)HDF 框架下的 GP…

为什么jvm需要有栈协程?

旧有的servlet生态的线程模型 首先我们先要聊一聊现在我们用的最多的servlet的执行模型是什么&#xff1a; 这个dispatch其实就是一个EventLoop或者说是一个selector来检测注册到其上的链接状态发生的变化 以Tomcat为例子&#xff0c;当这个selector发现存在一个链接可读时&…

【node.js】fs\path\http模块的使用

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;Node.js的fs\path\http模块的使用&#xff0c;模块化开发概念 目录 一、node.js概念与作…

一个曾经分享动态(2021)的回顾和解释-2023-

虽然看过一些典故&#xff0c;里面有名言道&#xff1a; 解释永远是多余的&#xff0c;理解的人不需要&#xff0c;不理解的更不需要。 但是&#xff0c;误会还是需要沟通来消除的。 例如&#xff0c;曾经分享过&#xff1a; 如下都是误会 ↓↓↓↓↓↓↓↓↓ 有朋友联系我&a…

解决东方财富数据接口激活后仍显示reactive的问题

首先确保代码可以在python中导入这个包&#xff1a; from EmQuantAPI import c如果无法导入&#xff0c;就是python没有配置好东方财富的接口&#xff0c;可以参考&#xff1a; Mac版本&#xff1a;Mac使用Python接入东方财富量化接口Choice&#xff0c;调试与获取数据Window…

北京智和信通:信创运维自动化,全栈适配国产软硬件环境

近年来&#xff0c;新基建和信创产业政策东风席卷神州&#xff0c;国产CPU、操作系统、关键应用软件等核心技术步入发展快车道&#xff0c;一批优秀软硬件产品走进政府机关、国企事业单位。在国产软硬件核心技术崛起的过程中&#xff0c;如何迅速搭建起成熟的生态环境是行业面临…

LeetCode135之分发糖果(相关话题:数组,贪心思想)

题目描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#xff0c;计算并返回需…

【node.js】跨域的解决办法(CORS方法、同源策列的理解)

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;面对cors跨域、同源策略的处理 下图为本文的核心 目录 一、 跨域介绍 二、同源策略 三…

正态分布与numpy.random.normal函数

文章目录1. 正态分布2. numpy.random.normal函数3. 示例在Numpy中&#xff0c;有一个专门用于生成符合正态分布的随机数函数&#xff1a;numpy.random.normal&#xff0c;本文我们梳理一下它的使用方法&#xff0c;在梳理前&#xff0c;需要先了解一下什么是正态分布。 1. 正态…

黑马Hive+Spark离线数仓工业项目-任务流调度工具AirFlow(1)

任务流调度工具AirFlow 1. AirFlow介绍【了解】 - 功能、特点 - 架构角色、安装部署 2. **AirFlow使用【掌握】** - 核心&#xff1a;调度脚本【Python | Shell】 - 定时调度&#xff1a;Linux Crontab表达式 - 邮件告警&#xff1a;配置 3. 回顾Spark核心概念 - 存…

【10个基本网络故障排查工具-每个IT专业人员应了解】

网络故障排除工具是每个网络管理员的必需品。 在网络领域入门时&#xff0c;重要的是要积累一些可用于解决各种不同网络状况的工具。 虽然特定工具的使用确实是主观的并且由工程师自行决定&#xff0c;但本文中的工具选择是基于它们的一般性和通用性。 本文回顾了可帮助您解决大…

聊聊业务项目如何主动感知mysql是否存活

前言 先前写过一篇文章聊聊如何利用redis实现多级缓存同步,里面讲到业务部门因数据库宕机&#xff0c;有技术提出当数据库宕机&#xff0c;切换到redis&#xff0c;今天我们就来聊聊如何触发这个切换动作&#xff1f; 1、方案一&#xff1a;利用异常机制 伪代码如下&#xf…

大三寒假人生第一次面试失败

2022/12/28&#xff0c;今天是人生第一次面试。坐了2个小时的地铁去面试结果却很惨。一开始进门就笔试&#xff0c;当看到笔试题时发现很多基础&#xff0c;平时耳熟能详的词汇却怎么样也回答不出来。做了一个多小时&#xff0c;当面试官把题改了以后一句笔试没过。说真的在出门…

RocketMQ消息队列的下载、配置、启动、测试

目录 下载 环境变量的配置 新建一个变量 配置path 新建变量 启动 命名服务器 启动broker 测试是否启动成功 下载 地址&#xff1a;RocketMQ 官方网站 | RocketMQ 切换到中文模式很容易看的 下载那一列就行了 安装很容易的。 环境变量的配置 新建一个变量 就是你的bin文…

No.181# 点直播简要架构梳理走查

引言直播带货、潮流电商、短视频不断融合&#xff0c;本文走查下音视频直播的简要架构和角色。选择UDP&#xff0c;注重传输实时性&#xff0c;在线教育、音视频会议等。选择TCP&#xff0c;注重画面质量、是否卡顿等&#xff0c;娱乐直播、直播带货等。本文主要内容有&#xf…

RPA:帮助企业完成财务数字化转型

为什么要做财务的数字化转型 a. 传统企业财务的现状 “重复性强、耗时耗力、效率低下”是目前大家对传统企业财务的固有印象。很多企业的财务部门仍然采用传统的手工操作模式&#xff0c;财务流程繁琐分散&#xff0c;且财务部门缺乏获取、处理数据的工具。绝大部分的人力都投…

2022LOL微博杯模糊问题,1080p高清看微博杯the shy比赛直播

2022LOL微博杯的直播模糊&#xff0c;看着不爽 观看方法 1.打开下面在线播放m3u8文件的地址 http://www.m3u8.zone/ 如图 2.输入播放地址 微博杯的播放地址&#xff1a; &#xff08;1月三号的地址 如果失效往下看解决方法&#xff09; https://plwb01.live.weibo.com/ali…