SparkDataFrame操作OpenLooKeng

前言

前几天领导让用spark集成openLooKeng,可能熟悉openLooKeng的朋友知道openLooKeng是个基于sql的计算引擎,并非存储数据的软件;那么有人就会问了,既然你spark是计算引擎,openLooKeng也是计算引擎不存数据,那么为什么还要用spark集成openLooKeng;问就是我负责的项目特殊,领导要求先把项目的生态圈丰富起来!

openLooKeng介绍

因为要集成openLooKeng,所以先了解一下openLooKeng是什么,怎么操作

openLooKeng是一个跨数据源、【数据中心】的SQL计算引擎(不存数据),通过连接器对接RDBMS和NOSQL,甚至流数据Kafka,提到计算层(内存),实现统一SQL入口和视图,用于交互式查询分析

官网地址

openLooKeng安装:自动部署地址
因为是自己测试使用,就使用的官网的一键安装命令安装的:

wget -O - https://download.openlookeng.io/install.sh|bash

#默认安装到/opt/路径下

注意:安装后自动就运行openLooKeng了(中间什么操作都没做),但我安装运行时一直卡着下面这个地方(至少十分钟):
在这里插入图片描述
后来实在是等不下去了,看日志才发现是报错了,错误见下图:
在这里插入图片描述
然后百度了这个错误,修改了配置文件:
/opt/openlookeng/hetu-server-1.6.0/etc/catalog/memory.properties

connector.name=memory
memory.max-data-per-node=6GB
memory.spill-path=/opt/openlookeng/memory/spill

官网解释,其实这也不能怪我,毕竟通过自动部署,你直接启动openLooKeng了,我哪有时间修改配置文件,对不对。。

#启动openLooKeng
/opt/openlookeng/bin/start.sh

#通过命令访问openLooKeng
/opt/openlookeng/bin/openlk-cli

通过openlk-cli操作时,需要了解openLooKeng的sql语法:https://openlookeng.io/zh-cn/docs/docs/sql/alter-schema.html

在这里插入图片描述

openLooKeng提供的也有Web页面,访问ip:8090就是openLooKeng的WebUI页面(前提是你没改配置文件中的端口号),账号随便输即可进入

在这里插入图片描述

openLooKeng默认提供了4个数据源,但还是集成自己的数据源测试比较方便(毕竟数据都是自己了解的),这里我集成了mysql和mongodb(如下图),集成方式直接参考openLooKeng官网即可;
在这里插入图片描述
在此页面上,可以直接通过sq操作不同数据源中的数据,包括不同数据源之间数据的关联查询

SparkDataFrame读取openLooKeng

  • pom依赖
<!-- https://mvnrepository.com/artifact/io.hetu.core/hetu-jdbc -->
<dependency>
	<groupId>io.hetu.core</groupId>
	<artifactId>hetu-jdbc</artifactId>
	<version>1.6.0</version>
</dependency>
  • 代码(通过jdbc连接openLooKeng)
val conf = new SparkConf().setAppName("test").setMaster("local[4]")
val spark = SparkSession.builder().config(conf).getOrCreate()

val df = spark.read.format("jdbc")
      .option("url", "jdbc:lk://127.0.0.1:8090/catalog/schema")
      .option("dbtable", "tbname")
      .option("driver", "io.hetu.core.jdbc.OpenLooKengDriver")
      .option("user", "openLooKeng的username")
      .option("password","openLooKeng的password")
      .load()

//注意:这里driver需要注意一下,openLooKeng官网说驱动是自动加载的,不需要写;
//我自己写测试类本地运行时也没写driver属性也可以正常运行
//但可能由于我负责的项目的特殊性,不写driver在yarn上会报错,所以这里还是推荐写上
//openLooKeng官网驱动不需要写的地址:https://openlookeng.io/zh-cn/docs/docs/installation/jdbc.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值