Hadoop_02

hadoop相比于传统文件系统的优点
1.无限扩展
2.传统文件元数据分布在不同的机器上难以寻找,通过将元数据统一存放在一个服务器上解决
3.传统文件太大导致上传下载慢,通过分块并行上传到服务器解决
4.副本机制数据不容易丢失,解决数据安全问题

在这里插入图片描述
rack代表机架
namenode里面记录元数据
namenode是主结点
datanode是从结点
hdfs中的文件是分块存储的
namenode管理的元数据有两种类型
1.文件自身属性信息
2.文件块位置映射信息(文件位置)

namespace命名空间
由namenode来维护
文件具体的各个block由datanode来管理

namenode管理的内容
1.文件系统元数据
2.namespace树结构
3.文件和块的位置信息
4.访问权限
所以namenode是唯一入口

secondrynode 是namenode的辅助结点,帮助主角色进行元数据文件的合并
datanode负责最终block块的创建
datanode所在机器挂掉,namenode会安排其他的datanode进行副本复制

pipeline管道的存在,充分利用了每一个机器的带宽,避免了网络瓶颈和高延时的连接
管道传输后还会进行ack反向验证,是两两之间的验证,验证不成功上一台机器重新发送就可,全部验证成功则整体无问题

默认副本存储策略
1.第一个副本存在本地
2.第二个存在不同机架
3.第三个相同机架不同位置

hdfs写数据流程
1.客户端发送create命令给namenode
2.namenode检查是否符合格式,检查通过返回输出流
3.客户端写入输出流,并通过管道进行备份,并进行ack校验
4.在写入时会将数据分为数据包,由namenode挑选出时候存储副本的datanode地址,默认3份,包括原数据
5.客户端告知namenode写入完成,等该namenode确认(因为namenode已经知道将上传的文件放到哪3个datanode,所以只需要等最小复制块返回成功就是成功,在上传文件中,只要上传副本成功1个,那么就算成功)

MapReduce思想
map:拆分
reduce:合并
不可拆分或者相互间有依赖的数据无法完成计算
核心:将数据分给多个服务器并行处理,最后将结果合并,这样可以充分利用服务器

一个完整的MapReduce程序在运行时有三类:
1.MrAppmaster:负责整个MR程序的过程调度和协调
2.MapTask:负责map阶段的整个数据处理流程
3.ReduceTask:负责reduce阶段的数据处理流程

一个模型中只能有一个map阶段和一个reduce阶段
整个MapReduce程序中,都是以键值对的形式存在的

Map阶段执行过程
1.逻辑切片,一个切片由一个maptask处理,默认128m一个切片,默认等于物理块的大小
2.按行读取,key是行数偏移值,value是每一行的内容
3.读取一个解析一个
4.分区,默认不分区,分区数量等于reducetask数量
5.map输出数据到内存缓冲区,满后spill溢出到磁盘,并根据key进行排序
6.merge合并所有的溢出文件为一个文件
Reduce阶段执行过程
1.主动拉取自己要处理的数据
2.将分散的数据合并再排序
3.对键相对的键值对调用reduce方法进行合并,将最终结果输出到hdfs文件中

Shuffle机制的原理
从Map产生输出到reduce取得数据之前的过程称为shuffle机制
Map端Shuffle

  1. Collect阶段
  2. Spill阶段
  3. Merge阶段

Reduce端Shuffle

  1. Copy阶段
  2. Merge阶段
  3. Sort阶段

机制弊端
频繁涉及数据在内存和磁盘的多次往复

Yarn
一个通用的资源管理调度平台
资源管理:集群的硬件资源,和程序运行相关,比如内存,cpu
调度平台:多个程序同时申请计算资源如何分配,调度的规则,算法
通用:不仅支持MapReduce,支持各种计算程序

Yarn三大组件

  • ResourseManager(物理)最终仲裁者
  • NodeManager(物理)管理本机器的资源
  • ApplicationMaster(App层面)应用程序的老大,负责程序资源申请,监督程序运行
  • Client
  • Container

