使用Kylin导入JDBC数据源遇到的问题

Kylin接入外部Jdbc Mysql数据源 前言 Kylin目前不仅仅支持Hive作为数据源构建cube,也可以支持使用外部jdbc作为数据源进行构建,比如使用MySQL数据源的时候会让我们下载sqoop安装包,本质上是使用sqoop全量同步我们要构建的MySQL数据,先加载到hive的临时表中,构建完成之后然后再清理。对于需要增量数据同步并进行构建的情况不太友好 提示:以下是本篇文章正文内容,下面案例可供参考 一、环境安装部署 为了简化安装的环节,可以直接借用官方提供的docker化部署方案进行验证即可。 # 拉取镜像 docker pull a 阅读详情

一、目标:
直接使用Mysql数据作为Kylin数据源
二、参考官方配置 JDBC 数据源
准备 Sqoop
Kylin 使用 Apache Sqoop 从关系型数据库加载数据到 HDFS。在与 Kylin 同一个机器上下载并安装最新版本的 Sqoop。我们使用 SQOOP_HOME 环境变量指出在本指南中 Sqoop 的安装路径。
准备 JDBC driver
需要下载您数据库的 JDBC Driver 到 Kylin server。JDBC driver jar 需要被加到 KYLINHOME/ext和KYLINHOME/ext和SQOOP_HOME/lib 文件夹下。
配置 Kylin
在 $KYLIN_HOME/conf/kylin.properties 中,添加以下配置。
MySQL 样例:

kylin.source.default=8
kylin.source.jdbc.connection-url=jdbc:mysql://hostname:3306/employees
kylin.source.jdbc.driver=com.mysql.jdbc.Driver
kylin.source.jdbc.dialect=mysql
kylin.source.jdbc.user=your_username
kylin.source.jdbc.pass=your_password
kylin.source.jdbc.sqoop-home=/usr/hdp/current/sqoop-client/bin
kylin.source.jdbc.filed-delimiter=|

三、遇到的问题:

exe cmd:/usr/hdp/2.5.5.0-157/sqoop/bin/sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true  -Dmapreduce.job.queuename=default --connect "jdbc:mysql://X.X.X.X:3306/XXX" --driver com.mysql.jdbc.Driver --username XXXXX --password XXXXX --query "SELECT SLICES.CHANGED_ON as SLICES_CHANGED_ON ,SLICES.ID as SLICES_ID ,SLICES.SLICE_NAME as SLICES_SLICE_NAME ,SLICES.DATASOURCE_TYPE as SLICES_DATASOURCE_TYPE ,SLICES.DATASOURCE_NAME as SLICES_DATASOURCE_NAME ,SLICES.VIZ_TYPE as SLICES_VIZ_TYPE ,SLICES.DESCRIPTION as SLICES_DESCRIPTION FROM SUPERSET.SLICES as SLICES  WHERE 1=1 AND \$CONDITIONS" --target-dir hdfs://master1.bigdata:8020/kylin/kylin_metadata_2.3/kylin-908401b6-a8aa-4879-a70d-fdefeefd833d/kylin_intermediate_superset_slice_1f3498b3_ed6f_47b2_bcaa_7fd449d93306 --split-by SLICES.SLICES.ID --boundary-query "SELECT min(SLICES.ID), max(SLICES.ID) FROM "SUPERSET".SLICES as SLICES" --null-string '' --fields-terminated-by '|' --num-mappers 1
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/hdp/2.5.5.0-157/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/insight/vdc1/software/apache-kylin-2.4.0-bin-hbase1x/spark/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
18/08/14 16:19:55 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6.2.5.3.0-37
18/08/14 16:19:55 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
18/08/14 16:19:55 WARN tool.BaseSqoopTool: Parameter --driver is set to an explicit driver however appropriate connection manager is not being set (via --connection-manager). Sqoop is going to fall back to org.apache.sqoop.manager.GenericJdbcManager. Please specify explicitly which connection manager should be used next time.
18/08/14 16:19:55 ERROR tool.BaseSqoopTool: Got error creating database manager: You must specify --connection-manager when you specified --driver.
    at org.apache.sqoop.tool.BaseSqoopTool.init(BaseSqoopTool.java:278)
    at org.apache.sqoop.tool.ImportTool.init(ImportTool.java:89)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:610)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:225)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:243)

