hadoop考试应急

news2024/11/17 16:48:55

概述

四大特点:大量化、快速化、多元化、价值化

关键技术:采集、存储管理、处理分析、隐私和安全

计算模式:批处理、流、图、查询分析计算

Hadoop处理架构

了解就好

  • 2007年,雅虎在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB容量的Hadoop集群系统
    在这里插入图片描述
启动haoop:  Start-all.sh

查看状态:  jps

NameNod:负责协调数据存储

DataNod:存储被拆分的数据块

JobTracker:协调计算

TaskTracker:负责完成JobTrack的计算

SecondaryNameNod 帮助NameNod收集系统运行数据

Hadoop特点:

  • 高可靠性

  • 高效性

  • 高可扩展性

  • 高容错性

  • 成本低

  • 运行在Linux平台上

  • 支持多种编程语言

在这里插入图片描述

HDFS

计算机集群结构

分布式文件系统把文件存储在多个计算机节点上、所有的计算机节点构成一个集群

相比多个处理器和专用高级硬件的并行化处理装置 大大降低的成本开销

图无需记忆,仅仅帮助理解

在这里插入图片描述

分布式文件系统的结构

由: MasterNode NameNode SlaveNode DataNode构成

图无需记忆,仅仅帮助理解

在这里插入图片描述

HDFS实现目标:

  • 廉价设备

    流数据读写

    大数据集

    简单文件模型

    跨平台

    HDFS 局限:

    无法 多用户写入和修改任意文件

    不适 低延迟数据访问

    很难高效存储打大量小文件

    HDFS默认一个块64MB

寻址方式:

从NameNode中找到构成目标文件的数据快的位置列表、从位置列表中得到存储各数据块的数据节点位置,数据节点找到文件返回给客户端

HDFS采用抽象数据块好处

  • 支持大规模文件存储

    一个大文件会被拆分成小文件分发到各个节点、所以文件大小不受单个节点影响

    简化系统设计

    适合数据备份

    每个文件都可以冗余存储到各个节点、提高了容错性

三个副本如何存储

第一个副本:放置在上传文件的数据节点;如果是集群外提交,则随机挑选一台磁盘不太满、CPU不太忙的节点

第二个副本:放置在与第一个副本不同的机架的节点上

第三个副本:与第一个副本相同机架的其他节点上

更多副本:随机节点

NameNod & DataNode

在这里插入图片描述

FsImage

  • 维护整个系统的所有目录和文件信息

  • 保存了最新的元数据检查点、包含了整个系统的所有目录和文件信息(扩展)

EditLog

  • 存储了对所有文件 操作(编辑、删除、添加……) 的日志

FsImage EditLog 的备份(其备份在secondaryNamenode上)

  1. NameNode暂停使用EditLog,创建 EditLong.new.

  2. secondaryNamenode 获取到NameNode上的fsimage 和 editlog(通过get方式)

  3. secondaryNamenode 将fsimage存入内存,一条一条执行editlog中的更新操作,将fsimage和editlog合并

  4. SecondaryNameNode 通过(post方式)将 Fsimage发送到 NameNode上

  5. Namenode 用Editlog.new 替代 Editlog

在这里插入图片描述

数据节点出错

  1. 每个数据节点会定期的向NameNode发送“心跳”(报告自己的状态)

  2. 当数据节点出错,“心跳”将停止、这时数据节点就会被标记为“宕机”,NameNode将不再向该节点发送任何I/O

  3. 由于数据节点不可用可能会出现数据块的副本数量小于****冗余因子****

  4. 当系统检测到莫数据节点出现 3.这种情况,就会为该节点生成新的副本

建议看视频:15分钟左右

读数据的过程

​ 和寻址方式有一定 类似

重要

在这里插入图片描述

写数据的过程

在这里插入图片描述

HDFS常用命名

建议命名头使用 hadoop fs

运用

Hdfs dfs -ls <指定路径>

显示指定路径的所有文件

Hdfs dfs -madir <指定路径>

创建指定路径下的指定name的文件夹

 

…… -put <本地文件> <目标位置>

 

…… -get <目标文件> <指定位置>

复制文件到本地文件系统

hadoop fs -copyFromLocal <localsrc> <dst>