Yarn总体分为两个阶段

  1. 客户端启动ApplicationMaster
  2. ApplicationMaster为他申请资源

MapReduce提交到Yarn交互流程

  1. 用户通过客户端向Yarn中ResourseManager提交应用程序
  2. ResourseMaznager为这个应用程序分配container,并与NodeManager通信,在container内启动ApplicationMaster
  3. ApplicationMaster启动后,向ResourseMaznager注册
  4. ApplicationMaster开始申请资源
  5. ApplicationMaster申请到资源,向NodeManager通信,让他开启任务
  6. NodeManager配置环境并开启任务
  7. 向ApplicationMaster汇报任务
  8. ApplicationMaster向ResourseMaznager注销关闭自己

调度器策略

  • 先进先出调度器(不适合共享)
  • 容量调度器(多个组织共享)
  • 公平调度器

数据仓库
用来存储,分析,报告的系统

为什么不用普通数据库进行存储分析呢?

  1. 在正常运行的数据库上面进行分析会导致正常的业务处理缓慢
  2. 数据存储量不大,一般只存放几个月的数据
  3. 数据分散在不同系统不同的表中,字段类型属性不统一

数据仓库主题

  • 面向主题
  • 集成
  • 时变
  • 非易失

Hive
hive是建立在hadoop之上的数据仓库系统,可以将hadoop文件中的结构化,半结构化程序映射为一张数据库表,提供了一种sql的查询语言
hive核心是将HQL转化为MapReduce程序,然后提交到hadoop集群运行

Hive组件

  • 客户端通过网络进行交互
  • 元数据存储,存储表的名字,列,分区,属性,表数据所在目录
  • 驱动程序,包括语法解析器,编译器,优化器,执行器
  • 执行引擎

Hive安装部署

  • 元数据存储在关系型数据表中,如hive内置的Derby,或第三方的Mysql
  • 元数据服务用来管理元数据,对外暴露服务地址,由客户端连接元数据服务,再由元数据服务去连接mysql存取元数据

元数据配置方式

  • 内嵌模式
  • 本地模式
  • 远程模式

在这里插入图片描述

新老客户端

  • Hive Cli (Hive第一代客户端,通过metastore来执行)
  • Beeline (Hive第二代客户端,通过hiveserver2来执行)
    hiveserver2需要依赖metastore来运行

Hive sql

  • create database 命令,创建的数据库在hadoop中/user/hive/warehouse路径下在这里插入图片描述
  • use 命令可以切换数据库
  • drop database 命令可以删除数据库(默认数据库为空才能删除)
  • create table 命令可以创建表
    数据类型原生数据类型复杂数据类型
    分隔符指定语法只要是字段之间的分隔
create table t_archer(id int comment 'ID编号',name string comment '英雄名称',hp_max int comment '最大生命',mp_max int comment '最大法力',attack_max int comment '最高物攻',defense_max int comment '最大物防',attack_range string comment '攻击范围',role_main string comment '主要定位',role_assist string comment '次要定位'
)
row format delimited
fields terminated by '\t'; --字段之间的分隔符 制表符

如果不写fields terminated,默认的分隔符是\001

  • show databases 命令可以展示所有数据库
  • show tables [in database]命令可以展示当前数据库下所有表
  • desc formatted 命令用来显示表的元数据信息

注释中文乱码解决
在mysql修改元数据信息

alter table hive3.COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table hive3.TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table hive3.PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8 ;
alter table hive3.PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table hive3.INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
  • load 命令
    本地指的是hive2所在服务器的本地,而不是客户端的本地
    从本地加载文件,本质是hdfs的put操作
LOAD DATA LOCAL INPATH '/root/hivedata/students.txt' INTO TABLE student_local;

从hdfs加载文件,本质是hdfs的mv操作

LOAD DATA INPATH '/students.txt' INTO TABLE student_HDFS;
  • insert + select命令通常组合使用,insert命令要走mr,时间长,建议使用load命令
  • 内置函数和用户定义函数
    用户定义函数有:UDF,UDAF,UDTF
  • UDF 普通函数 一进一出
  • UDAF 聚合函数 多进一出
  • UDTF 表生成函数 一进多出