四、异常分析:
从报错上看,就是如果指定 –driver必须指定 –connection-manager,然后再Kylin.properties配置文件里,添加了 connection-manager=org.apache.sqoop.manager.MySQLManager,依然保持,并且执行的sql语句里并没有读取到参数connection-manager,于是在cube的configuration overwrites页面添加connection manager参数,继续build,同样的异常,没有读取到参数。
接下来注释掉 –driver参数,执行build,仍然报错,执行的sql里 仍然传了 –driver参数,只不过是null。
于是换了另一种思路,不通过Kylin配置sqoop参数,直接执行sqoop import语句,两种方式都可以成功:1)同时传–driver=com.mysql.jdbc.Driver –connection-manager=–connection-manager org.apache.sqoop.manager.MySQLManager
2)两个参数都不传。

五:解决
有了上面的尝试,有了方向,可能跟sqoop的版本有关系,Kylin-2.4 source-jdbc部分并没有适配sqoop的版本,使用的最新版本。为了确认自己的推断,做了两件事:
1、查看Kylin的source-jdbc部分的源码
JdbcExplorer.java

package org.apache.kylin.source.jdbc;

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.UUID;

import org.apache.commons.lang3.StringUtils;
import org.apache.kylin.common.KylinConfig;
import org.apache.kylin.common.util.DBUtils;
import org.apache.kylin.common.util.Pair;
import org.apache.kylin.metadata.datatype.DataType;
import org.apache.kylin.metadata.model.ColumnDesc;
import org.apache.kylin.metadata.model.ISourceAware;
import org.apache.kylin.metadata.model.TableDesc;
import org.apache.kylin.metadata.model.TableExtDesc;
import org.apache.kylin.source.ISampleDataDeployer;
import org.apache.kylin.source.ISourceMetadataExplorer;
import org.apache.kylin.source.hive.DBConnConf;
import org.apache.kylin.source.jdbc.metadata.IJdbcMetadata;
import org.apache.kylin.source.jdbc.metadata.JdbcMetadataFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class JdbcExplorer implements ISourceMetadataExplorer, ISampleDataDeployer {
    private static final Logger logger = LoggerFactory.getLogger(JdbcExplorer.class);

    private final KylinConfig config;
    private final String dialect;
    private final DBConnConf dbconf;
    private final IJdbcMetadata jdbcMetadataDialect;

    public JdbcExplorer() {
        config = KylinConfig.getInstanceFromEnv();
        String connectionUrl = config.getJdbcSourceConnectionUrl();
        String driverClass = config.getJdbcSourceDriver();
        String jdbcUser = config.getJdbcSourceUser();
        String jdbcPass = config.getJdbcSourcePass();
        this.dbconf = new DBConnConf(driverClass, connectionUrl, jdbcUser, jdbcPass);
        this.dialect = config.getJdbcSourceDialect();
        this.jdbcMetadataDialect = JdbcMetadataFactory.getJdbcMetadata(dialect, dbconf);
    }

并没有参数connection-manager,并且–driver必传

2、下载最新版sqoop-1.4.7,重新配置SQOOP_HOME
重启Kylin,重新执行cube的build操作,成功执行。

六、总结:
生产环境的Sqoop是1.4.6,由于是内网并且多租户使用,组件的及时更新很不现实,这次的问题,没有在google找到一点问题的解决方案,不知道是大家没有使用关系型数据库,还是sqoop的版本都是最新的,费了好些周折,把问题分享出来,希望对同在坑中的同志提供些帮助。

OLAP引擎——Kylin介绍 最近一直在学习和使用kylin,分享一下学习的收获以及对kylin的理解~ 阅读详情

相关推荐

kylin-jdbc

Java连接kylin 进行操作使用。kylin-jdbckylin-jdbckylin-jdbckylin-jdbc

kylin -- 使用JDBC连接操作Kylin

(数据见资源包kylin) 要将数据以可视化方式展示出来,需要使用Kylin的JDBC方式连接执行SQL,获取Kylin的执行结果 使用Kylin的JDBC与JDBC操作MySQL一致 jdbc url jdbc:kylin://node1:7070/tt01 用户名密码:ADMIN/KYLIN 需求 通过JDBC方式,查询按照日期、区域、产品维度统计订单总额/总数量结果 开发步骤 导入驱动依赖 <dependencies> <!-- Kylin --> ...

kismet 3429

kylin-jdbc-2.0.0.jar

kylin-jdbc-2.0.0.jar jdbc连接的驱动包,kylin安装包的lib文件下面有这个包。 kylin-jdbc-2.0.0.jar jdbc连接的驱动包,kylin安装包的lib文件下面有这个包。

Kylin学习总结

Kylin官网: https://kylin.apache.org/ http://kylin.apache.org/cn/ 一、概述 Apache Kylin是一个开源的、分布式的分析性数据库。Kylin是为了解决MapReduce编码复杂且效率低的问题。 Kylin的核心思想是利用空间换取时间,采用预处理方法,列出用户所有可能的查询SQL,提前计算各个维度的聚合结果并持久化保存到HBase,并且Kylin支持复杂的join操作。 Kylin支持亚秒级的查询,并且支持高并发。 二、Kylin的特点

zxr0130的博客 885

三维(点云)语义分割概述以及方法总结

语义分割 语义分割需要两部分 classification: 需要全局信息 segmentation:更加依赖全局信息和局部信息 一般的网络结构是: 提特征-特征映射-特征图压缩(降维)-全连接-分类,其实就是encoder-decoder的过程, 比如在二维的的pspnet,fcn等等 0. 三维表示的数据结构 Point cloud 无序性 点云实际上是无序的,比如有8个点云,你放到...

renhaofan的博客 3万+

PADS Layout新手必看:从元件摆放到地线处理的10个实用技巧

本文为PADS Layout新手提供了10个实用技巧,涵盖元件摆放、地线处理等关键环节。从功能模块化布局到高频信号处理,再到电磁兼容性设计,帮助初学者快速掌握PCB设计核心技能,提升Layout效率和质量。特别适合需要优化PADS Layout工作流程的设计师参考。

stone的博客 257

Kylin快速入门系列(5) | 如何使用JDBC连接操作Kylin

  现在可以与Kylin结合使用的可视化工具很多, 例如: ODBC:与Tableau、Excel、PowerBI等工具集成 JDBC:与Saiku、BIRT等Java工具集成 RestAPI:与JavaScript、Web网页集成 Kylin开发团队还贡献了Zepplin的插件,也可以使用Zepplin来访问Kylin服务。   本篇博客,为大家带来的就是如何使用JDBC操作连接Kylin的步骤流程! 目录一. 新建项目 一. 新建项目 1.常见项目及名称 2.导入依赖 <d

不温卜火 7367

SFF-8654接口引脚定义全解析:从SAS到U.2的高速硬件连接核心

在高速数据存储与传输领域,接口标准是连接主机与存储设备、确保信号完整性与协议互通性的物理基础。其核心原理在于通过精确定义的物理引脚和电气特性,承载不同的高速串行通信协议,如SAS和PCIe。这类高密度连接器的技术价值在于以紧凑的形态支持多协议兼容与高速率传输,满足了企业级存储、高性能计算对带宽和可靠性的苛刻要求。典型的应用场景包括服务器硬盘背板连接、NVMe U.2固态硬盘直连以及外部存储扩展。本文聚焦于SFF-8654(亦称Mini SAS HD)这一关键接口,深入剖析其引脚定义、信号分区(如高速数据通道

weixin_29188043的博客 719

kylin jdbc连接

kylin jdbc连接 package test_kylin; import java.sql.Connection; import java.sql.Driver; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.Properties; public class KylinCon

喜上眉梢 1377

Flotherm XT学习历程

大家好,通过半年的热仿真软件学习使用,最终发现最好用,最好上手的软件就是Flotherm XT,对新手非常友好,但由于软件近几年才发布,网上教程非常少,后面我将在这里持续分析软件使用心得,和大家一起学习。

xiaoredred的博客 6269

69、SAP数据库归档重做日志备份策略与工具详解

本文详细解析了SAP数据库归档重做日志备份的重要性及策略,介绍了SAP提供的备份工具brarchive及其配置和使用方法,探讨了BRBACKUP与BRARCHIVE的联合运行、一致在线备份、备用数据库备份场景以及备份策略的综合应用与优化。此外,还分析了备份过程中常见问题的解决方法、备份监控与评估流程、与第三方备份解决方案的集成方式,以及未来备份技术的发展趋势和应对策略。通过合理运用这些策略和工具,可以有效保障SAP数据库的安全性和可恢复性。

peace的博客 136

Kylin设置JDBC配置greenplum数据源

kylin最开始的时候支持hive和kafka作为数据源,从2.3.0版本之后开始支持JDBC作为第第三种数据源。用户可以自定义的数据库或者数据仓库到自己的kylin集群。比如,mysql,postgresql,greenplum等。 支持原理 需要了解到的是,kylin设置完jdbc作为数据源,是通过sqoop来实现的,他并不是摒弃了底层的hive,而是使用sqoop将你配置的数据源的数据抽取到...

qq_26777585的博客 1365

42、使用mmrotate中k3det进行旋转目标检测,并进行mnn部署和ncnn部署

基本思想:仍然是身份证分割,并进行ncnn和mnn的c++的部署开发

sxj731533730 5713

Kylin数据源支持与HBase集成指南

通常,Rowkey由维度组合编码而成,将高频查询的维度放在前面,可以减少扫描范围,提高查询效率。通过Hive的HBase Storage Handler,可以将HBase表映射为Hive外部表,然后在Kylin中使用该Hive表作为数据源。随着版本迭代,Kylin的数据源支持和存储引擎经历了重大变革,从早期依赖HBase作为存储引擎到4.0版本转向Parquet列式存储,同时保留了对多种数据源的接入能力。在Kylin Web UI中,选择Hive作为数据源,然后选择之前创建的Hive外部表作为数据源表。

weixin_45422672的博客 1250

补丁1.0:使用Eviews做ADF检验

补丁1.0:使用Eviews做ADF检验

Jet4505的博客 1961

华为OD机考双机位C卷 - 区间交集(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 区间交集

算法大师! 1137

Tableau Generic JDBC 连接 Kylin

在 7 月 12 日的 Kylin Data Summit 上,来自丁香园的周天鹏获得“2019 最佳 Apache Kylin 社区贡献个人奖”,热心的天鹏同学修复了很多 Kylin 与 Tableau 集成的问题。社区小伙伴经常会问起『Tableau Generic JDBC可以连Kylin 吗』,终于,天鹏带来了下文为大家揭晓答案。 周天鹏(左三) 喜大普奔~ 喜大普奔~ ...

Kyligence 807

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

greenplum mysql jdbc_Kylin设置JDBC配置greenplum数据源

Kylin设置JDBC配置greenplum数据源kylin最开始的时候支持hive和kafka作为数据源,从2.3.0版本之后开始支持JDBC作为第第三种数据源。用户可以自定义的数据库或者数据仓库到自己的kylin集群。比如,mysql,postgresql,greenplum等。支持原理需要了解到的是,kylin设置完jdbc作为数据源,是通过sqoop来实现的,他并不是摒弃了底层的hive,...

weixin_39997300的博客 344

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

apache配置支持mysql_Apache Kylin | 建立 JDBC 数据源

自 Apache Kylin v2.3.x 起有效支持 JDBC 数据源自 v2.3.0 Apache Kylin 开始支持 JDBC 作为第三种数据源(继 Hive,Kafka)。用户可以直接集成 Kylin 和他们的 SQL 数据库或数据仓库如 MySQL,Microsoft SQL Server 和 HP Vertica。其他相关的数据库也很容易支持。配置 JDBC 数据源准备 SqoopK...

weixin_39598135的博客 459

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Kylin学习笔记02 - Kylin快速入门,集成jdbc

Kylin学习笔记 - Kylin快速入门,集成jdbc 一、快速入门 1、 登录系统 2、创建工程 1)点击图上所示“+”号 2)填入项目名及描述点击Submit 3、 选择数据源 1)选择加载数据源方式 2)输入要作为数据源的表 3)查看数据源 4、创建Model 1)回到Models页面 2)点击New按钮后点击New Model 3)填写Model名称及描述后Next 4)选择事实表 5)添加维度表 6)选择添加的维度表及join字段 7)选择维度信息 8)选择度量信息

