1、前言
对数据进行统计分析,SQL是目前最方便的编程工具。大数据体系中充斥着非常多的统计分析场景。所以,使用SQL去处理数据,在大数据中也是有极大的需求。MapReduce支持程序开发(python,Java等),但不支持SQL直接进行开发。
2、分布式SQL计算-Hive
Apache Hive是一款分布式SQL计算的工具,其主要功能是:将SQL语句翻译成MapReduce程序运行。
基于Hive为用户提供了分布式SQL计算的能力写的是SQL、执行的是MapReduce。
3、为什么使用Hive
使用Hadoop MapReduce直接处理数据所面临的问题
人员学习成本太高 需要掌握java python等编程语言
MapReduce实现复杂查询逻辑开发难度
使用Hive处理技术的好处
操作接口采用类SQL语法,提供快速开发的能力
底层执行MapReduce,可以完成分布式海量数据的SQL处理
4、什么是分布式SQL计算
以分布式的形式,执行SQL语句,进行数据统计分析
5、Apach Hive是做什么的?
将SQL语句翻译成MapReduce程序,从而提供用户分布式SQL计算的能力
6、HDFS的副本机制
HDFS被设计成能够在一个大集群中跨机器可靠的存储超大文件,它将每一个文件存储成一系列的数据块,这个数据块被称为blocl,除了最后一个,所有数据块都是同样大小的。
hdfs默认文件:
http://hadoop.apache.org/docs/r3.34/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
为了容错,文件的所有block都会有副本,每个文件的数据块大小和副本系数都是可配置的。
hadoop当中,文件的block块大小默认是128M(134217728字节)
7、Driver驱动程序
Driver:包括语法解析器、计划编译器、优化器、执行器
作用:完成HQL(Hibernate Query Language)查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。
8、Hive的核心架构包含哪些?
元数据管理:称之为Metastore服务
SQL解析器(Driver驱动程序):完成SQL解析、执行优化、代码提交等功能
用户接口:提供用户和Hive交互的功能
9、Metastore元数据存储
服务配置:内嵌模式、本地模式、远程模式
内嵌模式的优点:配置简单,解压hive安装包,启动就可以使用。
内嵌模式的缺点:不同路径启动hive,每一个hive拥有一套自己的元数据,
本地模式的优点:配置简单,本地模式下hive的配置中指定mysql的信息
本地模式的缺点:每启动一次hive服务,都内置启动了一个metastore;在hive-site.xml中暴露的数据库的连接信息。