Hive数据仓库开发

  1. 建库建表
  2. etl数据清洗
    在数据库中也可以进行格式转换,但是效率不高,不如直接将需要的值读入,所以需要数据清洗

通常用create table as select来进行数据清洗

FineBi是自助大数据分析的工具

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

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

相关文章

JavaScript里面的二进制

概述 最近在做IOT设备配网开发的时候,处理了很多跟二进制、字节相关的事情,总结了一下JavaScript中有关二进制方面的一些知识点。 二进制和字节 首先,现代计算机是基于二进制的,从现代计算机电路来说,只有高电平/低电平…

数据在内存中的存储——练习3

题目&#xff1a; 3.1 #include <stdio.h> int main() {char a -128;printf("%u\n",a);return 0; }3.2 #include <stdio.h> int main() {char a 128;printf("%u\n",a);return 0; }思路分析&#xff1a; 首先二者极其相似%u是无符号格式进行…

【Linux】—— 在Linux上进行读写文件操作

前言&#xff1a; 在之前&#xff0c;我已经对进程的相关知识进行了详细的介绍。本期开始&#xff0c;我们将要学习的是关于 “基础I/O”的知识&#xff01;&#xff01;&#xff01; 目录 &#xff08;一&#xff09;C文件接口 &#xff08;二&#xff09;系统文件I/O 1、接…

WebDAV之π-Disk派盘 + BubbleUPnP

BubbleUPnP是一款功能强大的Android播放器,支持UPnP/DLNA多屏互动。它可以将手机内容投屏到电视大屏上,与家人和朋友一起共享。此外,BubbleUPnP还提供了丰富的音乐和影视资源,您可以在线搜索并播放喜欢的内容。 以下是BubbleUPnP的一些主要特点: 1. 支持Chromecast和转码…

WebGL 绘制矩形

上一节绘制了圆点&#xff0c;调用的绘制方法如下&#xff1a;gl.drawArrays(gl.POINTS, 0, 1); 第一个参数明显是个枚举类型&#xff0c;肯定还有其他值&#xff0c;如下所示&#xff1a; POINTS 可视的点LINES 单独线段LINE_STRIP 线条LINE_LOOP 闭合线条TRIANGLES 单独三…

【题解】2596. 检查骑士巡视方案

题解&#xff1a; class Solution {int n,m;bool st[100][100];int flag;int dx[8]{-1,-2,-2,-1,1,2,2,1};int dy[8]{-2,-1,1,2,2,1,-1,-2}; public:bool checkValidGrid(vector<vector<int>>& grid) {m grid.size();n grid[0].size();dfs(grid,0,0,0);ret…

vue3中的吸顶导航交互实现 | VueUse插件

目的&#xff1a;浏览器上下滚动时&#xff0c;若距离顶部的滚动距离大于78px&#xff0c;吸顶导航显示&#xff0c;小于78px隐藏。使用vueuse插件中的useScroll方法​​​​​​​和动态类名控制进行实现 1. 安装 npm i vueuse/core 2. 获得滚动距离 项目中导入&#xff0…

在python程序中用windows的icon

这个exe的弹窗功能会使用到一个ico文件&#xff0c;如图&#xff1a; 用软件GreenfishIconEditorProPortable或者使用在线软件将你需要的图片制作成windows的icon 用程序将ico文件生成文本文件 import base64picture_name "logo.ico" open_pic open("%s…

【100天精通Python】Day56:Python 数据分析_Pandas数据清洗和处理(删除填充插值,数据类型转换,去重,连接与合并)

目录 数据清洗和处理 1.处理缺失值 1.1 删除缺失值&#xff1a; 1.2 填充缺失值&#xff1a; 1.3 插值&#xff1a; 2 数据类型转换 2.1 数据类型转换 2.2 日期和时间的转换&#xff1a; 2.3 分类数据的转换&#xff1a; 2.4 自定义数据类型的转换&#xff1a; 3 数…

