大数据技术原理与应用

Similar documents
大数据技术原理与应用

分布式数据库期中作业说明

白 皮 书 英 特 尔 IT 部 门 实 施 Apache Hadoop* 英 特 尔 分 发 版 软 件 的 最 佳 实 践 目 录 要 点 概 述...1 业 务 挑 战...2 Hadoop* 分 发 版 注 意 事 项...3 Hadoop* 基 础 架 构 注 意 事 项

业 务 与 运 营 Business & Operation (Transform) 加 载 (Load) 至 目 的 端 的 过 程, 该 部 分 在 数 据 挖 掘 和 分 析 过 程 中 为 最 基 础 的 一 部 分 一 个 良 好 的 ETL 系 统 应 该 有 以 下 几 个 功 能 1

水晶分析师

大数据技术原理与应用

培 训 机 构 介 绍 中 科 普 开 是 国 内 首 家 致 力 于 IT 新 技 术 领 域 的 领 航 者, 专 注 于 云 计 算 大 数 据 物 联 网 移 动 互 联 网 技 术 的 培 训, 也 是 国 内 第 一 家 开 展 Hadoop 云 计 算 的 培

通过Hive将数据写入到ElasticSearch


Reducing Client Incidents through Big Data Predictive Analytics

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

untitled

PowerPoint 演示文稿

目錄

ABOUT ME AGENDA 唐建法 / TJ MongoDB 高级方案架构师 MongoDB 中文社区联合发起人 Spark 介绍 Spark 和 MongoDB 案例演示

Presentation title goes here

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

基於Hadoop的資料倉儲Hive Introduction to Hive

合集

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

幻灯片 1

Hive:用Java代码通过JDBC连接Hiveserver

untitled

201316

<4D F736F F D F6F70B4F3CAFDBEDDBCB0BAA3C1BFCAFDBEDDCDDABEF2D3A6D3C3B9A4B3CCCAA6C5E0D1B5B0E056312E332E646F63>

RUN_PC連載_12_.doc

第 06 期 李祥池 : 基于 ELK 和 Spark Streaming 的日志分析系统设计与实现 1 日志 1.1 日志定义 IT 1.2 日志处理方案演进 v1.0 v2.0 Hadoop Storm Spark Hadoop/Storm/Spark v3.0 TB Splunk ELK SI

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

目录 1 HIVE 介绍 HIVE 介绍 HIVE 运行架构 HIVE 数据模型 HIVE 数据类型 HIVE 与关系数据库的区别 HIVE 搭建过程 安装 MYSQL 数据库

大数据分析技术 [13] 1.1 大数据 Big Data [2] IBM 5V Volume Velocity Variety Value Veracity Volume Velocity Variety Value Veracity 表 1 大数据特征表 Tab.1

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - Big Data rc Sharing掃盲時間.ppt [相容模式]

厦门大学辅助国内高校开设大数据课程公益项目 一 项目名称厦门大学辅助国内高校开设大数据课程公益项目二 项目介绍大数据时代的到来, 迫切需要高校及时建立大数据技术课程体系, 为社会培养和输送一大批具备大数据专业素养的高级人才, 满足社会对大数据人才日益旺盛的需求 本项目旨在为高校教师开设入门级大数据课

FAQ -PowerDesigner9.5.DOC

Azure_s

2013_6_3.indd

使用Spark SQL读取Hive上的数据

大数据技术原理与应用

大数据技术原理与应用

