摘要:
# 1. Hive 表设计优化 ## 1.1 分区表 ### a. 基本查询原理 Hive 的设计思想是通过元数据将 HDFS 上的文件映射成表,基本的查询原理是当用户通过 HQL 语句对 Hive 中的表进行复杂数据处理和计算时,默认将其转换为分布式计算 MapReduce 程序对 HDFS 中的 阅读全文
摘要:
1. 多字节分隔符 1.1 问题与需求 【默认规则】Hive 默认序列化类是 LazySimpleSerDe,其只支持使用单字节分隔符(char)来加载文本数据,例如逗号、制表符、空格等等,默认的分隔符为”\001”。根据不同文件的不同分隔符,我们可以通过在创建表时使用 ROW FORMAT DEL 阅读全文
摘要:
1. Hive 内置运算符 整体上,Hive 支持的运算符可以分为三大类:关系运算、算术运算、逻辑运算。 官方参考文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 也可以使用下述方式查看运算符的使用方式: - 阅读全文
摘要:
1. LOAD 回想一下,当在 Hive 中创建好表之后,默认就会在 HDFS 上创建一个与之对应的文件夹,默认路径是由参数 hive.metastore.warehouse.dir 控制,默认值是 /user/hive/warehouse。 要想让 Hive 的表和结构化的数据文件产生映射,就需要 阅读全文
摘要:
数据定义语言(Data Definition Language,DDL)是 SQL 语言集中对数据库内部的对象结构进行创建、删除、修改等的操作语言,这些数据库对象包括 database(schema)、table、view、index 等。核心语法由 CREATE、ALTER 与 DROP 三个所组 阅读全文
摘要:
# 1. Hive 概述 ## 1.1 什么是 Hive? Apache Hive 是一款**建立在 Hadoop 之上的开源数据仓库工具**,可以将存储在 Hadoop 文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似 SQL 的查询模型,称为 Hive 查询语言(HQL) 阅读全文
摘要:
# 1. 数据仓库 数据仓库(Data Warehouse,简称数仓、DW)是一个用于存储、分析、报告的数据系统。数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。 数据仓库本身并不“生产”任何数据,其数据来源于不同外部系统;同时数据仓库自身也不需 阅读全文
摘要:
# 1. YARN 应用开发流程 YARN 作为通用的资源管理和任务调度平台。理论上,任何类型的程序只要符合规范就可以申请在 YARN 上运行。默认 YARN 实现了 MapReduce 程序的运行支持。 所谓的 YARN 应用开发指的就是如何让自己的程序也可以根据规范在 YARN 申请资源运行。通 阅读全文
摘要:
# 1. YARN 命令 YARN 命令 `${HADOOP_HOME}/bin/yarn` 在不带任何参数的情况下运行 yarn 脚本会打印所有命令的描述,命令分为用户命令和管理命令。 ```sh $ yarn Usage: yarn [OPTIONS] SUBCOMMAND [SUBCOMMAN 阅读全文
摘要:
# 1. 框架概述 ## 1.1 发展简史 数据、程序、运算资源(内存、CPU)三者组在一起,完成了数据的计算处理过程。在单机环境下,这些都不是太大问题。为了应对海量数据的场景,Hadoop 出现并提供了分而治之的分布式处理思想。通过对 Hadoop 版本演进的简单回顾,可以让我们知道 YARN 的 阅读全文
摘要:
# 1. MR 性能优化概述 Hadoop MapReduce 源自于 Google 的 MapReduce 论文,是 Google MapReduce 开源版本实现。MapReduce 是一个分布式应用框架。旨在通过将任务划分来并行处理大量数据,解决海量数据计算问题。 ## 1.1 优缺点及应用场 阅读全文
摘要:
# 1. Job 提交源码追踪 ## 1.1 MR 程序入口方法 作为使用 Java 语言编写的 MapReduce 程序,其入口方法为 main 方法。在 main 方法中,使用了 ToolRunner 启动运行了 MapReduce 客户端主类,其逻辑实现定义在 run 方法中。 ```java 阅读全文