当前位置: 首页 > news >正文

hadoop学习(一)

一.hadoop概述

1.1hadoop优势

1)高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。

2)高扩展性:在集群间分配任务数据,可方便扩展数以千计的节点

3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度

4)高容错性:能够自动将失败的任务重新分配

1.2Hadoop的组成

1.3.HDFS

定义:一个文件系统,用于存储文件,通过目录来定位我呢见;分布式,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。

使用场景:适合一次写入,多次读出的场景,一个文件经过创建、写入和关闭之后就不需要改变。

优点:

1)高容错性

数据自动保存多个副本,通过增加副本的形式,提高容错率。

一个副本丢失后,可以自动恢复

2)适合处理大数据

能够处理数据规模达到GB、TB、甚至PB级别的数据(数据规模方面

能够处理百万规模以上的文件数量(文件规模方面)

3)科构建在廉价机器上,通过多副本机制,提高可靠性

缺点

1)不适合低延时数据访问

2)无法高效地对大量小文件进行存储

存储大量小文件的话,会占用NameNode大量地内存来存储文件目录和块信息。

小文件存储地寻址时间会超过读取时间,它违反了HDFS的设计目标。

3)不支持并发写入、文件随机修改

框架概述

1)NameNode(nn):存储文件的元数据,例如文件名,文件目录结构,文件属性,以及每个文件的块列表和块所在的DataNode等。

   a)管理HDFS的名称空间

   b)配置副本策略

   c)管理数据块映射信息

   d)处理客户端读写要求

2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。

   a)存储实际的数据块

   b)执行数据块的读/写操作

DateNode和NameNode的联系:NameNode下达命令,DataNode执行实际的操作

3)Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。 

HDFS文件块大小

HDFS中的文件在物理上是分块储存,块的大小可以通过配置参数来规定

注:1)寻址时间为传输时间的1%时,为最佳状态

2)1秒能传输多少内容取决于磁盘的传输速率(目前磁盘的传输速率普遍为100MB/s)

3)块的大小不能设置太小(会增加寻址时间),也不能设置太大(从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间).。

Xshell命令:

上传命令

1)-moveFromLocal:从本地剪切粘贴到HDFS

[atguigu@hadoop01 hadoop]$ hadoop fs -mkdir /apt
[atguigu@hadoop01 hadoop]$ vim shuguo.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -moveFromLocal ./shuguo.txt /apt

2)-copyFromLocal:从本地文件系统中拷贝文件到HDFS路径

[atguigu@hadoop01 hadoop]$ vim weiguo.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -copyFromLocal weiguo.txt /apt

3)-put:等同于copyFromLocal,生产环境更习惯用put

[atguigu@hadoop01 hadoop]$ vim wuguo.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -put ./wuguo.txt /apt

 4)-appendToFile:追加一个文件到已经存在的文件末尾

[atguigu@hadoop01 hadoop]$ vim liubei.txt
[atguigu@hadoop01 hadoop]$ hadoop fs -appendToFile liubei.txt /apt/shuguo.txt

   追加liubei文件的内容到shuguo内容的结尾

下载命令

1)-copyToLocal:从HDFS拷贝到本地

[atguigu@hadoop01 hadoop]$ hadoop fs -copyToLocal /apt/shuguo.txt ./

 拷贝后本地存在shuguo文件

2)-get:等同于copyToLocal,生产环境更习惯用get

  该指令同时将shuguo改名为shuguo2

[atguigu@hadoop01 hadoop]$ hadoop fs -get /apt/shuguo.txt ./shuguo2.txt

HDFS直接操作

1)-ls: 显示目录信息

[atguigu@hadoop01 hadoop]$ hadoop fs -ls /apt

2)-cat:显示文件内容

[atguigu@hadoop01 hadoop]$ hadoop fs -cat /apt/weiguo.txt

3)-chgrp、-chmod、-chown:Linux文件系统中的用法一样,修改文件所属权限

4)-mkdir:创建路径

[atguigu@hadoop01 hadoop]$ hadoop fs -mkdir /c

5)-cp:从HDFS的一个路径拷贝到HDFS的另一个路径

[atguigu@hadoop01 hadoop]$ hadoop fs -cp /apt/weiguo.txt /c

6)-mv:在HDFS目录中移动文件

[atguigu@hadoop01 hadoop]$ hadoop fs -mv /apt/wuguo.txt /c

7)-tail:显示一个文件的末尾1kb的数据

[atguigu@hadoop01 hadoop]$ hadoop fs -tail /c/wuguo.txt

显示出c中wuguo文件末尾1kb的数据

8)-rm:删除文件或文件夹

[atguigu@hadoop01 hadoop]$ hadoop fs -rm /apt/shuguo.txt
Deleted /apt/shuguo.txt

9)-rm -r:递归删除目录及目录里面内容

10)-du统计文件夹的大小信息

[atguigu@hadoop01 hadoop]$ hadoop fs -du  -h /c

11)-setrep:设置HDFS中文件的副本数量

[atguigu@hadoop01 hadoop]$ hadoop fs -setrep 7 /c/weiguo.txt

