StarRocks Catalog 基本介绍

2023-09-21 warehouse starrocks

HMS

HMS 端口一般通过 hive.metastore.port 参数定义,而客户端通常通过 hive.metastore.uris 参数配置。

CREATE EXTERNAL CATALOG hudi_catalog_hms
PROPERTIES (
    "type" = "hudi",
    "hive.metastore.type"="hive",
    "metastore.sasl.enabled"="false",
    "hive.metastore.type" = "hive",
    "hive.metastore.uris" = "thrift://192.168.1.222:9083,thrift://192.168.1.73:9083",
);
SET CATALOG hudi_catalog_hms;
SHOW CATALOGS;

DROP CATALOG hudi_catalog_hms;

HDFS

其中核心包含了如下两个配置文件:

  • core-site.xml 集群全局配置参数。
  • hdfs-site.xml HDFS 相关参数。

可以直接通过 find -name 'hdfs-site.xml' 查找并复制配置文件,注意其中的部分参数可能使用的是域名,可以直接修改为 IP 地址,或者将域名添加到 /etc/hosts 配置文件中。

一般对应的核心配置内容如下。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
  <property>
    <name>dfs.nameservices</name>
    <value>hacluster</value>
  </property>
  <property>
    <name>dfs.ha.namenodes.hacluster</name>
    <value>3,4</value>
  </property>
  <property>
    <name>dfs.namenode.rpc-address.hacluster.3</name>
    <value>192.168.0.147:8020</value>
  </property>
  <property>
    <name>dfs.namenode.rpc-address.hacluster.4</name>
    <value>192.168.0.175:8020</value>
  </property>
  <property>
    <name>dfs.client.failover.proxy.provider.hacluster</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
</configuration>

可以通过如下方式配置。

SET CATALOG hive;
USE hive.default;

CREATE EXTERNAL TABLE user_info(
    id STRING,
    name STRING,
    gender STRING,
    age INT,
    addr STRING
)
PARTITIONED BY(year STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE LOCATION '/hive/user_info';

hdfs dfs -mkdir /hive/user_info
INSERT INTO user_info PARTITION(year="2018") VALUES("12005000201", "A", "男", 19, "A城市");

安全集群

需要复制目标集群的 krb5.con hive.keytab 文件,在进行认证时需要使用域名,如果没有配置 DNS 解析,那么就需要修改 /etc/hosts 文件,然后通过如下命令测试。

export KRB5_CONFIG=/opt/krb5.conf
kinit -kt /opt/hive.keytab hive/hadoop.your_domain.com@YOUR_DOMAIN.COM

执行 kinit 命令可能会比较慢。

同时需要修改上述的创建 CATALOG 语句,增加 "metastore.sasl.enabled"="true" 参数;修改 JAVA 的启动参数,增加 -Djava.security.krb5.conf=/opt/krb5.conf 配置;同时,修改 hdfs-site.xml 配置文件,增加如下参数。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
  <property>
    <name>hadoop.security.authentication</name>
    <value>KERBEROS</value>
  </property>
</configuration>

另外,如果发现启动异常,可以在 JAVA 启动参数中增加 -Dsun.security.krb5.debug=true 调试参数,此时日志会打印在 fe.out 文件中。