20-学习笔记尚硅谷数仓搭建-数据仓库开发环境搭建-hive连接DataGrip

目录

备注:没有特别说明就在atguigu用户执行命令

一、连接工具下载(因为最新版的datagrip支持非商用免费,所以不用去找激活码了)

二、启动服务

三、创建项目,连接hive

四、新建数据库

五、常见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&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;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测试连接(避免误操作删除了一些文件导致不能连接)

相关推荐
柿柿快乐2 小时前
Redis 入门第一课:全局命令、内部编码与单线程模型
redis·学习·缓存·基础教学
智者知已应修善业3 小时前
【51单片机LED闪烁10次数码管显示0-9】2023-12-14
c++·经验分享·笔记·算法·51单片机
Lucky_ldy3 小时前
C语言学习:文件操作
学习
智者知已应修善业3 小时前
【51单片机2按键控制1个敞亮LED灯闪烁和熄灭】2023-11-3
c++·经验分享·笔记·算法·51单片机
AI算法沐枫3 小时前
大模型 | 大模型之机器学习基本理论
人工智能·python·神经网络·学习·算法·机器学习·计算机视觉
小新同学^O^4 小时前
简单学习 --> LangChain
python·学习·langchain
w2018005 小时前
二年级下册语文看图写话作文:蛋壳的奇妙之旅
笔记
daanpdf5 小时前
初三中考英语作文模板万能句型及范文大全电子版
笔记
nnsix5 小时前
设计模式 - 建造者模式 笔记
笔记·设计模式·建造者模式
吃好睡好便好5 小时前
在Matlab中绘制阶梯图
开发语言·人工智能·学习·算法·机器学习·matlab