简单记录下架构的步骤
架构层次 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中获取到文件信息