1.4.YARN架构概述

YARN:另一种资源协调者,是Hadoop的资源管理器

1)ResourceManager(RM):管理整个集群资源(内存、CPU等);

2)NodeManager(NM):管理单个节点服务器资源

3)ApplicationMaster(AM):管理单个任务的运行

4)Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络等.(一个Container容器默认内存是1-8G)

特殊说明

1)可以有多个客服端

2)集群上可以运行多个ApplicationMaster

3)每个NodeManager上可以有多个Container

1.5.MapReduce架构概述

MapReduce将计算过程分为两个阶段:Map和Reduce

1)Map阶段并行处理输入数据

2)Reduce阶段对Map结果进行汇总

二.大数据技术生态体系

三.推荐系统框架图

四.Hadoop运行模式

1)本地模式:单机运行,只是用来演示官方案例(生产环境不用,偶尔用于测试) 

2)伪分布式模式:单机运行,具备Hadoop集群的所有功能,一台服务器模拟一个分布式的环境(生产环境不用)

3)完全分布式模式:多台服务器组成分布式环境(生产环境使用)

四、HDFS写数据流程

(1)客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。

(2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。

(3)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。

(4)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

 五.NameNode工作机制

1)NameNode启动

2)Secondary NameNode工作

相关文章:

hadoop学习(一)

一.hadoop概述 1.1hadoop优势 1)高可靠性:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。 2)高扩展性:在集群间分配任务数据,可方便扩展数以千计…...

Linux性能监控:sar的可视化方案

在当今的IT环境中,系统性能监控是确保应用程序稳定运行和快速响应问题的关键。Linux作为一种广泛使用的操作系统,拥有多种性能监控工具,其中sar(System Activity Reporter)因其全面性和灵活性被广泛采用。然而&#xf…...

如何录制电脑屏幕视频,5招让您成为电脑录制高手

在今天,屏幕录制成为每个电脑使用者都应掌握的基础技能。不论是教学分享、会议记录还是游戏直播,屏幕录制都能帮你捕捉那些重要的瞬间,将无形的信息转化为有形的视频。那么,如何录制电脑屏幕视频呢?今天,我…...

AI届的新宠:小语言模型(SLM)?

大语言模型(LLM)在过去几年产生了巨大影响,特别是随着OpenAI的ChatGPT的出现,各种大语言模型如雨后春笋般出现,国内如KimiChat、通义千问、文心一言和智谱清言等。 然而,大语言模型通常拥有庞大的参数&…...

PMP模拟题错题本

模拟题A 错题整理 项目经理为一个具有按时完成盈利项目历史记录的组织工作。然而,由于缺乏相关方的支持以及他们未能提供信息,这些项目都经历过问题。若要避免这些问题,项目经理在新项目开始时应该做什么? A. 在启动阶段识别关键…...

Laravel Dusk:点亮自动化测试的明灯

Laravel Dusk:点亮自动化测试的明灯 在Web开发中,确保应用程序的用户体验和功能正确性至关重要。Laravel Dusk是一个强大的浏览器自动化测试工具,它允许开发者模拟用户与应用程序的交互,从而进行端到端的测试。本文将深入探讨Lar…...

Git、Gitlab以及分支管理

分布式版本控制系统 一、Git概述 Git是一种分布式版本控制系统,用于跟踪和管理代码的变更。它由Linus torvalds创建的,最初被设计用于Linux内核的开发。Git 允许开发人员跟踪和管理代码的版本,并且可以在不同的开发人员之间进行协作。 Githu…...

TCP/IP 协议栈介绍

TCP/IP 协议栈介绍 1. 引言 TCP/IP(传输控制协议/互联网协议)是一组用于数据网络中通信的协议集合,它是互联网的基础。本文将详细介绍TCP/IP协议栈的各个层次、工作原理以及其在网络通信中的作用。 2. TCP/IP 协议栈的层次结构 TCP/IP协议…...

香橙派orangepi系统没有apt,也没有apt-get,也没有yum命令,找不到apt、apt-get、yum的Linux系统

以下是一个关于如何在 Orange Pi 上的 Arch Linux 系统中发现缺失包管理器的问题并解决的详细教程。 发现问题 确认系统类型: 使用以下命令检查当前的 Linux 发行版: uname -a cat /etc/os-release如果你看到类似于 “Arch Linux” 的信息,说…...

在invidia jetpack4.5.1上运行c++版yolov8(tensorRT)

