一、Hive基础简介1、基础描述
Hive是基于Hadoop的一个数据仓库工具 , 用来进行数据提取、转化、加载 , 是一个可以对Hadoop中的大规模存储的数据进行查询和分析存储的组件 , Hive数据仓库工具能将结构化的数据文件映射为一张数据库表 , 并提供SQL查询功能 , 能将SQL语句转变成MapReduce任务来执行 , 使用成本低 , 可以通过类似SQL语句实现快速MapReduce统计 , 使MapReduce变得更加简单 , 而不必开发专门的MapReduce应用程序 。hive十分适合对数据仓库进行统计分析 。
2、组成与架构
文章插图
用户接口: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.2
3、修改配置文件创建配置文件
[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/warehouse
5、启动Hive[root@hop01 hive1.2]# bin/hive
6、基础操作查看数据库
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 ;
退出Hivehive> 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.jar
2、创建hive-site配置[root@hop01 conf]# pwd/opt/hive1.2/conf[root@hop01 conf]# touch hive-site.xml[root@hop01 conf]# vim hive-site.xml
3、配置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.ConnectionURL jdbc:mysql://hop01:3306/metastore?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 2020年Web Apps用户界面发展趋势:组件统治一切
- 常用的10种MySQL函数,数据处理一定用得上
- Index MySQL查询合理使用索引:别让你的数据库负重前行
- JavaScript的两大类内建数据类型
- 数据库:SQLServer分页查询整理
- MySQL分组查询后如何获取每组的前N条数据,你会吗?
- 5大常用MySQL客户端工具,入门数据库必备收藏
- 面试被问:JDBC底层是如何连接数据库的?
- 清除数据后照片还在吗?
- mysql误删数据恢复