openLooKeng 官网地址 https://openlookeng.io
openLooKeng 官网中文文档 https://docs.openlookeng.io/zh/docs/docs/overview.html
openLooKeng GitHub源码地址 https://github.com/openlookeng
openLooKeng是业界著名由华为开源的、开箱即用、面向大数据库的数据虚拟化引擎,支持在任何地点、数据进行原位分析的,其宗旨是让数据治理、大数据使用更简单。最新版本为v1.8.0
RDBMS(如MySQL、Oracle等)、NoSQL(如HBase、ES、Kafka等)等数据管理系统广泛用于客户的各种应用系统中。随着数据量的增加,数据管理越来越完善,客户逐步基于Hive或MPPDB建立数据仓库。这些数据存储系统往往相互隔离,形成相互独立的数据孤岛。数据分析师经常遇到以下问题:
异构数据源多,语法差异大,使用不方便;数据ETL费时费力,降低分析效率;
大部分的企业在面向大数据应用面临的用数难、找数难、取数难的痛点:
openLooKeng的出现正是为了打破数据壁垒、数据孤岛的僵局并快速实现数据的价值,实现用数极简,找数极速,取数高效的目的。
openLooKeng与数据源、客户端的承接架构如下:
openLooKeng内部的核心架构如下:
openLooKeng是一个向量化的存储引擎,基于内存的流水线处理。
openLooKeng与Impala类似为典型的MPP数据库架构,主要由 Coordinator 和 Worker 组成,每个openLooKeng集群安装必须有一个openLooKeng Coordinator节点,以及一个或多个openLooKeng Worker节点。
openLooKeng引入了高可用的AA特性,支持Coordinator AA双活机制,能够保持多个Coordinator之间的负载均衡,同时也保证了openLooKeng在高并发下的可用性。
openLooKeng的弹性伸缩特性支持将正在执行任务的服务节点平稳退服,同时也能将处于不活跃状态的节点拉起并接受新的任务。openLooKeng通过提供“已隔离”与“隔离中”等状态接口供外部资源管理者(如Yarn、Kubernetes等)调用,从而实现对Coordinator和Worker节点的弹性扩缩容。
openLooKeng统一目录、跨域跨DC查询:通过Data Source Connector和Data Center Connector两大统一数据源连接框架来实现。
openLooKeng常用于如下几种场景:
相反的由于openLooKeng设计其不适用对实时性要求很高如秒级响应的系统和针对并发要求很高的系统。
openLooKeng支持单机一键部署、手动部署、自动部署,自动部署又包含在线部署、离线部署。下面离线单台集群部署和多台集群部署
# 下载 https://download.openlookeng.io/auto-install/openlookeng.tar.gz 并将其内容解压到 /opt 目录。
wget --no-check-certificate https://download.openlookeng.io/auto-install/openlookeng.tar.gz
tar -xvf openlookeng.tar.gz -C /opt/
# 创建目录 /opt/openlookeng/resource 并保存 openLooKeng 执行文件 https://download.openlookeng.io//hetu-server-.tar.gz 和 https://download.openlookeng.io//hetu-cli--executable.jar,其中对应于正在安装的版本,例如1.0.0。
mkdir -p /opt/openlookeng/resource
wget --no-check-certificate https://download.openlookeng.io/1.8.0/hetu-server-1.8.0.tar.gz
wget --no-check-certificate https://download.openlookeng.io/1.8.0/hetu-cli-1.8.0-executable.jar
# 同时将第三方依赖保存在 /opt/openlookeng/resource 目录下。根据本机的架构,下载 https://download.openlookeng.io/auto-install/third-resource/x86/ 或 https://download.openlookeng.io/auto-install/third-resource/aarch64/ 下面的全部文件。这应该包括一个 OpenJDK 文件和两个 sshpass 文件。
wget --no-check-certificate https://download.openlookeng.io/auto-install/third-resource/aarch64/OpenJDK8U-jdk_aarch64_linux_hotspot_8u222b10.tar.gz
wget --no-check-certificate https://download.openlookeng.io/auto-install/third-resource/aarch64/sshpass-1.06-1.el7.aarch64.rpm
wget --no-check-certificate https://download.openlookeng.io/auto-install/third-resource/aarch64/sshpass-1.06.tar.gz
# 执行离线
bash /opt/openlookeng/bin/install_offline.sh
集群部署裕单台部署类似
# 将openlookeng.tar.gz文件和资源文件分发到其他服务器
scp -r /opt/openlookeng server2:/opt/
scp -r /opt/openlookeng server3:/opt/
# 执行离线,等待几分钟时间待三个节点完成部署
bash /opt/openlookeng/bin/install_offline.sh -m
# openLooKeng CLI提供了一个基于终端的交互shell,用于运行查询。CLI是一个可执行的JAR文件,可以通过java -jar ./hetu-cli-*.jar执行。下载于服务器对应版本的 CLI 文件,例如:hetu-cli-1.0.0-executable.jar,运行:
java -jar ./hetu-cli-1.0.0-executable.jar --server localhost:8080 --catalog hive --schema default
# 也可以直接运行openlk-cli,相当于java -jar /opt/openlookeng/resource/hetu-cli-*-executable.jar --server localhost:8090
/opt/openlookeng/bin/openlk-cli
# 使用--help选项运行CLI,查看可用选项。
# 默认情况下,使用less程序将查询结果分页,该程序配置了一组精心选择的选项。可以通过将环境变量OPENLOOKENG_PAGER设置为其他程序的名称(如more)或将其设置为空值来完全禁用分页来覆盖此行为
openLooKeng中可用的连接器,用于访问不同数据源的数据。官方提供非常丰富连接器供使用
MySQL连接器允许在外部MySQL数据库中查询和创建表。可用于在MySQL和Hive等不同系统之间或在两个不同的MySQL实例之间联接数据。
要配置MySQL连接器,在/opt/openlookeng/data/etc/catalog
目录下创建一个目录属性文件,将MySQL连接器挂载为mysql
目录。使用以下内容创建文件,并根据设置替换连接属性。
vim mysql.properties
connector.name=mysql
connection-url=jdbc:mysql://192.168.50.100:3306
connection-user=root
connection-password=12345678
#true表示打开下推,false表示关闭。默认是打开的
jdbc.pushdown-enabled=true
#FULL_PUSHDOWN,表示全部下推;BASE_PUSHDOWN,表示部分下推,其中部分下推是指filter/aggregation/limit/topN/project这些可以下推。
jdbc.pushdown-module=FULL_PUSHDOWN
# 重启openlookeng
bash /opt/openlookeng/bin/restart.sh
# 退出cli
quit
# 指定--catalog mysql连接cli
/opt/openlookeng/bin/openlk-cli --catalog mysql
# 显示数据库,已经为配置的mysql数据库信息
show databases;
# 显示数据表
show tables;
与MySQL连接器相似,在/opt/openlookeng/data/etc/catalog
目录下创建vim clickhouse.properties,
connector.name=clickhouse
connection-url=jdbc:clickhouse://192.168.50.100:8123
connection-user=default
connection-password=
# 是否允许连接器删除表
allow-drop-table=true
# 是否开启查询下推功能。连接器的下推功能默认打开,也可以如下设置:
clickhouse.query.pushdown.enabled=true
# 是否区分表名大小写,与openLooKeng不同,ClickHouse的语法是大小写敏感的,如果您的数据库表中存在大写字段,可以按如下设置。
case-insensitive-name-matching=true
# 重启openlookeng
bash /opt/openlookeng/bin/restart.sh
# 指定--catalog mysql连接cli
/opt/openlookeng/bin/openlk-cli
# 通过SHOW SCHEMAS来查看可用的ClickHouse数据库:
SHOW SCHEMAS FROM clickhouse
# 如果有一个名为test的ClickHouse数据库,可以通过执行SHOW TABLES查看数据库中的表:
SHOW TABLES FROM clickhouse.test;
# 若要查看数据模式中名为table1的表中的列的列表,请使用以下命令中的一种:
DESCRIBE clickhouse.test.table1;
SHOW COLUMNS FROM clickhouse.test.table1;
# 查询表数据
SELECT * FROM clickhouse.test.table1;
**本人博客网站 **IT小神 www.itxiaoshen.com