心路历程(可略过) 为了能在arm64上跑通yolov8,我试过很多很多代码,太多对库版本的要求太高了; 比如说有一个是需要依赖onnx库的,(https://github.com/UNeedCryDear/yolov8-opencv-onnxruntime-…...

Vue3 接入 i18n 实现国际化多语言

在 Vue.js 3 中实现网页的国际化多语言&#xff0c;最常用的包是 vue-i18n。 第一步&#xff0c;安装一个 Vite 下使用 <i18n> 标签的插件&#xff1a;unplugin-vue-i18n npm install unplugin-vue-i18n # 或 yarn add unplugin-vue-i18n 安装完成后&#xff0c;调整 v…...

深度学习环境坑。

前面装好了之后装pytorch之后老显示gpufalse。 https://www.jb51.net/article/247762.htm 原因就是清华源的坑。 安装的时候不要用conda&#xff0c; 用pip命令 我cuda12.6&#xff0c;4070s cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip cuda_12.5.1_555.85_windows.…...

LLM——10个大型语言模型(LLM)常见面试题以及答案解析

今天我们来总结以下大型语言模型面试中常问的问题 1、哪种技术有助于减轻基于提示的学习中的偏见? A.微调 Fine-tuning B.数据增强 Data augmentation C.提示校准 Prompt calibration D.梯度裁剪 Gradient clipping 答案:C 提示校准包括调整提示&#xff0c;尽量减少产生…...

MongoDB - 聚合阶段 $count、$skip、$project

文章目录 1. $count 聚合阶段2. $skip 聚合阶段3. $project 聚合阶段1. 包含指定字段2. 排除_id字段3. 排除指定字段4. 不能同时指定包含字段和排除字段5. 排除嵌入式文档中的指定字段6. 包含嵌入式文档中的指定字段7. 添加新字段8. 重命名字段 1. $count 聚合阶段 计算匹配到…...

如何获取文件缩略图(C#和C++实现)

在C中&#xff0c;可以有以下两种办法 使用COM接口IThumbnailCache 文档链接&#xff1a;IThumbnailCache (thumbcache.h) - Win32 apps | Microsoft Learn 示例代码如下&#xff1a; VOID GetFileThumbnail(PCWSTR path) {HRESULT hr CoInitialize(nullptr);IShellItem* i…...

create-vue项目的README中文版

使用方法 要使用 create-vue 创建一个新的 Vue 项目&#xff0c;只需在终端中运行以下命令&#xff1a; npm create vuelatest[!注意] (latest 或 legacy) 不能省略&#xff0c;否则 npm 可能会解析到缓存中过时版本的包。 或者&#xff0c;如果你需要支持 IE11&#xff0c;你…...

Centos 7系统(最小化安装)安装Git 、git-man帮助、补全git命令-详细文章

安装之前由于是最小化安装centos7安装一些开发环境和工具包 文章使用国内阿里源 cd /etc/yum.repos.d/ && mkdir myrepo && mv * myrepo&&lscurl -O https://mirrors.aliyun.com/repo/epel-7.repo;curl -O https://mirrors.aliyun.com/repo/Centos-7…...

Golang零基础入门课_20240726 课程笔记

视频课程 最近发现越来越多的公司在用Golang了&#xff0c;所以精心整理了一套视频教程给大家&#xff0c;这个只是其中的第一部&#xff0c;后续还会有很多。 视频已经录制完成&#xff0c;完整目录截图如下&#xff1a; 课程目录 01 第一个Go程序.mp402 定义变量.mp403 …...

杂记-镜像

-i https://pypi.tuna.tsinghua.edu.cn/simple 清华 pip intall 出现 error: subprocess-exited-with-error 错误的解决办法———————————pip install --upgrade pip setuptools57.5.0 ————————————————————————————————————…...

如何将WordPress文章中的外链图片批量导入到本地

在使用采集软件进行内容创作时&#xff0c;很多文章中的图片都是远程链接&#xff0c;这不仅会导致前端加载速度慢&#xff0c;还会在微信小程序和抖音小程序中添加各种域名&#xff0c;造成管理上的麻烦。特别是遇到没有备案的外链&#xff0c;更是让人头疼。因此&#xff0c;…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发&#xff08;电脑上写的程序&#xff09;涉及到的一套技术Qt无法开发网页前端&#xff0c;也不能开发移动应用。 客户端开发的重要任务&#xff1a;编写和用户交互的界面。一般来说和用户交互的界面&#xff0c;有两种典型风格&…...

海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》

近日&#xff0c;嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》&#xff0c;海云安高敏捷信创白盒&#xff08;SCAP&#xff09;成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天&#xff0c;网络安全已成为企业生存与发展的核心基石&#xff0c;为了解…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL&#xff1a;在浏览器中解锁3D世界的魔法钥匙 引言&#xff1a;网页的边界正在消失 在数字化浪潮的推动下&#xff0c;网页早已不再是静态信息的展示窗口。如今&#xff0c;我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室&#xff0c;甚至沉浸式的V…...

数据分析六部曲?

引言 上一章我们说到了数据分析六部曲&#xff0c;何谓六部曲呢&#xff1f; 其实啊&#xff0c;数据分析没那么难&#xff0c;只要掌握了下面这六个步骤&#xff0c;也就是数据分析六部曲&#xff0c;就算你是个啥都不懂的小白&#xff0c;也能慢慢上手做数据分析啦。 第一…...

RabbitMQ 各类交换机

为什么要用交换机&#xff1f; 交换机用来路由消息。如果直发队列&#xff0c;这个消息就被处理消失了&#xff0c;那别的队列也需要这个消息怎么办&#xff1f;那就要用到交换机 交换机类型 1&#xff0c;fanout&#xff1a;广播 特点 广播所有消息​​&#xff1a;将消息…...