八旗云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 85|回复: 0

如何随心所欲玩转各种云厂商对象存储

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-11-25 19:52:42 | 显示全部楼层 |阅读模式
背景

现在正在处于公有云,私有云,普通私有化部署交相辉映的阶段,用户可能同时存在多种云,多种部署形态,同时因为数据自身的安全问题,用户存在从各种对象存储(云或者本地部署)获取数据的需求。在早先,用户需要自己打包各种对象存储的 hadoop-sdk 包,然后丢到 Byzer 的插件目录里去,然后手写如下代码:
load FS.`oss://xxxxx/tmp/tables/table1`
where implClass="parquet"
and `fs.oss.impl`="org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem"
and `fs.oss.accessKeyId`="xxxxx"
and `fs.oss.accessKeySecret`="xxxxx"
and `fs.oss.endpoint`="oss-cn-hangzhou.aliyuncs.com"
as output;这里用户需要记忆诸如 impl 等相关参数, 而且无法方便的使用 Byzer 的强化过的数据源。
Byzer 在最新版本(待发布的2.4.0)会让用户更加轻松的访问各种云对象存储。启动时需要在 byzer.properties.overwrite 配置一个新参数:
spark.mlsql.path.schemas=oss,s3a这个配置表示,如果用户直接写的是 oss 或者 s3a 协议的路径,那么不会对这个路径做任何改写(Byzer 支持主目录,默认会对路径做改写)。
使用方式(引入Byzer-objectstore库)

比如我要临时访问阿里云 OSS ,之前也没添加阿里云OSS 相关的依赖。此时用户有两种选择,第一种是通过引入 byzer-objectstore 库, 在 Byzer-notebook 执行如下指令:

-- 引入 Byzer 对象存储支持库
include lib.`github.com/allwefantasy/byzer-objectstore`
where alias="objectstore";

这个库里包含了各种对象存储的访问代码(使用 Byzer-lang 开发)。接着我们需要引入和配置 OSS:
-- objectstore.oss.mod.byze 完成了两个事情:
-- 1. 自动引入依赖的 jar 包
-- 2. 自动设置 fs.oss.impl 等相关配置,用户仅需提供 AK/AKS以及endpoint 必填参数
--    如果没填会报错提示
include local.`objectstore.oss.mod.byzer`
where ossKey="xxxxx"
and ossID="xxxxx"
and ossEndpoint="oss-cn-hangzhou.aliyuncs.com";
现在你可以使用 Byzer 直接访问 oss 的bucket了。
load parquet.`oss://mlsql-release-repo/tmp/tables/table1`
as output;
使用方式 (手动)

其实这种使用方式也很简单。这次我们用访问 Minio 来做展示。分成三步。第一步,安装 S3 插件(Minio 兼容 s3 协议)。
!plugin app add - "byzer-objectstore-s3-3.3";

如果看到红框部分,就说明安装成功了。另外因为商店限速 100k ,所以下载很慢,需要耐心,在 Log message里可以看到下载进度:


第二部就是配置 S3:
load FS.``
where  `fs.s3a.impl`="org.apache.hadoop.fs.s3a.S3AFileSystem"
and `fs.s3a.access.key`="admin"
and `fs.s3a.secret.key`="xxxxx"
and `fs.s3a.endpoint`="http://192.168.3.32:8193"
as output;最后,就可以直接访问了,比如我写入一些数据到 Minio里去:
select 1 as a as table1;
save append table1 as  parquet.`s3a://x1-community/tmp/tables/table1`;
总结

通过前面的例子可以看到,用户可以很方便的随时访问某个对象存储,只需要引入一个第三方 Byzer 库或者自己下载个插件做点配置就可以做到,而无需繁杂的打包,重新部署等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|八旗云

GMT+8, 2025-10-12 15:37 , Processed in 0.117343 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表