络腮胡菲菲 发表于 2024-7-28 19:17:25

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根本架构(重要)

https://i-blog.csdnimg.cn/blog_migrate/a28a7786f0cfc714daaa427f4ce59fe8.png
   
[*] 三种客户端模式:


[*] 命令行模式 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服务

安装包解压即可使用。

适合测试体验。实际生产中没人用。适合单机单人使用。 https://i-blog.csdnimg.cn/blog_migrate/672e441f53a992cf9b290a5bf36dc6a0.png
[*] ==本地模式==(测试)
1、元数据使用外置的RDBMS,常见使用最多的是MySQL。
2、不需要单独配置metastore 也不需要单独启动metastore服务
缺点:
如果使用多个客户端进行访问,就需要有多个Hiveserver服务,此时会启动多个Metastore
有可能出现资源竞争现象 https://i-blog.csdnimg.cn/blog_migrate/99f127475664ff154701855e645e4403.png
[*] ==远程模式==(开辟) 知道这种模式就可以了
1、元数据使用外置的RDBMS,常见使用最多的是MySQL。
2、metastore服务单独配置单独手动启动全局唯一。

这样的话各个客户端只能通过这一个metastore服务访问Hive.

企业生产环境中使用的模式,支持多客户端远程并发操作访问Hive.
也是我们课程中使用的模式。 https://i-blog.csdnimg.cn/blog_migrate/8384ce2fc7f987525b19178ac1c75139.png
[*] 对比
   metadata存储在哪metastore服务如何内嵌模式Derby不必要配置启动本地模式MySQL不必要配置启动==远程模式====MySQL====单独配置、单独启动==
在公共服务中已经将hive
部署完成
Hive服务是单机服务,但是,可以进行分布式存储和分布式计算 (基于hdfs和MapReduce)

hive
部署完成后,只有node1可以启动服务,但是node2,node3....都可以使用hive
服务,由于其可以使用客户端远程链接node1上的服务.


五、 Hive初体验(了解)

先将同一大数据环境读取快照到07位置
https://i-blog.csdnimg.cn/blog_migrate/a444c439decf753c36151ba5a61c95df.png
hive
依靠于hadoop的功能才气正常使用,所以启动hive
前必须先启动hadoop.
start-all.sh 查抄mysql服务是否可以使用
systemctl status mysqld 六、Hive客户端(重要)

6-1 本地使用

   使用一代客户端在本地服务器上连接hive
完成sql操纵
必要先把metastore的元数据管理服务启动起来


[*] 启动metastore服务
hive
--service metastore https://i-blog.csdnimg.cn/blog_migrate/e59f0521bf2d7cbc5f478919a8f1ee04.png
   现实开辟中让服务后台运行
nohup hive
--service metastore & https://i-blog.csdnimg.cn/blog_migrate/19817825a58dce63cf3ec6569a9b5a2a.png
   hive
使用java开辟,服务运行后可以jps查察java运行的程序
https://i-blog.csdnimg.cn/blog_migrate/af7ba476d65c3eefe592d02ef9bad20e.png
https://i-blog.csdnimg.cn/blog_migrate/5e8e8b9565aa713411cca483868af3e0.png
   使用一代客户端连接,不必要输入账号暗码
hive
https://i-blog.csdnimg.cn/blog_migrate/76e7bcd4f88b428d7e869bf619b49a8b.png
6-2 远程使用

   可以在其他服务器中连接hive
进行相关操纵
可以使用二代客户端进行连接,二代客户端支持jdbc,而且必要使用账号进行登录


[*] 1-启动metastore服务

[*] 管理元数据

[*] 2-启动hive
server2服务

[*] 底层调用thriftserver
[*] 运行服务支持jdbc连接

nohup hive
--service hive
server2 &   留意不要重复启动
https://i-blog.csdnimg.cn/blog_migrate/8f2e79d12da250098953e204d4951e01.png
   hive
server2的启动时间会比力长,可以通过端口查察确认hive
server2是否真的启动
hive
server2运行时会绑定10000端口
lsof-i:10000
https://i-blog.csdnimg.cn/blog_migrate/577f6f48e806b42721b3ea13ecf79d14.png

   使用hive
自带的二代客户端,通过jdbc方式连接hive

beeline
https://i-blog.csdnimg.cn/blog_migrate/d4846f005251576748a49c91db03e063.png

