数据仓库组件:Hive环境搭建和基础用法

一、Hive基础简介1、基础描述
Hive是基于Hadoop的一个数据仓库工具 , 用来进行数据提取、转化、加载 , 是一个可以对Hadoop中的大规模存储的数据进行查询和分析存储的组件 , Hive数据仓库工具能将结构化的数据文件映射为一张数据库表 , 并提供SQL查询功能 , 能将SQL语句转变成MapReduce任务来执行 , 使用成本低 , 可以通过类似SQL语句实现快速MapReduce统计 , 使MapReduce变得更加简单 , 而不必开发专门的MapReduce应用程序 。hive十分适合对数据仓库进行统计分析 。
2、组成与架构

数据仓库组件:Hive环境搭建和基础用法

文章插图
 
用户接口:ClientCLI、JDBC访问Hive、WEBUI浏览器访问Hive 。
元数据:Hive将元数据存储在数据库中 , 如MySQL、derby 。Hive中的元数据包括表的名字 , 表的列和分区以及属性 , 表的属性(是否为外部表等) , 表的数据所在目录等 。
驱动器:基于解释器、编辑器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成 。
执行器引擎:ExecutionEngine把逻辑执行计划转换成可以运行的物理计划 。
Hadoop底层:基于HDFS进行存储 , 使用MapReduce进行计算 , 基于Yarn的调度机制 。
Hive收到给客户端发送的交互请求 , 接收到操作指令(SQL) , 并将指令翻译成MapReduce , 提交到Hadoop中执行 , 最后将执行结果输出到客户端 。
二、Hive环境安装1、准备安装包
hive-1.2 , 依赖Hadoop集群环境 , 位置放在hop01服务上 。
2、解压重命名
tar -zxvf Apache-hive-1.2.1-bin.tar.gzmv apache-hive-1.2.1-bin/ hive1.23、修改配置文件
创建配置文件
[root@hop01 conf]# pwd/opt/hive1.2/conf[root@hop01 conf]# mv hive-env.sh.template hive-env.sh添加内容
[root@hop01 conf]# vim hive-env.shexport HADOOP_HOME=/opt/hadoop2.7export HIVE_CONF_DIR=/opt/hive1.2/conf配置内容一个是Hadoop路径 , 和hive配置文件路径 。
4、Hadoop配置
首先启动hdfs和yarn;然后在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改赋予权限 。
bin/hadoop fs -mkdir /tmpbin/hadoop fs -mkdir -p /user/hive/warehousebin/hadoop fs -chmod g+w /tmpbin/hadoop fs -chmod g+w /user/hive/warehouse5、启动Hive
[root@hop01 hive1.2]# bin/hive6、基础操作
查看数据库
hive> show databases ;选择数据库
hive> use default;查看数据表
hive> show tables;创建数据库使用
hive> create database mytestdb;hive> show databases ;defaultmytestdbhive> use mytestdb;创建表
create table hv_user (id int, name string, age int);查看表结构
hive> desc hv_user;idintnamestringageint 添加表数据
insert into hv_user values (1, "test-user", 23);查询表数据
hive> select * from hv_user ;注意:这里通过对查询日志的观察 , 明显看出Hive执行的流程 。
删除表
hive> drop table hv_user ;退出Hive
hive> quit;查看Hadoop目录
# hadoop fs -ls /user/hive/warehouse/user/hive/warehouse/mytestdb.db通过Hive创建的数据库和数据存储在HDFS上 。
三、整合MySQL5.7环境这里默认安装好MySQL5.7的版本 , 并配置好相关登录账号 , 配置root用户的Host为%模式 。
1、上传MySQL驱动包
将MySQL驱动依赖包上传到hive安装目录的lib目录下 。
[root@hop01 lib]# pwd/opt/hive1.2/lib[root@hop01 lib]# llmysql-connector-JAVA-5.1.27-bin.jar2、创建hive-site配置
[root@hop01 conf]# pwd/opt/hive1.2/conf[root@hop01 conf]# touch hive-site.xml[root@hop01 conf]# vim hive-site.xml3、配置MySQL存储
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href=https://www.isolves.com/it/sjk/bk/2021-01-05/"configuration.xsl"?>javax.jdo.option.ConnectionURLjdbc:mysql://hop01:3306/metastore?createDatabaseIfNotExist=trueJDBC connect string for a JDBC metastorejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverDriver class name for a JDBC metastore


推荐阅读