Hadoop生态体系-2

目录标题

    • 1、MapReduce介绍
    • 2、数据仓库
    • 3、HIVE
    • 4、HQL
      • 4.1 hive读写文件机制
      • 4.2 Hive数据存储路径

1、MapReduce介绍

思想:分而治之
map:“分”,即把复杂的任务分解为若干个“简单的任务”来处理。可以进行拆分的前提是这些小任务可以并行计算,彼此之间没有依赖关系
Reduce:“合”,对map阶段的结果进行全局汇总

MapReduce 是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序

map 阶段处理的数据如何传递给 reduce 阶段,这个流程就叫 shuffle
Shuffle 中的缓冲区大小会影响到 mapreduce 程序的执行效率,原则上说,缓冲区越大,磁盘 io 的次数越少,执行速度就越快

2、数据仓库

数据仓库,英文名称为 Data Warehouse,可简写为 DW 或 DWH。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告和决策支持目的而创建。

特征:
数据仓库是面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )数据集合,用以支持管理决策 。

操作型处理,叫联机事务处理 OLTP(On-Line Transaction Processing,)
分析型处理,叫联机分析处理 OLAP(On-Line Analytical Processing)

数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认
为是 ETL(抽取 Extract, 转化 Transform , 装载 Load)的过程

3、HIVE

hive是基于hadoop的一个数据仓库工具,可以将结构化数据文件映射成一张数据库表,并提供类SQL查询功能。
本质:将SQL转换为MapReduce程序

在这里插入图片描述
HIVE组件:
用户接口
元数据存储
解释器、编译器、优化器、执行器

HIve与hadoop的关系:hive利用HDFS存储数据,利用mapreduce查询分析数据.

Metadata 即元数据
Metastore 即元数据服务,作用是:客户端连接 metastore 服务,metastore再去连接 MySQL 数据库来存取元数据。
metastore 服务配置有 3 种模式:内嵌模式、本地模式、远程模式

4、HQL

数据定义语言 (Data Definition Language, DDL),是 SQL 语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言。create、drop、alter

HQL 中 create 语法(尤其 create table)将是学习掌握 DDL 语法的重中之重。
Hive 数据类型整体分为两个类别:原生数据类型(primitive data type)和复杂数据类型
原生数据类型包括:数值类型、时间类型、字符串类型、杂项数据类型;
复杂数据类型包括:array 数组、map 映射、struct 结构、union 联合体

  • 英文字母大小写不敏感;
  • 除 SQL 数据类型外,还支持 Java 数据类型,比如:string;
  • int 和 string 是使用最多的,大多数函数都支持;
  • 复杂数据类型的使用通常需要和分隔符指定语法配合使用

原生类型从窄类型到宽类型的转换称为隐式转换

4.1 hive读写文件机制

SerDe 是 Serializer、Deserializer 的简称,目的是用于序列化和反序列化。序列化是对象转化为字节码的过程;而反序列化是字节码转换为对象的过程。
Hive 使用 SerDe(和 FileFormat)读取和写入行对象。

SerDe的语法:
row format delimited | serde
其中 ROW FORMAT 是语法关键字,DELIMITED 和 SERDE 二选其一。
如果使用 delimited 表示使用默认的 LazySimpleSerDe 类来处理数据。如果数据文件格式比较特殊可以使用 ROW FORMAT SERDE serde_name 指定其他的Serde 类来处理数据,甚至支持用户自定义 SerDe 类。

在这里插入图片描述
hive 建表时如果没有 row format 语法。此时字段之间默认的分割符是’\001’,是一种特殊的字符,使用的是 ascii 编码的值,键盘是打不出来的。

4.2 Hive数据存储路径

默认存储路径:/user/hive/warehouse
指定存储路径:location语法,location ‘指定路径’

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

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

相关文章

CSS基础学习总结

1.css是给HTML标签添加 样式 的语言&#xff0c;通过选择器&#xff08;标签、id、class&#xff09;建立连接 2.css三种形式 内嵌式&#xff1a;在< head></ head>中写< style>css</ style> 外链式&#xff1a;在< head></ head>中写<…

C++ 函数重载

1.函数重载的概念 在C中可以为两个或两个以上的函数提供相同的函数名称&#xff0c;只要参数类型不同&#xff0c;或参数类型相同而参数个数不同&#xff0c;称为函数重载。 在C语言中实现int&#xff0c;char&#xff0c;double类型的比较大小函数&#xff1a; int my_max_…

LeetCode-每日一题-将数组和减半的最少操作次数

2208. 将数组和减半的最少操作次数 提示 中等 49 相关企业 给你一个正整数数组 nums 。每一次操作中&#xff0c;你可以从 nums 中选择 任意 一个数并将它减小到 恰好 一半。&#xff08;注意&#xff0c;在后续操作中你可以对减半过的数继续执行操作&#xff09; 请你返…

【Kubernetes资源篇】ingress-nginx最佳实践详解

文章目录 一、Ingress Controller理论知识1、Ingress Controller、Ingress简介2、四层代理与七层代理的区别3、Ingress Controller中封装Nginx&#xff0c;为什么不直接用Nginx呢&#xff1f;4、Ingress Controller代理K8S内部Pod流程 二、实践&#xff1a;部署Ingress Control…

React 中的受控组件

