数据编排分级底层架构

简单记录下架构的步骤

架构层次

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
前端页面操作(拖拉拽)
|
|
后端生成SQL
|
|
Persto统一SQL解析

基于内存计算
本身支持多数据源
轻量级

基于内存,边读边清,连查表效率低
算力比较依赖于数据源性能
|
|
Alluxio统一数据编排

冷热分离,存储分级,使用率高的数据在缓存,低的在硬盘
也支持多种数据源,提供统一的API开放

Alluxio所支持的多数据源,指文件系统,像不同集群的HDFS,或者S3
|
|
各种数据源接入


Alluxio更加贴近于HDFS的数据源(Hive,衍生可以支持Iceberg,Hudi),对于MPP不是很友好
Alluxio思考有无替换品

参考:
https://prestodb.io/docs/current/cache/alluxio.html#option1-alluxio-file-system

组成部分

注: 此处前两个步骤不进行过多描述,过程基于Mac实现

Presto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 安装
brew install prestodb
cd /opt/homebrew/Cellar/prestodb/0.250/

# 启动presto服务
./bin/presto-server -start

# 编写catalog配置
cd libexec/etc/catalog
vi mysql.properties
connector.name=mysql
connection-url=jdbc:mysql://mac:3306
connection-user=root
connection-password=123456

# 启动Client(标准SQL)
./bin/presto --server mac:8084 --catalog mysql --schema demo

# 访问监控界面
http://localhost:8084/ui/

Alluxio

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 安装
brew install alluxio
cd /opt/homebrew/Cellar/alluxio/2.4.1

# 验证本地运行环境
./bin/alluxio validateEnv local

# 启动Alluxio
./bin/alluxio format
./bin/alluxio-start.sh local SudoMount

# 访问master状态
http://localhost:19999
# 访问worker状态
http://localhost:30000

# Alluxio Shell(使用方式与HDFS相差不大)
./bin/alluxio fs
./bin/alluxio fs ls /
# 挂载HDFS(原始包支持2.2,2.7,2.8,2.9,3.2)
./bin/alluxio fs mount --option alluxio.underfs.version=3.2 /mnt/hdfs31 hdfs://mac:9000/
./bin/alluxio fs ls -R /

疑问

1
2
3
4
1.Alluxio并没有加速访问数据
怀疑是因为本地部署,直接访问HDFS比Alluxio要快速(没有说服力),访问S3之类的可能会效果明显
2.关于文件的PERSISTED状态以及underFSStorage不是很理解
PERSITED状态并且也是100%加载进Alluxio,但是没有在underFSStorage中获取到文件信息