目录:
- hive简介
- hive使用场景
- hive安装模式
- 内嵌模式
- 本地模式
- 远程模式
- hive环境搭建:本地模式
- hive架构说明
一.hive简介
1.hive的来源
2.hive简介
- Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL的查询功能。
- 其基于原理是将HQL语句自动转化成MapReduce任务。
- Hive建立在Hadoop的其它组件之上:依赖于HDFS进行数据存储,依赖于MapReduce完成查询操作。
3.数据仓库和数据库的区别
4.hive在hadoop的位置
5.hive的优点及缺点
二.hive使用场景
仓库对比:
三.安装模式
可参考博客:hive安装教程本地模式
四.环境搭建:本地模式
第一步:安装Java jdk1.7+
第二步:安装hadoop,并开启
第三步:mysql下载及安装:
- 下载
mysql下载地址:mysql-5.7.22-liunx-glibc2.12安装包
这里下载的mysql解压包是:mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz - 安装:
注意:mysql 版本不同,安装的方式也不一样,请找准对应版本的教程,切记
参考博客一:mysql-5.7.22-linux-glibc2.12安装流程
参考博客二:Linux MySql5.6.38安装过程 - 启动服务:service mysql start
第四步:hive下载及安装
- 下载
- 下载地址
- 版本:hive-1.2.2/apache-hive-1.2.2-bin.tar.gz
- 安装:可参考博客:https://www.cnblogs.com/qingyunzong/p/8708057.html
- 上传
- 解压
- 在安装目录下的conf目录下创建 hive-site.xml ,并配置
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.200.10:3306/hive_db?createDatabaseIfNotExist=true</value> <description>JDBC connect string for a JDBC metastore</description> <!-- 如果 mysql 和 hive 在同一个服务器节点,192.168.200.10=localhost --> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property> <property> <name>hive.metastore.schema.verification</name> <value>false</value> <description>是否启动验证,改为false,因为第一次启动数据库都不存在,如果开启验证,将永远失败</description> </property> </configuration>
- 上传MySQL 驱动包(mysql-connector-java-5.1.40-bin.jar),并将该 jar 包放置在 hive 的根路径下的 lib 目录下
- 配置环境变量
[root@kd01 bin]# vi ~/.bashrc 在其文件末尾添加 export HIVE_HOME=/home/apache-hive-1.2.2-bin export PATH=$PATH:$HIVE_HOME/bin 修改后使其生效 [root@kd01 bin]# source ~/.bashrc
- 初始化hive元数据
执行后的结果:root@kd01 bin]# schematool -initSchema -dbType mysql
使用navicat连接 liunx 下的mysql后可看到: - 启动Hive 客户端
结果:启动的方式: 第一种:[root@kd01 conf]# hive 第二种:[root@kd01 conf]# hive --service cli
五.hive架构说明
说明:
- 用户接口:用户接口主要用三个CLI、Client(beeline)和WUI。
- 其中最常用的是CLI,cli启动的时候,会同时启动一个Hive副本。命令窗口,类似为cmd
- Client是Hive的客户端,用户连接至Hive Server。在启动Client模式的时候,需要指出Hive Server所在节点,并且在该节点启动Hive Server。
- WUI是通过浏览器访问Hive。
- 元数据存储
- hive将元数据存储在数据中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
- 解释器、编译器、优化器、执行器
- 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行。
- Hadoop
- Hive的数据存储在HDFS中,大部分的查询由MapReduce完成(包含*的查询,比如select * from tbl 不会生成MapReduce任务)