神经反馈设备使用感受2:采集Muse的EEG原始数据(转自知乎)

神经反馈设备使用感受2&#xff1a;采集Muse的EEG原始数据 转自知乎&#xff0c;内容很好&#xff0c;怕之后找不到 想了一下&#xff0c;单写一部分来介绍一下Muse在数据采集方面的操作。同时也解释一下我自己的EEG数据是从哪里采集的。 关于Muse EEG数据的精度&#xff0c;在…

vue2实现自定义主题webpack-theme-color-replacer

需求&#xff1a;根据element的自定义主题色&#xff0c;之后改变element的全局所有颜色&#xff0c;解决页面刷新后主题色失效问题&#xff0c;这个需要把颜色存入到浏览器的存储中&#xff0c;如果换个浏览器就得重新选择了哈&#xff0c;如果需要在不同的浏览器保持一致的主…

将AI融入到SEO中—基于Python的实现思路

在当今数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;对于网站和在线业务的成功至关重要。然而&#xff0c;随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;我们可以利用它来提升SEO策略并取得更好的效果。本文将介绍如何通过使用Python编…

分布式系统第五讲:分布式事务及实现方案

分布式系统第五讲&#xff1a;分布式事务及实现方案 事务是一个程序执行单元&#xff0c;里面的所有操作要么全部执行成功&#xff0c;要么全部执行失败。而分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。本…

【LeetCode: 1462. 课程表 IV:拓扑排序+图+广度优先搜索】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

现场直击 | 国台国标·中秋礼酒惊艳闪耀酒博会

以酒为媒&#xff0c;以酒会友。 9月9日&#xff0c;以“展示全球佳酿&#xff0c;促进开放合作”为主题的第12届中国&#xff08;贵州&#xff09;国际酒类博览会&#xff08;以下简称“贵州酒博会”&#xff09;在贵阳国际会议展览中心重磅开幕&#xff0c;本届贵州酒博会吸…

狼的传说小游戏

欢迎来到程序小院 狼的传说 玩法&#xff1a; 鼠标左键选择能防御、战斧、风暴3%、滚石10%、藤曼5%、冰柱5%、飞跃10%、三叶草20%、钢叉15%&#xff0c;消灭所有敌人&#xff0c;不同关卡不同敌人&#xff0c;快去闯关消灭敌人吧^^。开始游戏https://www.ormcc.com/play/gameS…

MySQL——读写分离

简介 读写分离&#xff0c;基本的原理是让主数据库处理事务性增、改、删操作&#xff08;INSERT、UPDATE、DELETE&#xff09;&#xff0c;而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。一般来说都是通过 主从复制&#xff…

得帆云“智改数转,非同帆响”-AIGC+低代码PaaS平台系列白皮书,正式发布!

5月16日下午&#xff0c;由上海得帆信息技术有限公司编写&#xff0c;上海市工业互联网协会指导的以“智改数转&#xff0c;非同帆响”为主题的《得帆云 AIGC低代码PaaS平台系列白皮书》正式在徐汇西岸国际人工智能中心发布。 本次发布会受到了上海市徐汇区政府、各大媒体和业内…

如何实现一个数据库的 UDF?图数据库 NebulaGraph UDF 功能背后的设计与思考

大家好&#xff0c;我是来自 BOSS直聘的赵俊南&#xff0c;主要负责安全方面的图存储相关工作。作为一个从 v1.x 用到 v3.x 版本的忠实用户&#xff0c;在见证 NebulaGraph 发展的同时&#xff0c;也和它一起成长。 BOSS直聘和 NebulaGraph 关于 NebulaGraph 在 BOSS直聘的应…

9.13 | day 6 |day 45| to 完全平方数

● 70. 爬楼梯 &#xff08;进阶&#xff09; class Solution {public int climbStairs(int n) {int[] dp new int[n1];//设置背包容量&#xff1a;n个int m 2;//有两个物品&#xff0c;注意这是一个完全背包问题dp[0] 1;//initialize ​for(int i 1;i<n;i){//遍历背包f…