将本地源文件<localsrc>复制到路径<dst>指定的文件或文件夹中

…… -cat <指定文件>

查看指定文件

MapReduce

  • MapReduce将计算过程抽象到了两个函数:Map和Reduce

  • MapReduce采用“分而治之”策略,将大量数据分割成片,这些片可以被map处理

  • MapReduce计算向数据靠拢因为: 移动数据需要大量网络传输开销

  • I MapReduce 采用Master/slave 架构,及一master和若干slave。

    • Master上运行JobTracker,slave上运行TaskTracker
    • JobTracker:协调计算
    • TaskTracker:负责完成JobTrack的计算

Habse

Habse是对bigtable的实现

在这里插入图片描述

Habse是一个稀疏、多维、排序的映射表。根据行键排序

表的索引是行键、列族、列限定符、时间戳确定

Habse存储的是 字符串,没有数据类型

更新操作时不会删除旧的版本(总版本数达到建立表时所设立的版本数时会删除最旧的版本)

habse功能组件

  • 库函数
  • 一个Master主服务器
  • 许多region(区域、分区)服务器

region服务器:存储和维护Master服务器分配给自己region、处理客户端请求

Master服务器:管理维护Habse表分区信息、维护region队列分配region、维持整体Habse

region

  • 一个region 1G-2G

  • 同一个Region不会被拆分到多个Region服务器上

  • 每个Region服务器可以有10-1000Region及 10G–1T

region定位

在这里插入图片描述

原数组表(META表)存放region和region服务器的映射关系

当数据Habse表过大时,META也会被分成多个region

Root表记录元数据的具体位置,其只有一个region

zookeepre记录root表位置

  • HBase有三层结构

计算方式

假设.META.表的每行(一个映射条目)在内存中大约占用1KB,并且每个Region限制为128MB,那么,上面的三层结构可以保存的用户数据表的Region数目的计算方法是:

root最多有 128MB/1kB = 2^17行

每个mate最大只有 128MB/1kB = 2^17行

所有最多只能存2^17 * 2^17

HLong工作原理

采用预写式日志,及先写日志在存入数据

Habse 命令

启动Habse、先启动hadoop(start-all.sh)再启动habse

start-habse.sh

通过habse shell打开habse 的shell界面

通过exit退出shell界面

stop-habse.sh停止habse

创建表
create 'student','name','sex',{NAME=>'course',VERSIONS=>2}
插入数据
put 'student','95001','name','xiaog'

put 'student','95001','name','xiaoming'
列族下可以再分
put 'student','95001','course:math','31'
删除指定数据
delete 'student','95001','name'
删除指定一行
deleteall 'student','95001'
查看指定一行
get 'studet','95001'
查看指定版本数据
get 'student','95001',{COLUMN=>'name',VERSIONS=>1}
查看整个表
scan 'student'
停用表
disable 'student'
删除表
drop 'student'

eixt

Hive

因为使用java编程效率比较低、提供一种利用sql的语言进行查询

操作

Hive可以用自带的derby来存储元数据

启动 hadoop在启动hive

start-all.sh

hive

数据类型;

TINYINT 1个字节

SMALLINT 2个字节

INT 4个字节

BIGINT 8个字节

FLOAT 4个字节

Double 8个

ARRAY:有序字段

MAP: 无序字段

STRUCT:一组命名的字段

与sql不同的是hive有时需要指定分隔符和数据位置

指定分隔符
row format delimited fields terminated by ','
指定是数据位置
location '/C/……'
分区,不能在创建表中写
partitioned by(city string,state string)
创建数据库
create database if not exists hive;
使用数据库
use hive
创建表
create table if not exists hiveusr(
name string comment 'username',
sex string,
course int)

创建外部表关键字external
create external if not exists usr2(
name string,
address struct<street:string,city:string,QQ:string,weixi:string>,
identyfy map<int,tinytin>
ff map<int,int>)
row format delimited filds terminated by ','
location '/usr/....'


增加列
alter table hiveusr add columns(age int);
删除列
alter table hiveusr replace columns(age int);

导入数据 
load data local inpath 'usr/local/....' overwrite table hiveusr.
如果数据在本地要加上local关键字,利用overwrite可以让追加效果变成覆盖


