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工作

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

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

相关文章

c++ 内存管理(newdeletedelete[])

因为在c里面新增了类,所以我们在有时候会用malloc来创建类,但是这种创建只是单纯的开辟空间,没有什么默认构造的。同时free也是free的表面,如果类里面带有指针指向堆区的成员变量就会free不干净。 所以我们c增加了new delete和de…

Python --Pandas库基础方法(2)

文章目录 Pandas 变量类型的转换查看各列数据类型改变数据类型 重置索引删除行索引和切片seriesDataFrame取列按行列索引选择loc与iloc获取 isin()选择query()的使用排序用索引排序使用变量值排序 修改替换变量值对应数值的替换 数据分组基于拆分进行筛选 分组汇总引用自定义函…

springcloud RocketMQ 客户端是怎么走到消费业务逻辑的 - debug step by step

springcloud RocketMQ ,一个mq消息发送后,客户端是怎么一步步拿到消息去消费的?我们要从代码层面探究这个问题。 找的流程图,有待考究。 以下我们开始debug: 拉取数据的线程: PullMessageService.java 本…

126M全球手机基站SHP数据分享

数据是GIS的血液! 我们在《2.8亿东亚五国建筑数据分享》一文中,为你分享过东亚五国建筑数据。 现在再为你分享全球手机基站SHP数据,你可以在文末查看该数据的领取方法。 全球手机基站SHP数据 全球手机基站数据是OpenCelliD团队创建由社区…

【Spring Cloud】Sleuth +Zinkin 实现链路追踪并持久化的解决方案

文章目录 前言链路追踪介绍Sleuth入门Sleuth介绍TraceSpanAnnotation Sleuth入门1、引入依赖2、修改配置文件3、网关路由配置4、演示 Zipkin的集成ZipKin介绍ZipKin服务端安装Zipkin客户端集成1、添加依赖2、添加配置3、访问微服务4、演示 Zipkin数据持久化使用mysql实现数据持…

现代Java开发:使用jjwt实现JWT认证

前言 jjwt 库 是一个流行的 Java 库,用于创建和解析 JWT。我在学习spring security 的过程中看到了很多关于jwt的教程,其中最流行的就是使用jjwt实现jwt认证,但是教程之中依然使用的旧版的jjwt库,许多的类与方法已经标记弃用或者…

多家隧道代理价格:阿布云、快代理、小象代理、熊猫代理和亿牛云……

随着奥运的热度攀升,各大品牌也在抓紧时机赶上这波奥运热潮,随之而来的大量数据信息收集和分析工作也接踵而至,在这一数据采集过程中,HTTP代理的质量和价格对企业的效率和成本调控重要性不言而喻。我们大部分人在日常购买产品的时…

Revit中如何添加剖面?快速实现剖面图的方法汇总

Revit中创建剖面以及剖面视图一般有两种方法,一是使用Revit原生的剖面功能,而是使用Revit插件BIM建模助手进行便捷的剖面操作以及剖面视图创建。 Revit原生的剖面功能,点击后可以自由拉伸剖面方向、范围,放置完剖面符号后&#xf…

【ROS 最简单教程 003/300】ROS 快速体验:Hello World

开始自己的第一次尝试叭 ~ Hello World 本篇是 C 版本,如需 python 版本 👉 python 版本指路 ROS 中程序的实现流程: 创建工作空间 ( 💙 如 tutu_ws) ,进入并编译 mkdir -p tutu_ws/src cd tutu_ws catkin_make在 src …

【C语言】结构体详解 -《探索C语言的 “小宇宙” 》

目录 C语言结构体(struct)详解结构体概览表1. 结构体的基本概念1.1 结构体定义1.2 结构体变量声明 2. 结构体成员的访问2.1 使用点运算符(.)访问成员输出 2.2 使用箭头运算符(->)访问成员输出 3. 结构体…

springboot使用Gateway做网关并且配置全局拦截器

一、为什么要用网关 统一入口: 作用:作为所有客户端请求的统一入口。说明:所有客户端请求都通过网关进行路由,网关负责将请求转发到后端的微服务 路由转发: 作用:根据请求的URL、方法等信息将请求路由到…

Hive之扩展函数(UDF)

Hive之扩展函数(UDF) 1、概念讲解 当所提供的函数无法解决遇到的问题时,我们通常会进行自定义函数,即:扩展函数。Hive的扩展函数可分为三种:UDF,UDTF,UDAF。 UDF:一进一出 UDTF:一进多出 UDAF&#xff1a…

作业帮6-19笔试-选填题

可以看到10在第一位,说明用的是挖坑法快速排序,过程如下: 右指针从最右边开始,找到第一个比30小的数10,与30交换。 10、15、40、28、50、30、70 左指针从位置1开始,找到40,与30互换。 10、15、3…

C语言 ——— 函数指针的定义 函数指针的使用

目录 何为函数指针 打印 函数名的地址 及 &函数名的地址 函数指针的代码(如何正确存储函数地址) 函数指针的使用 何为函数指针 类比: 整型指针 - 指向整型数据的指针,整型指针存放的是整型数据的地址 字符指针 - 指向字…

Lc63---1859将句子排序(排序)---Java版(未写完)

1.题目描述 2.思路 (1)首先将句子按空格分割成若干单词。 (2)每个单词的最后一个字符是它的位置索引。我们可以通过这个索引将单词恢复到正确的位置。 (3)按照单词的索引顺序排序这些单词。 (4…

分布式搜索引擎ES--Elasticsearch集群

1.Elasticsearch集群的概念 分片机制:每个索引都可以被分片 索引my_doc只有一个主分片;索引shop有三个主分片;索引shop2有5个主分片;(参考前面案例) 每个主分片都包含索引的数据,由于目前是单机,所以副分片是没有的&a…

shardingsphere的学习(二):sharingjdbc操作读写分离

简介 mysql配置读写分离以及使用shardingjdbc配置操作读写分离 读写分离 主数据库负责增删改操作(写),从数据库负责查询操作(读),主数据库和从数据库之间会数据同步(主从复制)。 …

【前端】一文带你了解 CSS

文章目录 1. CSS 是什么2. CSS 引入方式2.1 内部样式2.2 外部样式2.3 内联样式 3. CSS 常见选择器3.1 基础选择器3.1.1 标签选择器3.1.2 类选择器3.1.3 id 选择器3.1.4 通配符选择器 3.2 复合选择器3.2.1 后代选择器 4. CSS 常用属性4.1 字体相关4.2 文本相关4.3 背景相关4.4 设…