3.1 SQL Server 2005 Analysis Services Unified Dimension Model (UDM) 3 ( Ad-Hoc) SQL Server 2005 E - R T-SQL(Star Schema) (Data Mart) (ETL) ( Ora

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

目 录 1 不 断 开 发 工 具 以 管 理 大 数 据 Hadoop* 简 介 : 支 持 从 大 数 据 中 获 得 出 色 价 值 的 可 靠 框 架 大 数 据 技 术 的 行 业 生 态 系 统 在 关 键 组 件 中 实 现 平 衡...

大数据技术原理与应用

SparkR(R on Spark)编程指南


数据分析技术介绍

大数据技术原理与应用

untitled


目 录 第 一 章 概 述 总 体 框 架 临 床 信 息 系 统 建 设 医 院 管 理 信 息 系 统 信 息 平 台 建 设 需 求... 5 第 二 章 基 于 电 子 病 历 的 临 床 信 息 系 统 建 设 需 求...

TopTest_Adminstrator.doc

untitled

FileMaker 15 ODBC 和 JDBC 指南

基于UML建模的管理管理信息系统项目案例导航——VB篇

政府機關資訊通報第295期(5月)

大数据技术基础(2013版)

支付宝2011年 IT资产与费用预算

PowerPoint 簡報

2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / SunSun MicrosystemsSun

untitled

分布式数据库期中作业说明

背 景 概 述 企 业 需 要 一 种 灵 活 的 平 台 来 快 速 构 建 测 试 和 扩 展 新 的 应 用 程 序 服 务 并 对 市 场 中 发 生 的 数 字 化 变 革 作 出 反 应 数 字 化 变 革 正 在 加 快 步 伐, 因 为 流 程 和 信 息 的 日 益 融 合 带 来

天津天狮学院关于修订2014级本科培养方案的指导意见

《人员招聘与任用》

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

大数据技术基础(2013版)

第 02 期 1 医 疗 信 息 现 状 20% EMR Electronic Medical Record HIS HIS [1-2] 张 肖 等 : 基 于 大 数 据 的 医 疗 健 康 创 新 应 用 2 大 数 据 环 境 下 医 疗 数 据 特 征 分 析 PC [3]

本 次 培 训 是 由 北 森 生 涯 ( 北 京 ) 教 育 科 技 有 限 公 司 的 首 席 培 训 师 彭 勃 老 师 担 任 讲 师, 培 训 内 容 围 绕 着 职 业 生 涯 规 划 理 论 与 实 践 如 何 设 计 大 学 生 生 涯 规 划 课 程 多 元 化 生 涯 规 划 教

Ioncube Php Encoder 8 3 Crack 4. llamaba octobre traslado General Search colony

89SQSY.s92

FileMaker 16 ODBC 和 JDBC 指南

在 ongodb 中实现强事务

一步一步教你搞网站同步镜像!|动易Cms

93年各縣國中教師甄試最新考情.doc

14-1-人文封面

% ~ AAA

Transwarp Data Hub including Apache Hadoop 2.0

Oracle高级复制配置手册_业务广告_.doc

(Microsoft Word - 1_\252\354\244p\257S\300u_\254\374\304R\252\272\254K\244\321.doc)

Cloudy computing forEducation

第 03 期 刘高军等 : 基于 CNONIX 的 XML 与 EXCEL 相互转换技术研究 XML XML CNONIX XML EXCEL EXCEL EXCEL EXCEL CNONIXEXCEL XML EXCEL CNONIX XML EXCEL CNONIX 1 CNONIX 数据元分析

个人介绍 思考数据分析系统的基本指标 Hadoop 史前和史后的数据仓库流程 Hadoop 史前和史后的数据分析流程 思考 Hadoop 解决了什么样的根本问题 演讲大纲 Python 如何在构建数据仓库系统的作用 1. 使用 Python 快速构建数据分析模块 ComETL 2. 基于 Pytho

PPBSalesDB.doc

untitled

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

使用MapReduce读取XML文件

大数据技术原理与应用

PowerPoint 演示文稿

提纲 1 2 OS Examples for 3

幻灯片 1

目錄... ivv...vii Chapter DETECT

一 我国部分研究型大学 大学生创新性实验计划 实施的现状 莙政基 莙政基金 外 在学生中有

Microsoft Word - 招股说明书.doc

第13章 SQL Server提供的应用程序接口

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

分布式数据库技术(2011版)

PowerPoint 演示文稿

Transcription:

大数据技术原理与应用 http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第八讲基于 Hadoop 的数据仓库 Hive (PPT 版本号 :2016 年 4 月 6 日版本 ) 林子雨厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu 大数据技术原理与应用 厦门大学计算机科学系厦门大学计算机科学系林子雨 2016 年版 ziyulin@xmu.edu.cn

课堂内容与教材对应关系说明 厦门大学林子雨编著 大数据技术原理与应用 2015 年 8 月 1 日人民邮电出版社出版发行第 1 版教材共包含 13 章内容 第一章大数据概述第二章大数据处理架构 Hadoop 第三章分布式文件系统 HDFS 第四章分布式数据库 HBase 第五章 NoSQL 数据库第六章云数据库第七章 MapReduce 第八章流计算第九章图计算第十章数据可视化第十一章大数据在互联网领域的应用第十二章大数据在生物医学领域的应用 ( 自学 ) 第十三章大数据的其他应用 ( 自学 ) 2016 年新增章节 ( 将加入到第 2 版教材中 ) 第 14 章基于 Hadoop 的数据仓库 Hive 第 15 章 Hadoop 架构再探讨第 16 章 Spark

课堂内容与教材对应关系说明 课堂章节第 1 讲 - 大数据概述第 2 讲 - 大数据处理架构 Hadoop 第 3 讲 - 分布式文件系统 HDFS 第 4 讲 - 分布式数据库 HBase 第 5 讲 -NoSQL 数据库第 6 讲 - 云数据库第 7 讲 -MapReduce 第 8 讲 - 基于 Hadoop 的数据仓库 Hive 第 9 讲 -Hadoop 架构再探讨第 10 讲 - 流计算第 11 讲 -Spark 第 12 讲 - 图计算第 13 讲 - 数据可视化第 14 讲 - 大数据在互联网领域的应用 对应的 大数据技术原理与应用 ( 第 1 版 ) 教材章节 第 1 章 - 大数据概述第 2 章 - 大数据处理架构 Hadoop 第 3 章 - 分布式文件系统 HDFS 第 4 章 - 分布式数据库 HBase 第 5 章 -NoSQL 数据库第 6 章 - 云数据库第 7 章 -MapReduce 新增第 14 章, 不在当前第 1 版教材中, 将放入第 2 版教材 新增第 15 章, 不在当前第 1 版教材中, 将放入第 2 版教材第 8 章 - 流计算 新增第 16 章, 不在当前第 1 版教材中, 将放入第 2 版教材第 9 章 - 图计算第 10 章 - 数据可视化第 11 章 - 大数据在互联网领域的应用备注 : 教材的第 12 章大数据在生物医学领域的应用和第 13 章大数据在其他领域的应用, 为自学章节, 不录制视频

大数据技术原理与应用 http://dblab.xmu.edu.cn/post/bigdata 温馨提示 : 编辑幻灯片母版, 可以修改每页 PPT 的厦大校徽和底部文字 第十四章基于 Hadoop 的数据仓库 Hive ( 第 1 版教材出版后的 2016 年新增章节 ) (PPT 版本号 :2016 年 4 月 6 日版本 ) 林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 主页 :http://www.cs.xmu.edu.cn/linziyu 大数据技术原理与应用 厦门大学计算机科学系厦门大学计算机科学系林子雨 2016 年版 ziyulin@xmu.edu.cn

中国高校大数据课程公共服务平台 http://dblab.xmu.edu.cn/post/bigdata-teaching-platform/ 百度搜索 厦门大学数据库实验室 访问平台主页 课程教材 讲义 PPT 学习指南 免费提供 备课指南 上机习题 授课视频 技术资料 全方位 一站式服务

提纲 14.1 概述 14.2 Hive 系统架构 14.3 Hive 工作原理 14.4 Hive HA 基本原理 14.5 Impala 14.6 Hive 编程实践 本 PPT 是如下教材的配套讲义 : 21 世纪高等教育计算机规划教材 大数据技术原理与应用 概念 存储 处理 分析与应用 (2015 年 8 月第 1 版 ) 厦门大学林子雨编著, 人民邮电出版社 ISBN:978-7-115-39287-9 欢迎访问 大数据技术原理与应用 教材官方网站 : http://dblab.xmu.edu.cn/post/bigdata 欢迎访问 中国高校大数据课程公共服务平台 旗下子栏目 大数据课程学生服务站, 为学生学习大数据课程提供全方位 一站式免费服务 : http://dblab.xmu.edu.cn/post/4331/

14.1 概述 14.1.1 数据仓库概念 14.1.2 传统数据仓库面临的挑战 14.1.3 Hive 简介 14.1.4 Hive 与 Hadoop 生态系统中其他组件的关系 14.1.5 Hive 与传统数据库的对比分析 14.1.6 Hive 在企业中的部署和应用 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.1.1 数据仓库概念 数据仓库 (Data Warehouse) 是一个面向主题的 (Subject Oriented) 集成的 (Integrated) 相对稳定的 (Non-Volatile) 反映历史变化 (Time Variant ) 的数据集合, 用于支持管理决策 数据仓库监视 运行和维护工具 外部数据 元数据 数据挖掘 前端应用 数据仓库 数据挖掘系统 OLTP 系统 抽取 转换 加载 (ETL) 服务 报表分析工具 查询工具 文档 其它应用 数据集市 OLAP 服务器 数据源数据存储和管理分析和挖掘引擎应用 图 14-1 数据仓库的体系结构 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.1.2 传统数据仓库面临的挑战 (1) 无法满足快速增长的海量数据存储需求 (2) 无法有效处理不同类型的数据 (3) 计算和处理能力不足 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.1.3 Hive 简介 Hive 是一个构建于 Hadoop 顶层的数据仓库工具 支持大规模数据存储 分析, 具有良好的可扩展性 某种程度上可以看作是用户编程接口, 本身不存储和处理数据 依赖分布式文件系统 HDFS 存储数据 依赖分布式并行计算模型 MapReduce 处理数据 定义了简单的类似 SQL 的查询语言 HiveQL 用户可以通过编写的 HiveQL 语句运行 MapReduce 任务 可以很容易把原来构建在关系数据库上的数据仓库应用程序移植到 Hadoop 平台上 是一个可以提供有效 合理 直观组织和使用数据的分析工具

14.1.3 Hive 简介 Hive 具有的特点非常适用于数据仓库 采用批处理方式处理海量数据 Hive 需要把 HiveQL 语句转换成 MapReduce 任务进行运行 数据仓库存储的是静态数据, 对静态数据的分析适合采用批处理方式, 不需要快速响应给出结果, 而且数据本身也不会频繁变化 提供适合数据仓库操作的工具 Hive 本身提供了一系列对数据进行提取 转换 加载 (ETL) 的工具, 可以存储 查询和分析存储在 Hadoop 中的大规模数据 这些工具能够很好地满足数据仓库各种应用场景

14.1.4 Hive 与 Hadoop 生态系统中其他组件的关系 Hive 依赖于 HDFS 存储数据 Hive 依赖于 MapReduce 处理数据 在某些场景下 Pig 可以作为 Hive 的替代工具 HBase 提供数据的实时访问 Hadoop 生态系统 ETL 工具 Pig BI 报表 Hive MapReduce HBase HDFS

14.1.5 Hive 与传统数据库的对比分析 Hive 在很多方面和传统的关系数据库类似, 但是它的底层依赖的是 HDFS 和 MapReduce, 所以在很多方面又有别于传统数据库 对比项目 Hive 传统数据库 数据插入 支持批量导入 支持单条和批量导入 数据更新 不支持 支持 索引 支持 支持 分区 支持 支持 执行延迟 高 低 扩展性 好 有限

14.1.6 Hive 在企业中的部署和应用 1. Hive 在企业大数据分析平台中的应用 应用层报表中心在线业务 BI Hive Pig HBase Mahout Hadoop 数据仓库 Hadoop MapReduce HDFS 图企业中一种常见的大数据分析平台部署框架

14.1.6 Hive 在企业中的部署和应用 2.Hive 在 Facebook 公司中的应用 基于 Oracle 的数据仓库系统已经无法满足激增的业务需求 Facebook 公司开发了数据仓库工具 Hive, 并在企业内部进行了大量部署 Web Servers Scribe Servers Filers Oracle RAC Hive on Hadoop cluster Federated MySQL 图 Facebook 的数据仓库架构

14.2 Hive 系统架构 用户接口模块包括 CLI HWI JDBC ODBC Thrift Server 驱动模块 (Driver) 包括编译器 优化器 执行器等, 负责把 HiveSQL 语句转换成一系列 MapReduce 作业 Karmasphere Hue Qubole 其他 Hive CLI HWI JDBC Driver (compiles,optimizes,executes) ODBC Thrift Server Metastore 元数据存储模块 ( Metastore) 是一个独立的关系型数据库 ( 自带 derby 数据库, 或 MySQL 数据库 ) Hadoop Master JobTracker NameNode HDFS 图 Hive 系统架构

14.3 Hive 工作原理 14.3.1 14.3.2 SQL 语句转换成 MapReduce 作业的基本原理 Hive 中 SQL 查询转换成 MapReduce 作业的过程

14.3.1 SQL 语句转换成 MapReduce 的基本原理 1.join 的实现原理 User 1 是表 User 的标记位 uid name key value key value name orderid 1 Lily 1 <1,Lily> 1 <1,Lily> Lily 101 2 Tom 2 <1,Tom> 1 <2,101> Lily 102 Order uid orderid Map 1 和 2 是 uid 的值 key value Shuffle 1 <2,102> key value Reduce name orderid 1 101 1 <2,101> 2 <1,Tom> Tom 103 1 102 1 <2,102> 2 <2,103> 2 103 2 <2,103> 2 是表 Order 的标记位 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.3.1 SQL 语句转换成 MapReduce 的基本原理 2. group by 的实现原理 存在一个分组 (Group By) 操作, 其功能是把表 Score 的不同片段按照 rank 和 level 的组合值进行合并, 计算不同 rank 和 level 的组合值分别有几条记录 : select rank, level,count(*) as value from score group by rank, level Score rank level key value key value rank level value A 1 <A,1> 2 <A,1> 2 A 1 3 A 1 <A,1> 1 Score Map Shuffle Reduce rank level key value key value rank level value A 1 <A,1> 1 <B,2> 1 B 2 1 B 2 <B,2> 1 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.3.2 Hive 中 SQL 查询转换成 MapReduce 作业的过程 当用户向 Hive 输入一段命令或查询时,Hive 需要与 Hadoop 交互工作来完成该操作 : 驱动模块接收该命令或查询编译器 对该命令或查询进行解析编译 由优化器对该命令或查询进行优化计算 该命令或查询通过执行器进行执行 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.3.2 Hive 中 SQL 查询转换成 MapReduce 作业的过程 输入 Parser Semantic Analyzer Logical Plan Generator Logical Optimizer Physical Plan Generator Physical Optimizer 将 SQL 转换成抽象语法树 将抽象语法树转换成查询块 将查询块转换成逻辑查询计划 重写逻辑查询计划 将逻辑计划转成物理计划 选择最佳的优化查询策略 第 1 步 : 由 Hive 驱动模块中的编译器对用户输入的 SQL 语言进行词法和语法解析, 将 SQL 语句转化为抽象语法树的形式第 2 步 : 抽象语法树的结构仍很复杂, 不方便直接翻译为 MapReduce 算法程序, 因此, 把抽象语法书转化为查询块第 3 步 : 把查询块转换成逻辑查询计划, 里面包含了许多逻辑操作符第 4 步 : 重写逻辑查询计划, 进行优化, 合并多余操作, 减少 MapReduce 任务数量第 5 步 : 将逻辑操作符转换成需要执行的具体 MapReduce 任务第 6 步 : 对生成的 MapReduce 任务进行优化, 生成最终的 MapReduce 任务执行计划第 7 步 : 由 Hive 驱动模块中的执行器, 对最终的 MapReduce 任务进行执行输出 输出

14.3.2 Hive 中 SQL 查询转换成 MapReduce 作业的过程 几点说明 : 当启动 MapReduce 程序时,Hive 本身是不会生成 MapReduce 算法程序的 需要通过一个表示 Job 执行计划 的 XML 文件驱动执行内置的 原生的 Mapper 和 Reducer 模块 Hive 通过和 JobTracker 通信来初始化 MapReduce 任务, 不必直接部署在 JobTracker 所在的管理节点上执行 通常在大型集群上, 会有专门的网关机来部署 Hive 工具 网关机的作用主要是远程操作和管理节点上的 JobTracker 通信来执行任务 数据文件通常存储在 HDFS 上,HDFS 由名称节点管理

14.4 Hive HA 基本原理 问题 : 在实际应用中,Hive 也暴露出不稳定的问题解决方案 :Hive HA(High Availability) 由多个 Hive 实例进行管理的, 这些 Hive 实例被纳入到一个资源池中, 并由 HAProxy 提供一个统一的对外接口 对于程序开发人员来说, 可以把它认为是一台超强 Hive" DataNode/TaskTracker Hive 决策人员 DataNode/TaskTracker Hadoop 集群 Hive HAProxy MySQL/ 报表展现 DataNode/TaskTracker DataNode/TaskTracker Hive 运营人员 图 Hive HA 基本原理 开发人员 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.5 Impala 14.5.1 Impala 简介 14.5.2 Impala 系统架构 14.5.3 Impala 查询执行过程 14.5.4 Impala 与 Hive 的比较 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.5.1 Impala 简介 Impala 是由 Cloudera 公司开发的新型查询系统, 它提供 SQL 语义, 能查询存储在 Hadoop 的 HDFS 和 HBase 上的 PB 级大数据, 在性能上比 Hive 高出 3~30 倍 Impala 的运行需要依赖于 Hive 的元数据 Impala 是参照 Dremel 系统进行设计的 Impala 采用了与商用并行关系数据库类似的分布式查询引擎, 可以直接与 HDFS 和 HBase 进行交互查询 Impala 和 Hive 采用相同的 SQL 语法 ODBC 驱动程序和用户接口 ODBC Driver Impala Metastore(Hive) HDFS HBase 图 Impala 与其他组件关系 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.5.2 Impala 系统架构 Impala 和 Hive HDFS HBase 等工具是统一部署在一个 Hadoop 平台上的 Impala 主要由 Impalad,State Store 和 CLI 三部分组成 Common Hive SQL and interface CLI SQL App ODBC Hive Metastore Unified metadata HDFS NN State Store Query Planner Fully MPP Query Planner Fully MPP Query Planner Distributed Distributed Query Coordinator Query Coordinator Query Coordinator Query ExecEngine Query ExecEngine Query ExecEngine HDFS DN HBase HDFS DN HBase HDFS DN HBase Local Direct Local Direct Reads Reads 图 Impala 系统架构 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.5.2 Impala 系统架构 Impala 主要由 Impalad,State Store 和 CLI 三部分组成 1. Impalad 负责协调客户端提交的查询的执行 包含 Query Planner Query Coordinator 和 Query Exec Engine 三个模块 与 HDFS 的数据节点 (HDFS DN) 运行在同一节点上 给其他 Impalad 分配任务以及收集其他 Impalad 的执行结果进行汇总 Impalad 也会执行其他 Impalad 给其分配的任务, 主要就是对本地 HDFS 和 HBase 里的部分数据进行操作 2. State Store 会创建一个 statestored 进程 负责收集分布在集群中各个 Impalad 进程的资源信息, 用于查询调度 3. CLI 给用户提供查询使用的命令行工具 还提供了 Hue JDBC 及 ODBC 的使用接口 说明 :Impala 中的元数据直接存储在 Hive 中 Impala 采用与 Hive 相同的元数据 SQL 语法 ODBC 驱动程序和用户接口, 从而使得在一个 Hadoop 平台上, 可以统一部署 Hive 和 Impala 等分析工具, 同时支持批处理和实时查询 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.5.3 Impala 查询执行过程 CLI Client ODBC/JDBC Driver Hue Beeswax Impalad HDFS DataNode Impalad HDFS DataNode Impalad HDFS DataNode. Impalad HDFS DataNode 4. 汇聚结果 3. 分发查询任务 Impala State Store HDFS NameNode 2. 获取元数据与数据地址 MetaDate MySQL 图 Impala 查询过程图

14.5.3 Impala 查询执行过程 Impala 执行查询的具体过程 : 第 0 步, 当用户提交查询前,Impala 先创建一个负责协调客户端提交的查询的 Impalad 进程, 该进程会向 Impala State Store 提交注册订阅信息, State Store 会创建一个 statestored 进程,statestored 进程通过创建多个线程来处理 Impalad 的注册订阅信息 第 1 步, 用户通过 CLI 客户端提交一个查询到 impalad 进程,Impalad 的 Query Planner 对 SQL 语句进行解析, 生成解析树 ; 然后,Planner 把这个查询的解析树变成若干 PlanFragment, 发送到 Query Coordinator 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.5.3 Impala 查询执行过程 Impala 执行查询的具体过程 : 第 2 步,Coordinator 通过从 MySQL 元数据库中获取元数据, 从 HDFS 的名称节点中获取数据地址, 以得到存储这个查询相关数据的所有数据节点 第 3 步,Coordinator 初始化相应 impalad 上的任务执行, 即把查询任务分配给所有存储这个查询相关数据的数据节点 第 4 步,Query Executor 通过流式交换中间输出, 并由 Query Coordinator 汇聚来自各个 impalad 的结果 第 5 步,Coordinator 把汇总后的结果返回给 CLI 客户端 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

Metadata 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn 14.5.4 Impala 与 Hive 的比较 Batch Processing Hive SQL Syntax MapReduce Compute Framework 图 Impala 与 Hive 的对比 Interactive SQL Impala SQL Syntax+ Compute Framework Resource Management HDFS Storage TEXT,RCFILE,AVRO,ETC Integration HBase RECORDS Hive 与 Impala 的不同点总结如下 : 1. Hive 适合于长时间的批处理查询分析, 而 Impala 适合于实时交互式 SQL 查询 2. Hive 依赖于 MapReduce 计算框架, Impala 把执行计划表现为一棵完整的执行计划树, 直接分发执行计划到各个 Impalad 执行查询 3. Hive 在执行过程中, 如果内存放不下所有数据, 则会使用外存, 以保证查询能顺序执行完成, 而 Impala 在遇到内存放不下数据时, 不会利用外存, 所以 Impala 目前处理查询时会受到一定的限制

Metadata 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn 14.5.4 Impala 与 Hive 的比较 Batch Processing Hive SQL Syntax MapReduce Compute Framework Interactive SQL Impala SQL Syntax+ Compute Framework Resource Management HDFS Storage TEXT,RCFILE,AVRO,ETC Integration HBase RECORDS Hive 与 Impala 的相同点总结如下 : 1. Hive 与 Impala 使用相同的存储数据池, 都支持把数据存储于 HDFS 和 HBase 中 2. Hive 与 Impala 使用相同的元数据 3. Hive 与 Impala 中对 SQL 的解释处理比较相似, 都是通过词法分析生成执行计划 图 Impala 与 Hive 的对比

14.5.4 Impala 与 Hive 的比较 总结 Impala 的目的不在于替换现有的 MapReduce 工具 把 Hive 与 Impala 配合使用效果最佳 可以先使用 Hive 进行数据转换处理, 之后再使用 Impala 在 Hive 处理后的结果数据集上进行快速的数据分析

14.6 Hive 编程实践 14.6.1 Hive 的安装与配置 14.6.2 Hive 的数据类型 14.6.3 Hive 基本操作 14.6.4 Hive 应用实例 :WordCount 14.6.5 Hive 编程的优势 Hive 上机实践详细过程, 请参考厦门大学数据库实验室建设的 中国高校大数据课程公共服务平台 中的 大数据课程学生服务站 中的 学习指南 栏目 : 学生服务站地址 :http://dblab.xmu.edu.cn/post/4331/ 学习指南栏目中包含了 Hive 实践教程 http://dblab.xmu.edu.cn/blog/hive-in-practice 扫一扫访问学生服务站 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.6.1 Hive 的安装与配置 1. Hive 安装 安装 Hive 之前需要安装 jdk1.6 以上版本以及启动 Hadoop 下载安装包 apache-hive-1.2.1-bin.tar.gz 下载地址 :http://www.apache.org/dyn/closer.cgi/hive/ 解压安装包 apache-hive-1.2.1-bin.tar.gz 至路径 /usr/local 配置系统环境, 将 hive 下的 bin 目录添加到系统的 path 中 2. Hive 配置 Hive 有三种运行模式, 单机模式 伪分布式模式 分布式模式 均是通过修改 hive-site.xml 文件实现, 如果 hive-site.xml 文件不存在, 我们可以参考 $HIVE_HOME/conf 目录下的 hive-default.xml.template 文件新建

14.6.2 Hive 的数据类型 表 Hive 的基本数据类型 类型描述示例 TINYINT 1 个字节 (8 位 ) 有符号整数 1 SMALLINT 2 个字节 (16 位 ) 有符号整数 1 INT 4 个字节 (32 位 ) 有符号整数 1 BIGINT 8 个字节 (64 位 ) 有符号整数 1 FLOAT 4 个字节 (32 位 ) 单精度浮点数 1.0 DOUBLE 8 个字节 (64 位 ) 双精度浮点数 1.0 BOOLEAN 布尔类型,true/false true STRING 字符串, 可以指定字符集 xmu TIMESTAMP 整数 浮点数或者字符串 1327882394(Unix 新纪元秒 ) BINARY 字节数组 [0,1,0,1,0,1,0,1]

14.6.2 Hive 的数据类型 表 Hive 的集合数据类型 类型描述示例 ARRAY 一组有序字段, 字段的类型必须相同 Array(1,2) MAP 一组无序的键 / 值对, 键的类型必须是原子的, 值可以是任何数据类型, 同一个映射的键和值的类型必须相同 Map( a,1, b,2) STRUCT 一组命名的字段, 字段类型可以不同 Struct( a,1,1,0)

14.6.3 Hive 基本操作 1. create: 创建数据库 表 视图 创建数据库 1 创建数据库 hive hive> create database hive; 2 创建数据库 hive 因为 hive 已经存在, 所以会抛出异常, 加上 if not exists 关键字, 则不会抛出异常 hive> create database if not exists hive; 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.6.3 Hive 基本操作 创建表 1 在 hive 数据库中, 创建表 usr, 含三个属性 id,name,age hive> use hive; hive>create table if not exists usr(id bigint,name string,age int); 2 在 hive 数据库中, 创建表 usr, 含三个属性 id,name,age, 存储路径为 /usr/local/hive/warehouse/hive/usr hive>create table if not exists hive.usr(id bigint,name string,age int) >location /usr/local/hive/warehouse/hive/usr ;

14.6.3 Hive 基本操作 创建视图 1 创建视图 little_usr, 只包含 usr 表中 id,age 属性 hive>create view little_usr as select id,age from usr;

14.6.3 Hive 基本操作 2. show: 查看数据库 表 视图 查看数据库 1 查看 Hive 中包含的所有数据库 hive> show databases; 2 查看 Hive 中以 h 开头的所有数据库 hive>show databases like h.* ; 查看表和视图 1 查看数据库 hive 中所有表和视图 hive> use hive; hive> show tables; 2 查看数据库 hive 中以 u 开头的所有表和视图 hive> show tables in hive like u.* ;

14.6.3 Hive 基本操作 3. load: 向表中装载数据 1 把目录 /usr/local/data 下的数据文件中的数据装载进 usr 表并覆盖原有数据 hive> load data local inpath /usr/local/data overwrite into table usr; 2 把目录 /usr/local/data 下的数据文件中的数据装载进 usr 表不覆盖原有数据 hive> load data local inpath /usr/local/data into table usr; 3 把分布式文件系统目录 hdfs://master_server/usr/local/data 下的数据文件数据装载进 usr 表并覆盖原有数据 hive> load data inpath hdfs://master_server/usr/local/data >overwrite into table usr; 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

14.6.3 Hive 基本操作 4. insert: 向表中插入数据或从表中导出数据 1 向表 usr1 中插入来自 usr 表的数据并覆盖原有数据 hive> insert overwrite table usr1 > select * from usr where age=10; 2 向表 usr1 中插入来自 usr 表的数据并追加在原有数据后 hive> insert into table usr1 > select * from usr > where age=10;

14.6.4 Hive 应用实例 :WordCount 词频统计任务要求 : 首先, 需要创建一个需要分析的输入数据文件然后, 编写 HiveQL 语句实现 WordCount 算法 具体步骤如下 : (1) 创建 input 目录, 其中 input 为输入目录 命令如下 : $ cd /usr/local/hadoop $ mkdir input (2) 在 input 文件夹中创建两个测试文件 file1.txt 和 file2.txt, 命令如下 : $ cd /usr/local/hadoop/input $ echo "hello world" > file1.txt $ echo "hello hadoop" > file2.txt

14.6.4 Hive 应用实例 :WordCount (3) 进入 hive 命令行界面, 编写 HiveQL 语句实现 WordCount 算法, 命令如下 : $ hive hive> create table docs(line string); hive> load data inpath 'input' overwrite into table docs; hive>create table word_count as select word, count(1) as count from (select explode(split(line,' '))as word from docs) w group by word order by word; 执行完成后, 用 select 语句查看运行结果如下 : docs hello world hello hadoop W word hello world hello hadoop

14.6.5 Hive 的编程优势 WordCount 算法在 MapReduce 中的编程实现和 Hive 中编程实现的主要不同点 : 1. 采用 Hive 实现 WordCount 算法需要编写较少的代码量 在 MapReduce 中,WordCount 类由 63 行 Java 代码编写而成 在 Hive 中只需要编写 7 行代码 2. 在 MapReduce 的实现中, 需要进行编译生成 jar 文件来执行算法, 而在 Hive 中不需要 HiveQL 语句的最终实现需要转换为 MapReduce 任务来执行, 这都是由 Hive 框架自动完成的, 用户不需要了解具体实现细节 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

本章小结 本章详细介绍了 Hive 的基本知识 Hive 是一个构建于 Hadoop 顶层的数据仓库工具, 主要用于对存储在 Hadoop 文件中的数据集进行数据整理 特殊查询和分析处理 Hive 在某种程度上可以看作是用户编程接口, 本身不存储和处理数据, 依赖 HDFS 存储数据, 依赖 MapReduce 处理数据 Hive 支持使用自身提供的命令行 CLI 简单网页 HWI 访问方式, 及通过 Karmasphere Hue Qubole 等工具的外部访问 Hive 在数据仓库中的具体应用中, 主要用于报表中心的报表分析统计上 在 Hadoop 集群上构建的数据仓库由多个 Hive 进行管理, 具体实现采用 Hive HA 原理的方式, 实现一台超强 hive" Impala 作为新一代开源大数据分析引擎, 支持实时计算, 并在性能上比 Hive 高出 3~30 倍, 甚至在将来的某一天可能会超过 Hive 的使用率而成为 Hadoop 上最流行的实时计算平台 本章最后以单词统计为例, 详细介绍了如何使用 Hive 进行简单编程 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn

附录 : 主讲教师 主讲教师 : 林子雨 单位 : 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 个人网页 :http://www.cs.xmu.edu.cn/linziyu 数据库实验室网站 :http://dblab.xmu.edu.cn 扫一扫访问个人主页 林子雨, 男,1978 年出生, 博士 ( 毕业于北京大学 ), 现为厦门大学计算机科学系助理教授 ( 讲师 ), 曾任厦门大学信息科学与技术学院院长助理 晋江市发展和改革局副局长 中国高校首个 数字教师 提出者和建设者, 厦门大学数据库实验室负责人, 厦门大学云计算与大数据研究中心主要建设者和骨干成员,2013 年度厦门大学奖教金获得者 主要研究方向为数据库 数据仓库 数据挖掘 大数据 云计算和物联网, 并以第一作者身份在 软件学报 计算机学报 和 计算机研究与发展 等国家重点期刊以及国际学术会议上发表多篇学术论文 作为项目负责人主持的科研项目包括 1 项国家自然科学青年基金项目 (No.61303004) 1 项福建省自然科学青年基金项目 (No.2013J05099) 和 1 项中央高校基本科研业务费项目 (No.2011121049), 同时, 作为课题负责人完成了国家发改委城市信息化重大课题 国家物联网重大应用示范工程区域试点泉州市工作方案 2015 泉州市互联网经济调研等课题 编著出版中国高校第一本系统介绍大数据知识的专业教材 大数据技术原理与应用 并成为畅销书籍, 编著并免费网络发布 40 余万字中国高校第一本闪存数据库研究专著 闪存数据库概念与技术 ; 主讲厦门大学计算机系本科生课程 数据库系统原理 和研究生课程 分布式数据库 大数据技术基础 具有丰富的政府和企业信息化培训经验, 曾先后给中国移动通信集团公司 福州马尾区政府 福建省物联网科学研究院 石狮市物流协会 厦门市物流协会 福建龙岩卷烟厂等多家单位和企业开展信息化培训, 累计培训人数达 2000 人以上

附录 : 大数据学习教材推荐 大数据技术原理与应用 概念 存储 处理 分析与应用, 由厦门大学计算机科学系林子雨博士编著, 是中国高校第一本系统介绍大数据知识的专业教材 扫一扫访问教材官网 全书共有 13 章, 系统地论述了大数据的基本概念 大数据处理架构 Hadoop 分布式文件系统 HDFS 分布式数据库 HBase NoSQL 数据库 云数据库 分布式并行编程模型 MapReduce 流计算 图计算 数据可视化以及大数据在互联网 生物医学和物流等各个领域的应用 在 Hadoop HDFS HBase 和 MapReduce 等重要章节, 安排了入门级的实践操作, 让读者更好地学习和掌握大数据关键技术 本书可以作为高等院校计算机专业 信息管理等相关专业的大数据课程教材, 也可供相关技术人员参考 学习 培训之用 欢迎访问 大数据技术原理与应用 概念 存储 处理 分析与应用 教材官方网站 : http://dblab.xmu.edu.cn/post/bigdata

附录 : 中国高校大数据课程公共服务平台 http://dblab.xmu.edu.cn/post/bigdata-teaching-platform/ 扫一扫访问平台主页 扫一扫观看 3 分钟 FLASH 动画宣传片

Department of Computer Science, Xiamen University, 2016 大数据技术原理与应用 厦门大学计算机科学系林子雨 ziyulin@xmu.edu.cn