https://i-blog.csdnimg.cn/blog_migrate/66378bd89ed155e1dc2935a4a3906db0.png
七、 Datagrip使用(掌握)

使用Datagrip连接Hive


[*] 创建工程(起一个工程名称即可)
[*] 绑定一个文件路径,用来存放我们誊写的sql语句
https://i-blog.csdnimg.cn/blog_migrate/0622bcc94f70cb4247d5ac7897264416.png
https://i-blog.csdnimg.cn/blog_migrate/f2be96041a983c5bd159ca11f9fd28b7.png

[*] 连接hive
服务
   前提: 启动metastore 和hive
server2服务
Datagrip连接hive
服务,本质上链接的是hive
server2
https://i-blog.csdnimg.cn/blog_migrate/834f33a1c8d5db3b38fbac4c31da6916.png
填写信息
https://i-blog.csdnimg.cn/blog_migrate/2fe608763f1dfb48ea65ead188bd1acb.png
如果第一次使用必要下载驱动,安装驱动有2种方式
   
[*] 直接点击链接界面左下方的download driver.
https://i-blog.csdnimg.cn/blog_migrate/882ab49e8627a14cd12c8560d4a4cb9b.png
2 自定义驱动位置,绑定本地驱动
https://i-blog.csdnimg.cn/blog_migrate/160e23c5ddd4c632a5c0175c8dfda7bc.pnghttps://i-blog.csdnimg.cn/blog_migrate/a7feefd2a33f57e4e5994cea043fe71c.pnghttps://i-blog.csdnimg.cn/blog_migrate/a6a8ea5705ed013693037572ff74eb58.pnghttps://i-blog.csdnimg.cn/blog_migrate/559dd71227fbe90c952b31a16775e0eb.pnghttps://i-blog.csdnimg.cn/blog_migrate/6ba8983109daa827318539ae498629b9.pnghttps://i-blog.csdnimg.cn/blog_migrate/021d4bd4fe9b6fdc33a81abd9be57b66.pnghttps://i-blog.csdnimg.cn/blog_migrate/3f94ca16b71615069fcb883f58e4c8cb.pnghttps://i-blog.csdnimg.cn/blog_migrate/4db4fb51a27fd735f7a907955d8a71ce.png4.点解test connection验证连接,当连接成功时,点击ok就可以使用了
https://i-blog.csdnimg.cn/blog_migrate/09bdf29b3af5a2ac8dc4d769d2608530.png

[*] 创建一个文件,验证sql命令是否可用
创建文件
https://i-blog.csdnimg.cn/blog_migrate/5057bb5740f6e32d0cc92e06747a1422.png
选择会话
https://i-blog.csdnimg.cn/blog_migrate/8aeeb58eed1acf43785cdeedfa412b6b.png
输入sql语句并实验
https://i-blog.csdnimg.cn/blog_migrate/5bab5deeb8b938ddb11ec523b23a66dd.png
八、hive
的数据库操纵

数据库创建

CREATE DATABASE database_name
-- 指定数据库在hdfs上路径位置


[] 括起来内容是可选的关键字语法
   按照默认路径创建数据库
-- 在hive
中不必要指定charsetcreate database itcast;-- 一但创建成功会在hdfs的默认路径下出现一个数据库目次 在hdfs的/user/hive
/warehouswcreate database if not exists itcast;
https://i-blog.csdnimg.cn/blog_migrate/3967a2fcab1c256c486b2385ab1d1c20.png
   指定hdfs的路径目次作为数据库目次
-- 指定数据库在hdfs上的路径目次-- 1-现在hdfs上创建一个空的数据库目次-- 2-指定该空目次作为hive
数据库的数据目次create database itheimalocation '/itheima';
https://i-blog.csdnimg.cn/blog_migrate/2776c1d299646e9bba8f42524c239fc5.png

   数据库的其他操纵
-- 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 TABLE table_name    -- (Note:
[(col_name data_type , ... )]

, ...)]
, ...)] INTO num_buckets BUCKETS]
[SKEWED BY (col_name, col_name, ...)                  -- (Note: Available in Hive
   ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
   
[
   
   
   | STORED BY 'storage.handler.class.name' -- (Note: Available in Hive 0.6.0 and later)
]

   -- (Note: Available in Hive 0.6.0 and later)
;   -- (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企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Hive数据库项目搭建