Hadoop概念学习(无spring集成)

news2024/11/25 6:53:16

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.coloradmin.cn/o/781030.html

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

相关文章

[C初阶]循环和分支语句

目录 if...else语句 ​编辑 易犯错误 打印100以内的奇数 switch...case语句 输出星期 循环语句 对比判断 1.break终止循环 2.continue 读取字符 缓冲区读取 只输出数字字符 for循环 do...while循环 n的阶乘求和 循环实现动态打印 猜数字游戏【总结】 goto ​…

C++的各种用法展示

&#xff43;&#xff0b;&#xff0b;与数学典型算法的结合 阿姆斯特朗数 // A number is called as Armstrong number if sum of cubes of digits of number is // equal to the number itself. // For Example 153 is an Armstrong number because 153 153. #include <…

K8S初级入门系列之十二-计算资源管理

一、前言 K8S集群中着这各类资源&#xff0c;比如计算资源&#xff0c;API资源等&#xff0c;其中最重要的是计算资源&#xff0c;包括CPU&#xff0c;缓存&#xff0c;存储等。管理这些资源就是要在资源创建时进行约束和限制&#xff0c;在运行时监控这些资源的指标&#xff0…

[23] HeadSculpt: Crafting 3D Head Avatars with Text

paper | project 本文主要想解决&#xff1a;1&#xff09;生成图像的不连续问题&#xff1b;2&#xff09;3D修改中的保ID问题。针对第一个问题&#xff0c;本文引入了Landmark-based ControlNet特征图和<back-view>的text embedding&#xff1b;针对第二个问题&#x…

Python 算法基础篇:插入排序和希尔排序

Python 算法基础篇&#xff1a;插入排序和希尔排序 引言 1. 插入排序算法概述2. 插入排序算法实现实例1&#xff1a;插入排序 3. 希尔排序算法概述4. 希尔排序算法实现实例2&#xff1a;希尔排序 5. 插入排序与希尔排序的对比总结 引言 插入排序和希尔排序是两种常用的排序算法…

java后端导出前端展示

效果图 前端代码 exportExcelAll(){window.location.href getBaseUrl() Action/excelDataAll?happenDatethis.params.happenDate;},后端代码 try{Workbook workbooknew XSSFWorkbook();//创建sheetSheet sheet1workbook.createSheet("结果总数拦截记录");//写入…

第一百一十二天学习记录:数据结构与算法基础:循环链表和双向链表以及线性表应用(王卓教学视频)

循环链表 带尾指针循环链表的合并 双向链表 单链表、循环链表和双向链表的时间效率比较 顺序表和链表的比较 链式存储结构的优点 1、结点空间可以动态申请和释放&#xff1b; 2、数据元素的逻辑次序靠结点的指针来指示&#xff0c;插入和删除时不需要移动数据元素。 链式存储…

【pytho】request五种种请求处理为空和非空处理以及上传excel,上传图片处理

一、python中请求处理 request.args获取的是个字典&#xff0c;所以可以通过get方式获取请求参数和值 request.form获取的也是个字典&#xff0c;所以也可以通过get方式获取请求的form参数和值 request.data&#xff0c;使用过JavaScript&#xff0c;api调用方式进行掺入jso…

[数据结构 -- C语言] 二叉树(BinaryTree)

目录 1、树的概念及结构 1.1 树的概念 1.2 树的相关概念&#xff08;很重要&#xff09; 1.3 树的表示 2、二叉树的概念及结构 2.1 概念 2.2 特殊二叉树 2.3 二叉树的性质&#xff08;很重要&#xff09; 2.4 练习题 2.5 二叉树的存储结构 2.5.1 顺序存储 2.5.2 链…

Windows10 下 Neo4j1.5.8 安装教程

前言 Neo4j 是一个高性能的、NOSQL 图形数据库&#xff0c;它将结构化数据存储在网络上而不是表中。基于磁盘的、具备完全的事务特性的 Java 持久化引擎&#xff0c;这里就不把他和常用关系型数据库做对比了。因为篇幅有限&#xff0c;我这里也是第一次使用&#xff0c;所以以…

windows安装cmake快速教程

1、下载cmake cmake官网直直接下载速度都很慢&#xff0c;可以到点击下载地址进行下载。 点击下载地址进去之后&#xff0c;可以看到有很多的版本&#xff0c;这里根据自己的需要选一个版本即可&#xff08;建议不要选择太早的版本&#xff09;&#xff0c;我这里选择的3.22版…

【Python】串口通信-与FPGA、蓝牙模块实现串口通信(Python+FPGA)

&#x1f389;欢迎来到Python专栏~与FPGA、蓝牙模块实现串口通信 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&#…

基于Java+SpringBoot+vue前后端分离校园周边美食探索分享平台设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

SpringCloud nacos 集成 feign 实例

&#x1f388; 作者&#xff1a;Linux猿 &#x1f388; 简介&#xff1a;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;Linux、C/C、云计算、物联网、面试、刷题、算法尽管咨询我&#xff0c;关注我&#xff0c;有问题私聊&#xff01; &…

【运维工程师学习七】DNS底层原理及搭建自己的DNS服务器

【运维工程师学习七】DNS底层原理及搭建自己的DNS服务器 0、前言1、域名&#xff08;Domain&#xff09;的由来2、域名&#xff08;Domain&#xff09;的级别3、域名&#xff08;Domain&#xff09;的命名规则4、域名&#xff08;Domain&#xff09;的后缀有哪些5、域名&#x…

[QT编程系列-32]:科学计算 - QT支持的科学计算库

目录 第1章 QT中如何支持科学计算&#xff1f; 1.1 QT没有专门的科学计算库 1.2 QT没有专门的数学运算库 1.3 QT没有数字信号DSP处理库 1.4 QT没有类numpy库 1.5 QT支持的数学运算 第2章 QT数学库详解 2.1 QtMath 2.2 QVector 2.3 QMatrix 第1章 QT中如何支持科学计算…

【数据结构】——LRU Cache

这里写目录标题 什么是LRU CacheLRU Cache的实现LRU Cache的OJ 什么是LRU Cache LRU是Least Recently Used的缩写&#xff0c;意思是最近最少使用&#xff0c;它是一种Cache替换算法。 什么是Cache&#xff1f;狭义的Cache指的是位于CPU和主存间的快速RAM&#xff0c; 通常它不…

【Soft NMS】《Soft-NMS – Improving Object Detection With One Line of Code》

ICCV-2017 文章目录 1 Background and Motivation2 Related Work3 Advantages / Contributions4 Method5 Experiments5.1 Results5.2 Sensitivity Analysis5.3 When does Soft-NMS work better?5.4 Qualitative Results 6 Conclusion&#xff08;own&#xff09; 1 Background…

【Android】Ubuntu20.04编译Android 13并用模拟器运行

前言 一直好奇Android系统是怎么定制的&#xff0c;直到亲自走一遍Android系统编译流程才发现并没想象的复杂。 这就跟app开发一样&#xff0c;Google官方其实都提供了平台、文档、IDE及一些工具&#xff0c;咱们只要按照官方提供的指南来操作就行了。 如果Android没有提供这…

15 QMessageBox消息对话框

错误提示对话框 信息提示对话框 循环对话框 默认是Yes和No&#xff0c;可以修改属性。第5个参数关联回车键 QMessageBox::Save | QMessageBox::Cancel 可以通过捕获按键获取点击结果 警告提示 代码&#xff1a; //QMessageBox 消息对话框//错误提示QMessageBox::critical(th…