IT评测·应用市场-qidao123.com
标题:
Hive数据库项目搭建
[打印本页]
作者:
络腮胡菲菲
时间:
2024-7-28 19:17
标题:
Hive数据库项目搭建
目次
一、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的计算,让开辟人员更加方便进行大数据开辟
select count(*) from stu
复制代码
二、 模拟实现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页面: 几乎不用
帮助我们查询元数据
HiveDriver hive
驱动
分析sql语句
制定实利用命
提交mr使命
优化实验方案
实验计算使命
向yarn申请资源
从hdfs中提取数据
留意: 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.
start-all.sh
复制代码
查抄mysql服务是否可以使用
systemctl status mysqld
复制代码
六、Hive客户端(
重要
)
6-1 本地使用
使用一代客户端在本地服务器上连接hive
完成sql操纵
必要先把metastore的元数据管理服务启动起来
启动metastore服务
hive
--service metastore
复制代码
现实开辟中让服务后台运行
nohup hive
--service metastore &
复制代码
hive
使用java开辟,服务运行后可以jps查察java运行的程序
使用一代客户端连接,不必要输入账号暗码
hive
复制代码
6-2 远程使用
可以在其他服务器中连接hive
进行相关操纵
可以使用二代客户端进行连接,二代客户端支持jdbc,而且必要使用账号进行登录
1-启动metastore服务
管理元数据
2-启动hive
server2服务
底层调用thriftserver
运行服务支持jdbc连接
nohup hive
--service hive
server2 &
复制代码
留意不要重复启动
hive
server2的启动时间会比力长,可以通过端口查察确认hive
server2是否真的启动
hive
server2运行时会绑定10000端口
lsof -i:10000
复制代码
使用hive
自带的二代客户端,通过jdbc方式连接hive
beeline
复制代码
七、 Datagrip使用(掌握)
使用Datagrip连接Hive
创建工程(起一个工程名称即可)
绑定一个文件路径,用来存放我们誊写的sql语句
连接hive
服务
前提: 启动metastore 和hive
server2服务
Datagrip连接hive
服务,本质上链接的是hive
server2
填写信息
如果第一次使用必要下载驱动,安装驱动有2种方式
直接点击链接界面左下方的download driver.
2 自定义驱动位置,绑定本地驱动
4.点解test connection验证连接,当连接成功时,点击ok就可以使用了
创建一个文件,验证sql命令是否可用
创建文件
选择会话
输入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企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4