Hadoop概念学习(无spring集成)

Hadoop

分布式的文件存储系统

三个核心组件

image-20230624113408665

但是现在已经发展到很多组件的s

img

或者这个图

image-20230624161959113

官网地址:

https://hadoop.apache.org

历史

hadoop历史可以看这个:

https://zhuanlan.zhihu.com/p/54994736

image-20230624163111877

优点

高可靠性: Hadoop 底层维护多个数据副本,所以即使 Hadoop 某个计算元素或存储出现故障,也不会导致数据的丢失。
高扩展性: 在集群间分配任务数据,可方便的扩展数以千计的节点。
高效性: 在 MapReduce 的思想下,Hadoop 是并行工作的,以加快任务处理速度。
高容错性: 能够自动将失败的任务重新分配。

架构变迁

Hadoop1.0

HDFS(分布式文件存储)

MapReduce(资源管理和分布式数据处理)

image-20230624172419889

Hadoop2.0

HDFS(分布式文件存储)

MapReduce(分布式数据处理)

YARN(集群资源管理,任务调度)

image-20230624172433001

Hadoop3.0

专注于性能优化

1.精简内核,类路径隔离,shell脚本重构

2.Hadoop HDFS 上 EC纠删码,多NameNode支持

3.Hadoop MapReduce 任务本地优化,内存参数自动推断

Hadoop YARN timeline service v2 队列配置

集群介绍:

image-20230624173514642

文件资源管理的集群与任务调度的集群在一起称为Hadoop集群

逻辑上分离,在物理上可以在一起,不同集群分成了不同的进程完成独立的事

MapReduce是计算框架,代码层次上的组件,没有集群说

搭建集群

安装采用的三台centos7虚拟机,

搭建教程看的下面链接的教程

教程

