目次
一、Apache Hive 概述(重要)
二、 模拟实现Hive功能(明白)
hive
如何将hdfs上的数据转为结构化的表数据?
三、 Hive根本架构(重要)
四、Hive部署(了解)
Hive的三种安装模式
五、 Hive初体验(了解)
六、Hive客户端(重要)
6-1 本地使用
6-2 远程使用
七、 Datagrip使用(掌握)
使用Datagrip连接Hive
八、hive
的数据库操纵
数据库创建
九、hive
的数据表操纵
9-1 建表语句
一、Apache Hive 概述(重要)
Hive是一个SQL转化转化工具,将SQL的计算转为MapReduce的计算,让开辟人员更加方便进行大数据开辟
二、 模拟实现Hive功能(明白)
hive
如何将hdfs上的数据转为结构化的表数据?
一张表的数据构成
1-表的元数据 描述表的根本信息
表名字,字段名,字段范例,字段约束
2-表的行数据
表中每一行的数据内容
表名:tb_stu
id intname varchar(20)gander varchar(20)1张三男2李四男3王五男 在mysql,oracle等数据库中,表的元数据和行数是数据库同一管理
在hive
中表的元数据和行数据由metastore和hdfs共同管理
表的元数据由metastore管理存储
行数据由hdfs管理存储
三、 Hive根本架构(重要)
- 命令行模式 hive
- 第三方服务(要遵照jdbc协议) : java database connection datagrip beeline
- web页面: 几乎不用
- 分析sql语句
- 制定实利用命
- 提交mr使命
- 优化实验方案
留意: hive
driver支持多种计算引擎, 例如 MapReduce Tez Spark
四、Hive部署(了解)
前提 : hadoop 服务 和 mysql 服务可以正常使用.
Hive的三种安装模式
- ==内嵌模式==(体验)
- 1、元数据存储在内置的derby
- 2、不需要单独配置metastore 也不需要单独启动metastore服务
-
- 安装包解压即可使用。
-
- 适合测试体验。实际生产中没人用。适合单机单人使用。
复制代码
- ==本地模式==(测试)
- 1、元数据使用外置的RDBMS,常见使用最多的是MySQL。
- 2、不需要单独配置metastore 也不需要单独启动metastore服务
- 缺点:
- 如果使用多个客户端进行访问,就需要有多个Hiveserver服务,此时会启动多个Metastore
- 有可能出现资源竞争现象
复制代码
- ==远程模式==(开辟) 知道这种模式就可以了
- 1、元数据使用外置的RDBMS,常见使用最多的是MySQL。
- 2、metastore服务单独配置 单独手动启动 全局唯一。
-
- 这样的话各个客户端只能通过这一个metastore服务访问Hive.
-
- 企业生产环境中使用的模式,支持多客户端远程并发操作访问Hive.
- 也是我们课程中使用的模式。
复制代码
- 对比
metadata存储在哪metastore服务如何内嵌模式Derby不必要配置启动本地模式MySQL不必要配置启动==远程模式====MySQL====单独配置、单独启动==
在公共服务中已经将hive
部署完成
Hive服务是单机服务,但是,可以进行分布式存储和分布式计算 (基于hdfs和MapReduce)
hive
部署完成后,只有node1可以启动服务,但是node2,node3....都可以使用hive
服务,由于其可以使用客户端远程链接node1上的服务.
五、 Hive初体验(了解)
先将同一大数据环境读取快照到07位置
hive
依靠于hadoop的功能才气正常使用,所以启动hive
前必须先启动hadoop.
查抄mysql服务是否可以使用
六、Hive客户端(重要)
6-1 本地使用
使用一代客户端在本地服务器上连接hive
完成sql操纵
必要先把metastore的元数据管理服务启动起来
现实开辟中让服务后台运行
- nohup hive
- --service metastore &
复制代码
hive
使用java开辟,服务运行后可以jps查察java运行的程序
使用一代客户端连接,不必要输入账号暗码
6-2 远程使用
可以在其他服务器中连接hive
进行相关操纵
可以使用二代客户端进行连接,二代客户端支持jdbc,而且必要使用账号进行登录
- 1-启动metastore服务
- 2-启动hive
server2服务
- 底层调用thriftserver
- 运行服务支持jdbc连接
- nohup hive
- --service hive
- server2 &
复制代码 留意不要重复启动
hive
server2的启动时间会比力长,可以通过端口查察确认hive
server2是否真的启动
hive
server2运行时会绑定10000端口
使用hive
自带的二代客户端,通过jdbc方式连接hive
七、 Datagrip使用(掌握)
使用Datagrip连接Hive
- 创建工程(起一个工程名称即可)
- 绑定一个文件路径,用来存放我们誊写的sql语句
前提: 启动metastore 和hive
server2服务
Datagrip连接hive
服务,本质上链接的是hive
server2
填写信息
如果第一次使用必要下载驱动,安装驱动有2种方式
- 直接点击链接界面左下方的download driver.
2 自定义驱动位置,绑定本地驱动
4.点解test connection验证连接,当连接成功时,点击ok就可以使用了
创建文件
选择会话
输入sql语句并实验
八、hive
的数据库操纵
数据库创建
- CREATE DATABASE [IF NOT EXISTS] database_name
- -- 指定数据库在hdfs上路径位置
- [LOCATION hdfs_path]
- [] 括起来内容是可选的关键字语法
复制代码 按照默认路径创建数据库
- -- 在hive
- 中不必要指定charsetcreate database itcast;-- 一但创建成功会在hdfs的默认路径下出现一个数据库目次 在hdfs的/user/hive
- /warehouswcreate database if not exists itcast;
复制代码
指定hdfs的路径目次作为数据库目次
- -- 指定数据库在hdfs上的路径目次-- 1-现在hdfs上创建一个空的数据库目次-- 2-指定该空目次作为hive
- 数据库的数据目次create database itheimalocation '/itheima';
复制代码
数据库的其他操纵
- -- use 切换数据库
- use itcast;
- use itheima;
- -- 删除数据库 将 hdfs上的数据库目录一并删除
- -- drop database itcast;
- -- drop database itheima;
- -- 如果数据库已经存在表数据,则需要强制删除 在有数据的情况下不要删库
- -- drop database itcast cascade ;
- -- 查看数据库信息
- desc database itheima;
- -- 查看建库语句
- show create database itcast;
复制代码 九、hive
的数据表操纵
9-1 建表语句
- CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note:
- [(col_name data_type [column_constraint_specification] [COMMENT col_comment], ... [constraint_specification])]
- [COMMENT table_comment]
- [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
- [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
- [SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive
- ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
- [STORED AS DIRECTORIES]
- [
- [ROW FORMAT row_format]
- [STORED AS file_format]
- | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive 0.6.0 and later)
- ]
- [LOCATION hdfs_path]
- [TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later)
- [AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
-
复制代码 根本语法
- create table [库名].表名(
- 字段 字段类型
- );
复制代码- -- 表的根本创建-- 表创建成功后会在对应数据库目次下创建一个表目次create table itcast.tb_stu( id int, -- 在hive
- 中字符范例使用string name string, gender string, age int, create_time date, -- decimal 范例表示小数 10 整数部分的个数+小数据部分的个数 2 表示小数位数 height decimal(10,2));desc database itcast;create table itheima.tb_goods( id int, name string, price decimal(10,2), create_time date);desc database itheima;
复制代码 表数据写入和查询
- -- 表数据写入
- -- 数据是文件的方式存储在对应的表目录下
- insert into itcast.tb_stu values(1,'张三','男',20,'2023-10-10',178.23),(2,'李四','男',21,'2023-10-11',175.23);
- -- 查看表数据
- select * from itcast.tb_stu;
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |