Apache hive 对接达梦数据库

櫰木10个月前技术文章686

1、背景

由于国产化需求,客户需要使用dm数据库作为hive的元数据库。需要进行对应适配

2、配置

本次使用的环境

hive 3.1.3
hadoop 3.2.4
ranger 2.3.0
Spark  3.2.2

下载dm的jdbc 包放置在HIVE_HOME/lib和/usr/share/java下

下载地址

https://mvnrepository.com/artifact/com.dameng/DmJdbcDriver18

image.png

image.png

注释以下hive-site.xml配置

<property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
 </property>
<property>
    <name>hive.txn.manager</name>
    <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
</property>

准备hive的dm数据库

create tablespace hive_meta datafile '/dm8/data/DAMENG/hive_meta.dbf' size 100 autoextend on next 1 maxsize 2048;
create user hive identified by "hive12345" default tablespace hive_meta;
grant RESOURCE to hive;

对hive-site.xml进行配置

准备dm的数据源连接

在$HIVE_HOME/conf下添加此配置文件

vim dm_svc.conf
IME_ZONE=(480)
LANGUAGE=(cn)
HIVE=(172.16.104.165:5236)
[HIVE]
KEYWORDS=(COMMENT,comment)

修改hive-site.xml的配置参数

 <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:dm://HIVE?dmsvcconf=/opt/hive/conf/dm_svc.conf</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>dm.jdbc.driver.DmDriver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hive</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hdd123456</value>
    </property>

其中jdbc:dm://HIVE?dmsvcconf=/opt/hive/conf/dm_svc.conf 中的HIVE 指的是dm_svc.conf中HIVE=(172.16.104.165:5236)

进行元数据初始化

cd $HIVE_HOME
./bin/schematool -dbType dm -initSchema

出现如下提示,即元数据库初始化完成

image.png

3、启动hive

cd $HIVE_HOME
#开启debug。启动metastore
sudo -u hive /opt/hive/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console
#启动hive server2
sudo -u hive /opt/hive/bin/hive --service hiveserver2

通过beeline进行连接验证


相关文章

kubebuilder 开发operator初探

1、使用kubebuilder初始化$ mkdir project$ cd project$ kubebuilder init --domain tutorial.kubebuilder.io --r...

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

数据湖技术之iceberg(十)Structured Streaming实时写入Iceberg

目前Spark中Structured Streaming只支持实时向Iceberg中写入数据,不支持实时从Iceberg中读取数据,下面案例我们将使用Structured Streaming从Kafk...

image.png

kvm相关命令

一、管理kvm虚拟机1、创建虚拟机virt-install --name=centos1 –ram 1024 --vcpus=1 –disk path=/root/centos1.img,size...

MySQL性能优化(四)隐式类型转换

我们知道, where条件中,对一个索引字段进行运算会导致无法使用该字段的索引。有些情况下,即使没有显式地对索引字段进行运算,但是数据库会进行隐式类型转换,这也会导致无法使用索引。会发生隐式类型转换的...

kubernetes调度策略

1、背景在 Kubernetes 中,调度 (scheduling) 指的是确保 Pod 匹配到合适的节点,以便 kubelet 能够运行它们。调度的工作由调度器和控制器协调完成。调度器通过 Kube...

Spark 对接 Alluxio

Spark 对接 Alluxio

1、概览        Spark 1.1 或更高版本的 Spark可以通过其与 HDFS 兼容的接口直接访问 Alluxio 集群。 使用 Alluxio 作为数据访问层,Spark 应用程序可以透...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。