搭建时记得看好自己C盘存储够不够(内存满了就装C盘

image-20230628175344321

集群前知识(在解压后,安装前观看):

bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本
etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
sbin目录:存放启动或停止Hadoop相关服务的脚本
share目录:存放Hadoop的依赖jar包、文档、和官方案例

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。

本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
伪分布式模式:也是单机运行,但是具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
完全分布式模式(下面用的完全分布式):多台服务器组成分布式环境。生产环境使用。

image-20230628142647899

然后之间相互调用好像是用的ssh,(可能

所以还需要创建免密的ssh环境

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

默认配置文件:

img

自定义配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置.

记得有些坑

配置节点的时候:有slaves和workers,其实都是一个东西,但是可能因为政治正确在3.0之后改成了workers,但是好像slaves还保留着的

配置的时候只在workers里配置节点就行,(虽然说我的节点名还是slave)

相同的情况在mysql,redis,python等也发生了

sbin/start-dfs.sh启动不能用root,要用他前面设置的所有者

需要在这里写上java_home

vi etc/hadoop/hadoop-env.sh echo $JAVA_HOME    #查自己的java_home
#加入下面这句,按照自己的java_home改,    
export JAVA_HOME=/usr/local/jdk8/jdk1.8.0_341

image-20230628173733380

这里必须用创建的那个用户所有者来,不能用root

关键词:修改文件所有者

sudo chown -R lkw ./

image-20230628173412759

输入jps查看有哪些java进程

集群1启动

image-20230628153728930

内存快爆了

集群2启动:

image-20230628174624989

集群3启动:

image-20230628174639757

网页也启动成功

image-20230628174108145

image-20230628174134314

处理集群崩溃

仅限新手测试处理,不适用于生产环境

先杀死集群,(或者重开机也行

删除历史数据

面试题:

image-20230630141515590

HDFS概述

HDFS(Hadoop Distributed File System)是Apache Hadoop生态系统中的一个分布式文件系统。它旨在处理大规模数据集的存储和处理,并提供高容错性、高吞吐量和可扩展性。

HDFS的设计灵感来自于Google的GFS(Google File System),它通过将数据分布在集群中的多个机器上实现数据的可靠性和并行处理能力。

HDFS具有以下主要特点:

  1. 分布式存储:HDFS将大文件分成多个数据块,然后将这些数据块分布在多个计算节点上的本地磁盘上。这种分布式存储方式提供了数据的冗余和高可靠性。

  2. 数据冗余和容错性:HDFS通过在集群中多个节点上存储数据的多个副本来提供数据的容错性。如果某个节点发生故障,系统可以自动从其他节点上的副本中恢复数据。

  3. 高吞吐量:HDFS被优化用于大数据集的批处理工作负载,它具有高吞吐量的特性。它可以并行读取和写入大量数据,适用于数据处理和分析。

  4. 扩展性:HDFS可以水平扩展以适应不断增长的数据量。通过添加更多的计算节点,可以增加存储容量和处理能力,而无需中断运行。

  5. 简单性:HDFS的设计简单且易于使用。它提供了类似于传统文件系统的接口,使开发人员能够以类似于本地文件的方式进行文件操作。

HDFS广泛应用于大数据处理场景,它与Hadoop生态系统中的其他工具(如MapReduce、Spark等)紧密结合,为大规模数据处理和分析提供基础设施。

缺点:

不适合低延时数据访问

简单的来说

就是文件系统

缺点:

无法高效的大量小文件存储(1.因为存储空间碎片化,增加了磁盘寻址和数据定位开销,2.同时任务调度也会变多,任务切换开销变大

解决方法:1.合并小文件,2.直接存数据库去,3.hadoop归档工具HAR等)

不支持并发写入,文件随机修改(1.因为采用了主从1架构限制了并发写入,保证一致性。 2.并发写入和随机修改会导致数据碎片化以及数据不连续,3.hadoop的主要关注点不是为了这个,而是为了大规模数据读取,转换和分析)

**解决方法:**Apache HBase作为Hadoop生态系统中的分布式数据库

HDFS的架构组成

HDFS Architecture

1.NameNode

处理客户端请求

配置副本策略

管理数据块映射信息

管理HDFS的名称空间

总的来说,就是一个老板

2.DataNode

存储数据快

管理数据块

总的来说,就是一个仓管

3.Client

文件切分

从NameNode获取文件各种信息

从DataNode存储或者取出数据

总的来说,就是一个销售

4.NameNode

并不是nameNode的热备,老板挂掉,他不能代替老板,只能辅助恢复NameNode

可以为NameNode分担工作量

总的来说,相当于秘书

HDFS文件块大小

默认2.x/3.x的文件块大小是128M

1.x中是64M

设太大会导致数据读取时间变超大,不利于程序处理这段数据

设太小增加寻址时间

HDFS的Shell操作(重点)

基本语法

下面两个一样

hadoop fs   (具体命令)
hdfs dfs (具体命令)
#查询命令,但是到真查询还得谷歌
hadoop fs -help (具体命令) 
hadoop fs:这是Hadoop文件系统Shell命令的入口点,用于执行各种文件和目录操作。hadoop fs -ls <path>:列出指定路径下的文件和目录。
hadoop fs -mkdir <path>:创建一个新的目录。
hadoop fs -put <localSrc> <dest>:将本地文件或目录上传到HDFS。
(hadoop fs -copyFromLocal 也是本地文件上传,但是上面的简洁
hadoop fs -copyToLocal 下载到本地)
hadoop fs -get <src> <localDest>:从HDFS下载文件或目录到本地。
hadoop fs -rm <path>:删除指定的文件或目录。
hadoop fs -cat <file>:显示文件的内容。
hadoop fs -mv <src> <dest>:移动文件或目录。
hadoop fs -tail <src> <dest>:查看一个文件末尾1kb的数据
hadoop fs -du <src> <dest>:查看一个文件或文件夹大小信息hadoop jar:用于执行Hadoop作业(Job)。hadoop jar <jarPath> <mainClass> <inputPath> <outputPath>:运行指定的Hadoop作业,其中<jarPath>是Hadoop作业的JAR文件路径,<mainClass>是作业的主类,<inputPath>和<outputPath>分别是输入和输出的HDFS路径。
hadoop dfsadmin:用于管理HDFS集群的命令。hadoop dfsadmin -report:显示HDFS集群的整体状态和报告信息。
hadoop dfsadmin -safemode <enter|leave|get>:管理HDFS的安全模式。
hadoop dfsadmin -refreshNodes:刷新集群节点列表。
hadoop dfsadmin -setBalancerBandwidth <bandwidth>:设置数据均衡器的带宽限制。
hadoop job:用于查看和管理Hadoop作业。hadoop job -list:列出当前运行的Hadoop作业。
hadoop job -status <jobId>:显示指定作业的状态和进度信息。
hadoop job -kill <jobId>:终止指定的Hadoop作业。

集成略

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

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

相关文章

工程师分享:如何解决传导干扰?

电磁干扰 EMI 中电子设备产生的干扰信号是通过导线或公共电源线进行传输&#xff0c;互相产生干扰称为传导干扰。传导干扰给不少电子工程师带来困惑&#xff0c;如何解决传导干扰&#xff1f; 找对方法&#xff0c;你会发现&#xff0c;传导干扰其实很容易解决&#xff0c;只要…

Rust中的iter(), into_iter(), iter_mut()

在Rust中&#xff0c;iter(), into_iter(), iter_mut()都是用于在集合类型上创建迭代器的方法。这三个方法各有不同&#xff0c;下面一一进行介绍。 iter(): iter() 方法创建一个不可变的引用迭代器。当你只想读取集合中的元素&#xff0c;而不想改变它们或消耗集合时&#xff…

网页配色之黄金分割法 优漫动游

妇孺皆知&#xff0c;数学上有一个黄金分隔点--0.618。传闻用次比率数分隔是最具美感的&#xff0c;从美眉身体到高楼兴办&#xff0c;从事艺术工作术到美术无不出其之左&#xff0c;所以被称为"神秘的"黄金分隔点。与此同声&#xff0c;人们也对其举行了洪量的接洽&…

Jmeter基础篇(17)Jmeter中Stop和X的区别

一、前言 在Apache JMeter中&#xff0c;Stop和X之间存在一些区别。虽然它们都是用于结束测试的不同方法&#xff0c;但它们在实施方式和效果上存在一些差异。 二、Jmeter中的Stop 首先&#xff0c;让我们了解一下Stop。 在JMeter中&#xff0c;Stop是指在测试结束时关闭线…

redis单线程速度又快

Redis之所以在单进程单线程的情况下能够如此快速&#xff0c;主要有以下几个方面的原因&#xff1a; 纯内存操作&#xff1a;Redis将数据存储在内存中&#xff0c;而不是磁盘上。内存的读写速度远高于磁盘&#xff0c;因此Redis能够以极快的速度进行数据的读写操作。 非阻塞I…

css实现步骤条中的横线

实现步骤中的横线&#xff0c;我们使用css中的after选择器&#xff0c;content写空&#xff0c;然后给这个范围设定一个绝对定位&#xff0c;相当于和它设置伪类选择的元素的位置&#xff0c;直接看代码&#xff1a; const commonStyle useMemo(() > ({fontSize: 30px}),[]…

前端开发中的微服务架构设计

前端服务化和小程序容器技术为前端应用带来了更好的组织结构、可维护性和可扩展性。这些技术的应用将促进前端开发的创新和发展&#xff0c;使团队能够更好地应对复杂的前端需求和业务挑战。通过将前端视为一个服务化的架构&#xff0c;我们能够构建出更强大、可靠且可持续的前…

scp命令----跨服务器传输文件

scp命令 Linux scp 命令用于 Linux 之间复制文件和目录。 scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。 scp 是加密的&#xff0c;rcp 是不加密的&#xff0c;scp 是 rcp 的加强版。 一、Linux scp 命令 以下是scp命令常用的…

windows安装npm, 命令简介

安装步骤 要在Windows上安装npm&#xff0c;按照以下步骤操作&#xff1a; 首先&#xff0c;确保您已经在计算机上安装了Node.js。可以从Node.js官方网站&#xff08;Node.js&#xff09;下载并安装Node.js。完成Node.js的安装后&#xff0c;打开命令提示符&#xff08;Command…

“深入解析Spring Boot:从入门到精通的完整指南“

标题&#xff1a;深入解析Spring Boot&#xff1a;从入门到精通的完整指南 摘要&#xff1a;本文将深入解析Spring Boot框架&#xff0c;从入门到精通&#xff0c;为读者提供全面的指南。我们将介绍Spring Boot的基本概念、核心特性以及使用方法&#xff0c;并通过示例代码演示…

【libuv】httpserver启用ssl 及 播放的日志打印

VLC vlc 第一次 接收不安全的证书黑屏。重启服务,再次vlc这次次好像就可以了。main debug: processing request item: zhangbin.flv, node: 播放列表, skip: 0 main debug: rebuilding array of current - root 播放列表 main debug: rebuild done - 2 items, index 1 main de…

Linux推出Debian 12.1,并进行多方面系统修复

据了解&#xff0c;Debian是最古老的 GNU / Linux 发行版之一&#xff0c;也是许多其他基于 Linux 的操作系统的基础&#xff0c;包括 Ubuntu、Kali、MX 和树莓派 OS 等。 此外&#xff0c;该操作系统以稳定性为重&#xff0c;不追求花哨的新功能&#xff0c;因此新版本的发布…

【Huawei】WLAN实验(三层发现)

拓扑图如上&#xff0c;AP与S1在同一VLAN,S1与AC在同一VLAN&#xff0c;AP采用三层发现AC&#xff0c;AP与客户的DHCP由S1提供。 S1配置 vlan batch 10 20 30 dhcp enable ip pool apgateway-list 192.168.20.1network 192.168.20.0 mask 255.255.255.0option 43 sub-option …

Lua脚本解决多条命令原子性问题

Redis是一个流行的键值存储数据库&#xff0c;它提供了丰富的功能和命令。在Redis中&#xff0c;我们可以使用Lua脚本来编写多条命令&#xff0c;以确保这些命令的原子性执行。Lua是一种简单易学的编程语言&#xff0c;下面将介绍如何使用Redis提供的调用函数来操作Redis并保证…

行为型-状态模式(State Pattern)

概述 状态模式是一种行为设计模式&#xff0c;它可以让对象在内部状态改变时改变它的行为。简而言之&#xff0c;状态模式允许对象在不同状态下更改其行为&#xff0c;而不需要通过使用大量的条件语句进行手动更改。 优点&#xff1a; 状态模式将与特定状态相关的行为分散到…

【设计模式——学习笔记】23种设计模式——桥接模式Bridge(原理讲解+应用场景介绍+案例介绍+Java代码实现)

问题引入 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网&#xff0c;打电话等)&#xff0c;如图 【对应类图】 【分析】 扩展性问题(类爆炸)&#xff0c;如果我们再增加手机的样式(旋转式)&#xff0c;就需要增加各个品牌手机的类&#xff0c;同样如果我们…

JAVA-字符串生成图片

直接上代码 public static void main(String[] args) throws IOException {createFontImage("红色", new Font("宋体", Font.BOLD, 50), 400, 400);}/*** 根据str,font的样式将文字变成图片,然后返回一个流** param str 字符串* param font 字体* pa…

YOLOv5多模型推理,同时实现多个任务数据集识别。

YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓下滑可见代码↓ YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓下滑可见代码↓ YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓下滑可见代码↓ YOLOv5-6.0多模型推理,同时实现多个任务数据集识别。 ↓…

高阶k8s二次开发教程 -- 通过阅读Istio源码习得

本篇文章全网几乎找不到&#xff0c;在做深层次的k8s二次开发时非常管用。那就是使用Client-go去访问自定义CRD资源。 我们先使用kubebuilder生成一个CRD&#xff0c;论生成CRD这些&#xff0c;还是kubebuilder更加方便。 创建CRD apiVersion: "apiextensions.k8s.io/v…

了解Unity编辑器 之组件篇Effects(十一)

一、Halo&#xff1a;是一个可用于游戏对象的特效组件&#xff0c;它可以在对象周围添加一个光晕效果 Color属性: 用于设置Halo的颜色。你可以通过选择颜色面板中的颜色来指定光晕的外观。选择适当的颜色可以使光晕与游戏场景中的其他元素相匹配或突出显示。 Size属性: 用于设…