StarRocks访问Apache Hive+OBS存算分离指导
概述
StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP 架构、CBO、智能物化视图、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容MySQL协议,可使用MySQL客户端和常用BI工具对接。同时StarRocks具备水平扩展,高可用、高可靠、易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。
Hive Catalog是一种External Catalog,自2.3版本开始支持,通过Hive Catalog您可以:
- 无需手动建表,通过Hive Catalog直接查询Hive内的数据。
- 通过INSERT INTO或异步物化视图(3.1 版本及以上)将Hive内的数据进行加工建模,并导入至StarRocks。
- 在StarRocks侧创建或删除Hive库表,或通过INSERT INTO把StarRocks表数据写入到Parquet格式(3.2 版本及以上)、以及ORC或Textfile格式(3.3 版本及以上)的Hive表中。
Hadoop配置
- 将HDFS集群中的core-site.xml文件放到每个FE的 $FE_HOME/conf路径下,以及每个BE的$BE_HOME/conf路径下。以下是一个core-site.xml文件的示例:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. See accompanying LICENSE file. --> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>fs.defaultFS</name> <value>obs://xxx/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/xxx</value> </property> <property> <name>fs.obs.impl</name> <value>org.apache.hadoop.fs.obs.OBSFileSystem</value> </property> <property> <name>fs.AbstractFileSystem.obs.impl</name> <value>org.apache.hadoop.fs.obs.OBS</value> </property> <property> <name>fs.obs.access.key</name> <value>xxx</value> </property> <property> <name>fs.obs.secret.key</name> <value>xxx</value> </property> <property> <name>fs.obs.endpoint</name> <value>obs.xxx.myhuaweicloud.com</value> </property> </configuration>
- 复制hadoop-huaweicloud-xxx-hw-xxx.jar到每个BE的$BE_HOME/lib/hadoop/common/lib目录下。
- 配置每个BE的$BE_HOME/conf/be.conf文件。执行以下命令,进入配置文件编辑页面:
vim $BE_HOME/conf/be.conf
增加如下配置:fallback_to_hadoop_fs_list = obs://
修改完成后,按“Esc”,输入:wq保存并退出文件编辑。
创建Hive Catalog,使用HMS
CREATE EXTERNAL CATALOG hive_catalog_hms PROPERTIES ( "type" = "hive", "hive.metastore.type" = "hive", "hive.metastore.uris" = "thrift://xxx:9083" );
切换 Hive Catalog 和数据库
您可以通过如下方法切换至目标 Hive Catalog 和数据库:
- 先通过 `SET CATALOG `指定当前会话生效的 Hive Catalog,然后再通过 `USE`指定数据库:
-- 切换当前会话生效的 Catalog: SET CATALOG hive_catalog_hms; -- 指定当前会话生效的数据库: USE <db_name>
- 或者通过 `USE`直接将会话切换到目标 Hive Catalog 下的指定数据库:
USE hive_catalog_hms.<db_name>