React 中的受控组件是由 React 组件管理其值的表单组件。它们的值受到 React 组件状态的控制&#xff0c;更新时会通过回调函数进行数据的处理。 受控组件的特点包括&#xff1a; 值由状态控制&#xff1a;受控组件的值是通过 React 组件的状态进行控制和更新的。通过事件处理…

STM32 串口实验(学习一)

本章将实现如下功能&#xff1a;STM32通过串口和上位机对话&#xff0c;STM32在收到上位机发过来的字符串后&#xff0c;原原本本返回给上位机。 STM32 串口简介 串口作为MCU的重要外部接口&#xff0c;同时也是软件开发重要的调试手段&#xff0c;其重要性不言而喻。现在基本…

Linux搭建实验环境搭建(nginx,mysql,java.tomcat)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

KMP算法的及其原理

KMP算法 首先 我们先了解一下 KMP算法的作用 str1 和str2 字符串 如果str1中包含str2 那么返回头位置 如果不包含返回-1 首先 我们先加入一个概念: 有一个next数组 next[i]的值为 str2 中 以i-1位置为结尾的字符串中 最长相同前缀后缀为多长(相同前缀后缀 不是对称 aba 中相…

uniapp 小程序如何从主包页面跳转到分包页面

在uniapp开发小程序的时候&#xff0c;“分包”概念一定要提前了解下&#xff0c;具体我就不多说了&#xff0c;自己看下关网的相关配置。 那么&#xff0c;如果从主包页面&#xff0c;跳转至分包的页面呢&#xff1f;如图所示 我的页面->详情页 在我的页面创建好自己的链…

测牛学堂:车载测试面试总结之语音助手相关

车载语音助手的工作原理&#xff1f; 语音助手的工作原理总结下来可以分为4个步骤&#xff1a; 1 通过麦克风采集驾驶员的语音指令 2将语音信号转换为数字信号 3过语音识别技术将语音指令转换为计算机可以理解的指令 4 通过语音合成技术将计算机的回应转换为语音输出 车载…

ARM--LED灯点亮

LED1,LED2,LED3亮灯 .text .global _start_start: /**********LED1点灯--->PE10**************//*初始化RCC章节*/通过RCC_MP_AHB4ENSETR寄存器,使能GPIOs组控制器 0x500000A28[4] 1RCC_INIT: E组和F组一起使能ldr r0,0x50000A28 ldr r1,[r0]orr r1,r1,#(0x3 << 4)s…

vuex和redus的异同

生态系统和语言&#xff1a;Vuex是为Vue.js框架设计的状态管理库&#xff0c;而Redux是一个独立的JavaScript状态管理库&#xff0c;可以与多种框架&#xff08;如React、Angular等&#xff09;一起使用。 架构&#xff1a;Vuex是基于Flux架构的一种实现&#xff0c;而Redux是…

QT 脚本QScriptValue返回QList<QString>

在 QT 脚本中&#xff0c;可以使用 QScriptValue 类来返回 QList<QString> 类型的值。首先&#xff0c;你需要创建一个 QList<QString> 对象&#xff0c;然后将其转换为 QScriptValue 类型。 下面是一个示例代码&#xff1a; // 创建 QList<QString> 对象 …

vue3+ts+elementui-plus二次封装树形表格实现不同层级展开收起的功能

一、TableTreeLevel组件 <template><div classmain><div class"btns"><el-button type"primary" click"expandLevel(1)">展开一级</el-button><el-button type"primary" click"expandLevel(2…

13年测试老鸟,接口性能测试总结整理,据说这是全网最全的...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试按照不同…

【云原生系列】openstack搭建过程及使用

目录 搭建步骤 准备工作 正式部署OpenStack 安装的过程 安装组件如下 登录页面 进入首页 创建实例步骤 上传镜像 配置网络 服务器配置 dashboard配置 密钥配置免密登录 创建实例 绑定浮动ip 免密登录实例 搭建步骤 准备工作 1.关闭防火墙和网关 systemctl dis…

运维高级学习---MySQL备份恢复

数据库备份&#xff0c;数据库为school&#xff0c;素材如下 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );创建sco…

【周赛第66期】题目、解答与疑义

目录 感想 判断题1.单选题1.2.&#xff08;有疑义&#xff09; 填空题1. 编程题1.路灯亮度题目题解答案 2.题目题解答案 感想 &#xff08;吐槽&#xff09; 在线IDE真不好用&#xff0c;不说不如CLion&#xff0c;抄一下leetcode的也好啊…… 希望支持比赛时实时看别人通过了…

MATLAB 创建神经网络模型的patternnet和newff函数区别

patternnet和newff都是在MATLAB中用于创建人工神经网络的函数&#xff0c;但它们有一些区别和适用场景。 网络类型&#xff1a; patternnet&#xff1a;用于创建多层感知器&#xff08;MLP&#xff09;类型的神经网络&#xff0c;MLP是一种前馈神经网络&#xff0c;由输入层、若…

Jupyter(CPP内核) || 如何在使用xeus-cling时添加第三方库

国内的搬运真是管杀不管埋。在CSDN上找了半天没有找到在xeus-cling添加第三方库的&#xff0c;最后还是只能自己到处去看英文文档。 先贴上英文文档的链接&#xff1a;Introduction — xeus-cling documentation 构建二进制文件时&#xff0c;通常在构建工具中指定包含目录和第…