Hive 数据操作之JDBC总结
1. 背景
- Hive作为一个处理结构化数据和文件的工具,可以通过多种方式进行数据操作和处理。
- Hive本身可以简单看成一个将sql语句转化为mapreduce程序或者类mapreduce程序的转换器,数据处理还是由转换出来的mapreduce程序在处理。
- Hive可以将结构化数据转换为一张表,然后通过HQL(属于SQL规范的一种实现方式)来进行数据查询和操作。
- 数据操作则可以简单分为几类操作
- 数据导入
- 数据导出
- 数据插入
- 数据查询
- 数据更新和删除(在hive的场景中,一般不会使用到数据更新和删除,绝大部分场景都是数据一次导入,多次查询和分析)
- Hive的连接和操作方式,则和其他服务器端程序类似,分为shell 客户端、java api、网页端。
- shell 客户端
shell客户端一般都是最直接的方式,一般性能也是最快的,因为少了其他方式的通信消耗,直接在节点或者集群上进行操作。
- 直连之hive
hive
2. shell通过beeline方式进行jdbc连接,数据会有一定格式化,查看起来更加美观直接beeline
!connect jdbc:hive2://linux100:10000 # 账号是root,密码无,直接按下enter按键即可 root
- java api
一般类数据库的操作java端都是jdbc方式,mysql、oracle、clickhouse、hbase、包括本次的hive。一般都需要导入驱动jar包 - 网页端,端口号默认是10002,当然这个可以进行配置设定
http://linux100:10002/
2. 环境准备
- Idea2020版本、windows10、jdk1.8、maven3.6.3。
- linux集群(基于centos 7.x)、集群安装好jdk1.8,安装好hadoop3.2.1,安装好hive 3.1.2,安装好mysql5.7
如果不知道如何安装这些环境,可以搜索我其他博客。 - 启动集群中hdfs、yarn、mysql、hive服务
注意,先启动hdfs和yarn服务,然后启动mysql服务,启动hive服务时,注意metastore和hiveserver2服务都需要启动
3.代码
- 创建maven项目,pom文件如下. 这里不涉及打jar包,所以没有导入打包依赖,否则需要导入将依赖jar包打入package的插件
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.8.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc
数据库的驱动 连接的是何种数据库
-->