目录
一、连接工具下载(因为最新版的datagrip支持非商用免费,所以不用去找激活码了)
备注:没有特别说明就在atguigu用户执行命令
一、连接工具下载(因为最新版的datagrip支持非商用免费,所以不用去找激活码了)
1.在下面的官网下载最新版2025.3.4
下载 DataGrip:适用于数据库和 SQL 的跨平台 IDE

可以看到对非商业用途免费

2.双击安装包,后选择安装目录(尽量全英文)

3.创建快捷方式

4.默认即可

5.勾选运行

6.打开后点击设置,选择管理许可证


7.选择非商业使用,并勾选条款

8.如果没有账户可能会先让你登录注册(我已经有了)
登录成功后,开始使用,可以看到有一年免费使用,后续到期了,重来一遍许可操作就行

二、启动服务
1.启动HDFS(在hadoop102执行下面命令)
hdp.sh start
2.启动HiveServer2(在hadoop102执行下面命令)
cd /opt/moduel/hive
hiveserver2
三、创建项目,连接hive
1.选择新建项目,选择路径(随便)最后的是项目名称

2.进入项目后点击"+"选择数据源,选择apache hive

3.连接配置

4.下载驱动

等待下载完成后,自定义jar

找到安装的驱动路径。会自动跳到hive目录

打开hive,打开3.1.2

选择jar包

5.测试连接,返回数据源,点击gmall,选择下面的测试连接,成功后会打勾,连接成功后应用并确定

6.查看,数据是我们前面插入过的数据

四、新建数据库
1.新建查询控制台

2.输入下面sql,选中并运行,新建一个gmall数据库

五、常见datagrip错误
1.DataGrip 中注释乱码问题
打开navicat,新建如下查询
sql
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;
如图选中后运行

2.hive服务器报错如下,只要是看到show 、 index、下面框选中报的错就不用管,
原因:早期版本的 Hive 有索引功能,当前版本已移除, DataGrip 刷新连接时会扫描索引,而 Hive 没有,就会报错。
上述问题是DataGrip导致的,并非Hive环境的问题,不影响使用。

ctrl + c先停止hiveserver2服务后执行下面两个错误修改
3.如果hiveserver2后台频繁出现OutOfMemoryError,就按照下面方法提高内存
停止服务后输入在虚拟机输入下面命令(在hadoop102执行下面命令)
sql
cd $HIVE_HOME/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
在最后添加下面的内容:
sql
export HADOOP_HEAPSIZE=2048
如果以后还出现OutOfMemoryError的错误就把这个值改的更大些就行(这里是2个G)
4.DataGrip ODS层部分表字段显示异常
建表字段中有如下语句的表字段无法显示。
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
上述语句指定了Hive表的序列化器和反序列化器SERDE(serialization 和 deserialization的合并缩写),用于解析 JSON 格式的文件。上述 SERDE 是由第三方提供的,在hive-site.xml中添加如下配置即可解决。(在hadoop102执行下面命令)
sql
cd $HIVE_HOME/conf
vim hive-site.xml
添加下面内容:
<property>
<name>metastore.storage.schema.reader.impl</name>
<value>org.apache.hadoop.hive.metastore.SerDeStorageSchemaReader</value>
</property>
添加后完整代码
sql
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--配置Hive保存元数据信息所需的 MySQL URL地址-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true</value>
</property>
<!--配置Hive连接MySQL的驱动全类名-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<!--配置Hive连接MySQL的用户名 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!--配置Hive连接MySQL的密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<value>hadoop102</value>
</property>
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<!--Spark依赖位置(注意:端口号8020必须和namenode的端口号一致)-->
<property>
<name>spark.yarn.jars</name>
<value>hdfs://hadoop102:8020/spark-jars/*</value>
</property>
<!--Hive执行引擎-->
<property>
<name>hive.execution.engine</name>
<value>spark</value>
</property>
<!--DataGrip ODS层部分表字段显示异常-->
<property>
<name>metastore.storage.schema.reader.impl</name>
<value>org.apache.hadoop.hive.metastore.SerDeStorageSchemaReader</value>
</property>
</configuration>
六、重启服务
输入下面命令重启服务(在hadoop102执行下面命令)
sql
cd /opt/module/hive
hiveserver2
去看datagrip测试连接(避免误操作删除了一些文件导致不能连接)