SeafyLiang的博客 524

kylin连接Oracle,Apache Kylin | 开发 JDBC 数据源

自 Apache Kylin v2.6.0 起有效Data source SDK自 Apache Kylin v2.6.0 起,我们提供一套新的数据源框架 Data source SDK,使用框架提供的 API,开发者可以很轻松实现一个新的数据源,并且适配 SQL 方言。如何开发实现新数据源的配置Data source SDK 提供转换的机制,框架里预定义一个配置文件 default.xml 对应...

weixin_34537864的博客 641

Apache Kylin 添加MSSQL等第三方数据源(MySQL 亦可)

根据Kylin文档我的环境是在Docker 容器中运行Apache Kylin运行命令:进入kylin的Dashboard。

Franklins_Fan的博客 888

Kylin 支持哪些数据源?如何从 HBase 加载数据?

Apache Kylin 是一个开源的分布式分析引擎,支持多种数据源。目前,Kylin 支持的数据源包括:要从 HBase 加载数据到 Kylin,可以按照以下步骤进行操作:配置 HBase 数据源: 创建 HBase 表模型:定义 HBase 表的映射: 构建 Cube:查询数据:

weixin_45422672的博客 431
上一篇: CentOS7安装Oracle11g R2全过程
下一篇: 解决ubuntu系统root用户下Chrome无法启动问题
Ronney-Hua
博客等级 码龄10年 48粉丝 74原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值