插入数据
insert overwrite table hivesur values('xx','man','1')

从其他表中导入
insert overwirte table hivesur select name,age,course from stu where (条件)

map<int,int>)
row format delimited filds terminated by ‘,’
location ‘/usr/…’

增加列
alter table hiveusr add columns(age int);
删除列
alter table hiveusr replace columns(age int);

导入数据
load data local inpath ‘usr/local/…’ overwrite table hiveusr.
如果数据在本地要加上local关键字,利用overwrite可以让追加效果变成覆盖

插入数据
insert overwrite table hivesur values(‘xx’,‘man’,‘1’)

从其他表中导入
insert overwirte table hivesur select name,age,course from stu where (条件)


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

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

相关文章

Leetcode 每日一题 2341. 数组能形成多少数对

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

《Java并发编程之美》- 线程终止的方法

多线程并发编程之美 等待线程执行终止的 join 方法 执行的代码 public class MyThreadThree {public static void main(String[] args) throws InterruptedException {Thread thread_anew Thread(()->{try {Thread.sleep(1000);} catch (InterruptedException e) {e.prin…

信息系统项目管理师真题精选(三)

1、以下关于我国现阶段电子政务建设的叙述中&#xff0c;不正确的是&#xff1a;&#xff08; &#xff09;。A.我国电子政务建设一直坚持统一规划&#xff0c;加强领导&#xff0c;需求主导&#xff0c;突出重点的原则B.我国电子政务建设一直坚持整合资源&#xff0c;拉动产业…

静态代理和动态代理的区别以及实现过程

前言 代理模式是一种设计模式&#xff0c;能够使得在不修改源目标的前提下&#xff0c;额外扩展源目标的功能。即通过访问源目标的代理类&#xff0c;再由代理类去访问源目标。这样一来&#xff0c;要扩展功能&#xff0c;就无需修改源目标的代码了。只需要在代理类上增加就可…

《真象还原》读书笔记——第五章 保护模式进阶,向内核迈进(特权级,更新)

5.4 特权级深入浅出 5.4.1 特权级哪点事 计算机 访问 可分为访问者和被访问者。 建立特权机制为了通过特权来检查合法性。 0、1、2、3级&#xff0c;数字越小&#xff0c;权力越大。 0特权级是系统内核特权级。 用户程序是3特权级&#xff0c;被设计为“有需求就找操作系统”…

QT+OpenGL光照

QTOpenGL光照 本篇完整工程见gitee:QtOpenGL 对应点的tag&#xff0c;由turbolove提供技术支持&#xff0c;您可以关注博主或者私信博主 颜色 现实生活中看到的物体的颜色并不是这个物体真正拥有的颜色&#xff0c;而是它所反射的颜色 太阳光能被看见的白光是多找演的的组合…

Linux部署项目

一、手动部署 1、终端直接部署&#xff08;前台运行&#xff09; &#xff08;1&#xff09;在IDEA中开发SpringBoot项目并打成jar包 &#xff08;2&#xff09;将jar包上传到Linux服务器 mkdir /usr/local/app #创建目录&#xff0c;将项目jar包放到此目录&#xff08;3&…

C++——哈希4|布隆过滤器

目录 布隆过滤器 完整代码 布隆过滤器应用 布隆过滤器的查找 布隆过滤器删除 布隆过滤器优点 布隆过滤器缺陷 布隆过滤器海量数据处理 布隆过滤器 位图只能映射整形&#xff0c;而对于字符串却无能为力。 把字符串用哈希算法转成整形&#xff0c;映射一个位置进行标…

Axure教程(一)——线框图与高保真原型图制作

前面我们学习了制作网页的技能&#xff0c;从这里开始我们来学习前端必备技能&#xff0c;就是用Axure来制作原型图&#xff0c;一方面我们能提前绘制出我们所需的页面&#xff0c;这在我们开发的时候能节省大量的时间&#xff0c;另一方面我们能通过给用户进行体验从而能够发现…

robotframework + selenium自动化测试常见的问题

1、 插入中文数据提示 FAIL UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 92-107: ordinal not in range(25 DataBaseLibrary插入中文乱码的解决&#xff1a;修改D:\Python27\Lib\site-packages\DatabaseLibrary\connection_manager.py里的co…

极客大挑战 2021

题量很大&#xff0c;收获挺多&#xff0c;持续时间也长&#xff0c;据说结束之后会再持续一段时间&#xff0c;然后题目会开源。 WEB Dark 暗网签到&#xff0c;难以置信 Welcome2021 改个请求方法会提示你文件&#xff0c;再进去就好了 babysql 直接把请求包扔sqlmap里&…

什么是仓库管理?

仓库管理包括仓库日常运营所触及的准绳和流程。从较高的层次上讲&#xff0c;这包括接纳和组织仓库空间、布置劳动力、管理库存和完成订单。放大来看&#xff0c;你会发现有效的仓库管理触及到优化和集成这些过程中的每一个&#xff0c;以确保仓库操作的一切方面协同工作&#…

ElasticSearch之RestClient操作索引库和文档

前言&#xff1a;上文介绍了使用DSL语言操作索引库和文档&#xff0c;本篇文章将介绍使用Java中的RestClient来对索引库和文档进行操作。 希望能够加深自己的印象以及帮助到其他的小伙伴儿们&#x1f609;&#x1f609;。 如果文章有什么需要改进的地方还请大佬不吝赐教&#x…

linux系统编程1--文件编程read和write

write函数进行文件写入操作1.write函数原型&#xff1a;ssize_t write(int fd, const void *buf, size_t count);2.参数1&#xff1a;int fd&#xff0c;文件描述符即open函数的返回值&#xff1b;参数2&#xff1a;const void *buf&#xff0c;写入到fd文件内容的写入缓冲区&a…

10万字企业数字化(技术中台、数据中台、工业互联网平台建设方案

【版权声明】本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间删除&#xff01;完整资料关注公众号“智慧方案文库”&#xff0c;部分资料内容&#xff1a; 目录 1 概述 …

【nodejs-05】黑马nodejs学习笔记05-数据库基本操作02

文章目录4.在项目中操作MySQL4.1 在项目中操作数据库的步骤4.2 安装与配置 mysql 模块4.3 使用 mysql 模块操作 MySQL 数据库5.前后端的身份认证5.1 Web 开发模式5.2 身份认证5.3 Session 认证机制5.4 在 Express 中使用 Session 认证5.5 JWT 认证机制5.6 在 Express 中使用 JW…

用类比方式学习编程中函数递归(个人理解仅供参考)(内含汉诺塔问题的求解)

目录 1.前言 2.递归的数学模型 3.相关的c语法 4.将递归的数学模型写成编程语言 5.利用类比方法将实际问题的代码写成函数递归的形式 例1: 例2: 6.汉诺塔问题的求解 1.前言 本人在学习函数递归编程方法的过程中&#xff0c;发现用类比的方式学习递归法可帮助我们在各种编…

day14_类中成员之一:构造器

由来 我们发现我们new完对象时&#xff0c;所有成员变量都是默认值&#xff0c;如果我们需要赋别的值&#xff0c;需要挨个为它们再赋值&#xff0c;太麻烦了。我们能不能在new对象时&#xff0c;直接为当前对象的某个或所有成员变量直接赋值呢。可以&#xff0c;Java给我们提…

【算法】二分

作者&#xff1a;指针不指南吗 专栏&#xff1a;算法篇 &#x1f43e;或许会很慢&#xff0c;但是不可以停下来&#x1f43e; 文章目录1.二分思想2.二分模板3.二分应用1.二分思想 思想 单调的元素&#xff0c;一定可以二分&#xff1b;非单调不一定不能二分 每次把整个区间 [ …

【企业云端全栈开发实践-1】项目介绍及环境准备、Spring Boot快速上手

本节目录一、 项目内容介绍二、Maven介绍2.1 Maven作用2.2 Maven依赖2.3 本地仓库配置三、Spring Boot快速上手3.1 Spring Boot特点3.2 遇到的Bug&#xff1a;spring-boot-maven-plugin3.3 遇到的Bug2&#xff1a;找不到Getmapping四、开发环境热部署一、 项目内容介绍 本课程…