SlideShare a Scribd company logo
张志宏
百度资深研发工程师
百度数据工厂Pingo核心团队技术负责人
Alluxio在百度数据工厂Pingo
中的应用
CONTENT 目录 A Pingo整体介绍
B Alluxio在Pingo中的应用
C 进一步了解Pingo
PART A P i n g o 整 体 介 绍
P i n g o 整 体 介 绍A
• 基于Spark的数据工厂,增强版
的数据湖
• 能够对异地、异构的非结构化数
据、结构化数据、计算资源进行
统一接入、访问和权限管
• 查询语言SparkSQL,Dataframe
• 提供WebUI、客户端、Rest接口三
种交互方式
• 在百度内部提供离线计算服务,
作为商业产品在百度公有云、
私有云对外提供
P i n g o 整 体 介 绍 – 开 源 方 案A
• 组件繁多、运维复杂
• 对接已有大数据组件困难
• 不止一套Meta甚至版本不一致
• 想“利旧”已部署Yarn
• 联合查询MySQL、对象存储
• 认证、鉴权不易用
• 无法接入公司SSO账号体系
• 权限体系无法覆盖所有组件
• 权限代理?
• 深度需求
• 安全加密,流批一体,行权限、
脱敏,数据治理,Adhoc,……
日志 MySQL
Flume
HDFS
SparkYarn
HiveMeta
Airflow Jupyter
Apache
Ranger
Kerberos
传输
存储
计算
作业
管理
认证鉴权
P i n g o 整 体 介 绍 – 架 构A
• 更方便的融合已有组件
• 从功能集上而非产品组
件上覆盖用户需求
• 全方位的交互接口
• WebUI,命令行,RESTful
接口,JDBC
• 安全
• 4A,数据加密,脱敏
P i n g o 整 体 介 绍 – 基 于 A l l u x i o 的 P FSA
• 基于Alluxio实现
Pingo的文件管理
服务PFS
• 提供各种非结构化
数据的挂载、接入
能力
• 提供统一的权限管
理服务
• 基于PFS可以构建
更复杂的上层功能
PART B
A l l u x i o 在 P i n g o 中
的 应 用
认 证 和 权 限
表权限代理文件权限
基于文件的UDF管理
认 证 和 权 限 - 接 入 P i n g o 认 证B
• 新增AuthType.PINGO
• Alluxio Server端认证
• PingoAuthenticationProvider,
请求PingoUserService进行认证
• 客户端认证
• PingoLoginModule读取Pingo
token
• HDFS FileSystem接口
• alluxio.hadoop.
AbstractFileSystem中读取Pingo
token
认 证 和 权 限 – 传 统 权 限 模 型 限 制B
Traditional Unix permissions
Three permission triads
first triad what the owner can do
second
triad
what the group members can do
third
triad
what other users can do
Each triad
first
character
r: readable
second
character
w: writable
third
character
x: executable
s or t: setuid/setgid or sticky (also
executable)
S or T: setuid/setgid or sticky (not
executable)
POSIX Access Control Lists
$ getfacl --omit-header dir
user::rwxgroup::r-x
mask::rwx
other::---
default:user::rwx
default:group::r-x
Limitation
root
file file10000…
tom: read
jerry: read
alice: read
批量增、删权限困难
认 证 和 权 限 – 可 继 承 的 A C L 权 限B
• 提供READ、WRITE、MANAGE
三种权限类型
• READ、WRITE覆盖原生权限,
MANAGE和原生的owner权限取
并集
• 沿着文件路径向上直到inherit
为false的所有权限的并集
• 默认inherit为true,可以实现
一次授权影响所有子目录
授权记录样例
inherit: true/false
USER: uname_1 READ/WRITE/MANAGE
...
USER: uname_n READ/WRITE/MANAGE
GROUP: gname_1 READ/WRITE/MANAGE
...
GROUP: gname_n READ/WRITE/MANAGE
认 证 和 权 限 – 可 继 承 的 A C L 权 限 样 例B
• amy read /a/b/d forbid
• 由于整条路径没有amy的ACL记录
• sam read /a/b/d permit
• 由于继承了节点b的权限
• tom read /a/b/d forbid
• 由于节点b上关闭了继承
• amy read /a/c
• 由于amy拥有节点c的读权限
PART B
A l l u x i o 在 P i n g o 中
的 应 用
认证和权限
表权限代理文件权限
基于文件的UDF管理
表 权 限 代 理 文 件 权 限 – 现 状B
• 传统数仓MySQL
• frm文件保存表结构信息,ibd文件保存数据文件
• 用户很难绕开MySQL服务直接读取ibd文件
• 以Hive为代表的大数据离线数仓
• 表的元数据信息通过HiveMeta最终存在MySQL里
• 表的物理数据Location指向的是HDFS地址
• 用户既可以通过表读取数据,也可以直接读取HDFS数据
• Hive表权限问题
• 给用户赋予表权限的同时还要给用户赋予HDFS路径权限?
表 权 限 代 理 文 件 权 限 – 实 现B
• jack有表sails_table的
权限,但是没有该表
location的权限
• 建表时可以指定读取
location的账号
• 运行时Meta返回Location
的同时返回鉴权FS使用的
账号、临时token
virtual_tieba_user
jack
<virtual_tieba_user,ttoken>
<sam ,stoken>
virtual_tieba_user
表 权 限 代 理 文 件 权 限 – 收 益B
• 更安全的权限管理
• 表可以作为单独的实体进行授权。对一个用户撤销表的权限后,自然失
去了HDFS文件读取权限
• 支持更深入的存储、计算分离
• 绝大部分的数据使用者永远都不会拥有直接读取HDFS文件的权限
• 支撑更丰富的上层应用
• 方便构建大数据平台(中台),建立表权限审批流程
PART B
A l l u x i o 在 P i n g o 中
的 应 用
认证和权限
表权限代理文件权限
基于文件的UDF管理
基 于 文 件 的 U D F 管 理 – S p a r k U D F 现 状B
• UDF资源文件产品线自行手动管理,
不利于共享
• UDF元数据与资源文件分离,不易使
用
• UDF资源文件升级不透明,易导致兼
容性问题
• UDF使用方法需要额外文档,查询费
力,时效性差
DFS
C reator
U ser
U D F
U D F
基 于 文 件 的 U D F 管 理 – 原 理B
PFS
PFS M aster PFS W orker
U D F
PFS W orker
U D F
PFS W orker
U D F
C reator
U D F.function_nam e.1.jar
DFS
U ser1
• 1,2,3,4为上传过
程。用户把UDF jar文
件上传到PFS。PFS
Worker分析生成UDF
Info并发给Master
• A,B,C,D为使用过程,
在Spark中查询时直
接获取到UDF信息并
在运行时使用
基 于 文 件 的 U D F 管 理 – 对 比B
UDF文件手动管理,
不利于共享
需要注册临时函数,
不易使用
升级不透明,
易导致兼容问题
需要额外使用文档,
容易过时
在PFS中统一管理,
随时查看,随时共享
元数据与资源文件统一,
查询引擎直接调用
支持多版本共存和
指定版本调用
文档置于资源文件内,
与UDF随时保持同步
之前 现在
PART C 进 一 步 了 解 P i n g o
进 一 步 了 解 P i n g oC
• 提供数据安全加密方案,防止数据被拖走
• 可对表配置安全属性,只能用SQL访问安全表
• 安全表的select结果数有限制,并且不可以将查询结果写入非安全表
• 基于SQL的流批一体解决方案,可以用SQL读写流式、普通表
• 扩展Spark SQL语法,新增stream关键字
• 混合云解决方案
• 企业的数据不上云也可以使用百度云的计算资源
• 打通百度公有云生态
• 分布式读写百度开源OLAP数据库Apache Doris
• 扩展Alluxio支持BOS(Baidu Object Storage) UnderFileSystem
THANK YOU
https://cloud.baidu.com/product/pingo.html

More Related Content

Similar to Building Big Data Platform “Pingo” in Baidu Using Alluxio

如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
84zhu
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
acelyc1112009
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110
bngoogle
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)My own sweet home!
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconYiwei Ma
 
KSDG BaaS Intro
KSDG BaaS IntroKSDG BaaS Intro
KSDG BaaS Intro
ericpi Bi
 
Build 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon dataBuild 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon data
boxu42
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
Herman Wu
 
深入浅出 V cloud director
深入浅出 V cloud director深入浅出 V cloud director
深入浅出 V cloud director
ITband
 
4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdf4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdf
ssuserd6c7621
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构drewz lin
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
84zhu
 
七牛云存储详解
七牛云存储详解七牛云存储详解
七牛云存储详解niuer7
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao
terryice
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Day Beijing: Optimizations on Ceph Cache Tiering Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Community
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享
vanadies10
 
用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理
Leo Zhou
 
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04   美团下一代分布式存储系统美团技术沙龙04   美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
美团点评技术团队
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
Sky Jian
 

Similar to Building Big Data Platform “Pingo” in Baidu Using Alluxio (20)

如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱如何,高效利用搜索引擎+构建网络工具箱
如何,高效利用搜索引擎+构建网络工具箱
 
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
The Construction and Practice of Apache Pegasus in Offline and Online Scenari...
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qconTaobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
 
KSDG BaaS Intro
KSDG BaaS IntroKSDG BaaS Intro
KSDG BaaS Intro
 
Build 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon dataBuild 1 trillion warehouse based on carbon data
Build 1 trillion warehouse based on carbon data
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
深入浅出 V cloud director
深入浅出 V cloud director深入浅出 V cloud director
深入浅出 V cloud director
 
4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdf4. Go 工程化实践-0124-v2.pdf
4. Go 工程化实践-0124-v2.pdf
 
大规模网站架构
大规模网站架构大规模网站架构
大规模网站架构
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
七牛云存储详解
七牛云存储详解七牛云存储详解
七牛云存储详解
 
鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao鹰眼下的淘宝_EagleEye with Taobao
鹰眼下的淘宝_EagleEye with Taobao
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Day Beijing: Optimizations on Ceph Cache Tiering Ceph Day Beijing: Optimizations on Ceph Cache Tiering
Ceph Day Beijing: Optimizations on Ceph Cache Tiering
 
淘宝双11双12案例分享
淘宝双11双12案例分享淘宝双11双12案例分享
淘宝双11双12案例分享
 
用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理用Python实现hadoop任务调度管理
用Python实现hadoop任务调度管理
 
美团技术沙龙04 美团下一代分布式存储系统
美团技术沙龙04   美团下一代分布式存储系统美团技术沙龙04   美团下一代分布式存储系统
美团技术沙龙04 美团下一代分布式存储系统
 
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
 

More from Alluxio, Inc.

AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
Alluxio, Inc.
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
Alluxio, Inc.
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
Alluxio, Inc.
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio, Inc.
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio, Inc.
 
Optimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with AlluxioOptimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with Alluxio
Alluxio, Inc.
 
Speed Up Presto at Uber with Alluxio Caching
Speed Up Presto at Uber with Alluxio CachingSpeed Up Presto at Uber with Alluxio Caching
Speed Up Presto at Uber with Alluxio Caching
Alluxio, Inc.
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
Alluxio, Inc.
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Alluxio, Inc.
 
Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...
Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...
Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...
Alluxio, Inc.
 
Alluxio Monthly Webinar | Five Disruptive Trends that Every Data & AI Leader...
Alluxio Monthly Webinar | Five Disruptive Trends that Every  Data & AI Leader...Alluxio Monthly Webinar | Five Disruptive Trends that Every  Data & AI Leader...
Alluxio Monthly Webinar | Five Disruptive Trends that Every Data & AI Leader...
Alluxio, Inc.
 
Data Infra Meetup | FIFO Queues are All You Need for Cache Eviction
Data Infra Meetup | FIFO Queues are All You Need for Cache EvictionData Infra Meetup | FIFO Queues are All You Need for Cache Eviction
Data Infra Meetup | FIFO Queues are All You Need for Cache Eviction
Alluxio, Inc.
 
Data Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio Edge
Data Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio EdgeData Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio Edge
Data Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio Edge
Alluxio, Inc.
 
Data Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the Cloud
Data Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the CloudData Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the Cloud
Data Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the Cloud
Alluxio, Inc.
 
Data Infra Meetup | ByteDance's Native Parquet Reader
Data Infra Meetup | ByteDance's Native Parquet ReaderData Infra Meetup | ByteDance's Native Parquet Reader
Data Infra Meetup | ByteDance's Native Parquet Reader
Alluxio, Inc.
 
Data Infra Meetup | Uber's Data Storage Evolution
Data Infra Meetup | Uber's Data Storage EvolutionData Infra Meetup | Uber's Data Storage Evolution
Data Infra Meetup | Uber's Data Storage Evolution
Alluxio, Inc.
 
Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...
Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...
Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...
Alluxio, Inc.
 
AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...
AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...
AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...
Alluxio, Inc.
 
AI Infra Day | The AI Infra in the Generative AI Era
AI Infra Day | The AI Infra in the Generative AI EraAI Infra Day | The AI Infra in the Generative AI Era
AI Infra Day | The AI Infra in the Generative AI Era
Alluxio, Inc.
 

More from Alluxio, Inc. (20)

AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Optimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with AlluxioOptimizing Data Access for Analytics And AI with Alluxio
Optimizing Data Access for Analytics And AI with Alluxio
 
Speed Up Presto at Uber with Alluxio Caching
Speed Up Presto at Uber with Alluxio CachingSpeed Up Presto at Uber with Alluxio Caching
Speed Up Presto at Uber with Alluxio Caching
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/MLBig Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
Big Data Bellevue Meetup | Enhancing Python Data Loading in the Cloud for AI/ML
 
Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...
Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...
Alluxio Monthly Webinar | Why a Multi-Cloud Strategy Matters for Your AI Plat...
 
Alluxio Monthly Webinar | Five Disruptive Trends that Every Data & AI Leader...
Alluxio Monthly Webinar | Five Disruptive Trends that Every  Data & AI Leader...Alluxio Monthly Webinar | Five Disruptive Trends that Every  Data & AI Leader...
Alluxio Monthly Webinar | Five Disruptive Trends that Every Data & AI Leader...
 
Data Infra Meetup | FIFO Queues are All You Need for Cache Eviction
Data Infra Meetup | FIFO Queues are All You Need for Cache EvictionData Infra Meetup | FIFO Queues are All You Need for Cache Eviction
Data Infra Meetup | FIFO Queues are All You Need for Cache Eviction
 
Data Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio Edge
Data Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio EdgeData Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio Edge
Data Infra Meetup | Accelerate Your Trino/Presto Queries - Gain the Alluxio Edge
 
Data Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the Cloud
Data Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the CloudData Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the Cloud
Data Infra Meetup | Accelerate Distributed PyTorch/Ray Workloads in the Cloud
 
Data Infra Meetup | ByteDance's Native Parquet Reader
Data Infra Meetup | ByteDance's Native Parquet ReaderData Infra Meetup | ByteDance's Native Parquet Reader
Data Infra Meetup | ByteDance's Native Parquet Reader
 
Data Infra Meetup | Uber's Data Storage Evolution
Data Infra Meetup | Uber's Data Storage EvolutionData Infra Meetup | Uber's Data Storage Evolution
Data Infra Meetup | Uber's Data Storage Evolution
 
Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...
Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...
Alluxio Monthly Webinar | Why NFS/NAS on Object Storage May Not Solve Your AI...
 
AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...
AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...
AI Infra Day | Accelerate Your Model Training and Serving with Distributed Ca...
 
AI Infra Day | The AI Infra in the Generative AI Era
AI Infra Day | The AI Infra in the Generative AI EraAI Infra Day | The AI Infra in the Generative AI Era
AI Infra Day | The AI Infra in the Generative AI Era
 

Building Big Data Platform “Pingo” in Baidu Using Alluxio

  • 2. CONTENT 目录 A Pingo整体介绍 B Alluxio在Pingo中的应用 C 进一步了解Pingo
  • 3. PART A P i n g o 整 体 介 绍
  • 4. P i n g o 整 体 介 绍A • 基于Spark的数据工厂,增强版 的数据湖 • 能够对异地、异构的非结构化数 据、结构化数据、计算资源进行 统一接入、访问和权限管 • 查询语言SparkSQL,Dataframe • 提供WebUI、客户端、Rest接口三 种交互方式 • 在百度内部提供离线计算服务, 作为商业产品在百度公有云、 私有云对外提供
  • 5. P i n g o 整 体 介 绍 – 开 源 方 案A • 组件繁多、运维复杂 • 对接已有大数据组件困难 • 不止一套Meta甚至版本不一致 • 想“利旧”已部署Yarn • 联合查询MySQL、对象存储 • 认证、鉴权不易用 • 无法接入公司SSO账号体系 • 权限体系无法覆盖所有组件 • 权限代理? • 深度需求 • 安全加密,流批一体,行权限、 脱敏,数据治理,Adhoc,…… 日志 MySQL Flume HDFS SparkYarn HiveMeta Airflow Jupyter Apache Ranger Kerberos 传输 存储 计算 作业 管理 认证鉴权
  • 6. P i n g o 整 体 介 绍 – 架 构A • 更方便的融合已有组件 • 从功能集上而非产品组 件上覆盖用户需求 • 全方位的交互接口 • WebUI,命令行,RESTful 接口,JDBC • 安全 • 4A,数据加密,脱敏
  • 7. P i n g o 整 体 介 绍 – 基 于 A l l u x i o 的 P FSA • 基于Alluxio实现 Pingo的文件管理 服务PFS • 提供各种非结构化 数据的挂载、接入 能力 • 提供统一的权限管 理服务 • 基于PFS可以构建 更复杂的上层功能
  • 8. PART B A l l u x i o 在 P i n g o 中 的 应 用 认 证 和 权 限 表权限代理文件权限 基于文件的UDF管理
  • 9. 认 证 和 权 限 - 接 入 P i n g o 认 证B • 新增AuthType.PINGO • Alluxio Server端认证 • PingoAuthenticationProvider, 请求PingoUserService进行认证 • 客户端认证 • PingoLoginModule读取Pingo token • HDFS FileSystem接口 • alluxio.hadoop. AbstractFileSystem中读取Pingo token
  • 10. 认 证 和 权 限 – 传 统 权 限 模 型 限 制B Traditional Unix permissions Three permission triads first triad what the owner can do second triad what the group members can do third triad what other users can do Each triad first character r: readable second character w: writable third character x: executable s or t: setuid/setgid or sticky (also executable) S or T: setuid/setgid or sticky (not executable) POSIX Access Control Lists $ getfacl --omit-header dir user::rwxgroup::r-x mask::rwx other::--- default:user::rwx default:group::r-x Limitation root file file10000… tom: read jerry: read alice: read 批量增、删权限困难
  • 11. 认 证 和 权 限 – 可 继 承 的 A C L 权 限B • 提供READ、WRITE、MANAGE 三种权限类型 • READ、WRITE覆盖原生权限, MANAGE和原生的owner权限取 并集 • 沿着文件路径向上直到inherit 为false的所有权限的并集 • 默认inherit为true,可以实现 一次授权影响所有子目录 授权记录样例 inherit: true/false USER: uname_1 READ/WRITE/MANAGE ... USER: uname_n READ/WRITE/MANAGE GROUP: gname_1 READ/WRITE/MANAGE ... GROUP: gname_n READ/WRITE/MANAGE
  • 12. 认 证 和 权 限 – 可 继 承 的 A C L 权 限 样 例B • amy read /a/b/d forbid • 由于整条路径没有amy的ACL记录 • sam read /a/b/d permit • 由于继承了节点b的权限 • tom read /a/b/d forbid • 由于节点b上关闭了继承 • amy read /a/c • 由于amy拥有节点c的读权限
  • 13. PART B A l l u x i o 在 P i n g o 中 的 应 用 认证和权限 表权限代理文件权限 基于文件的UDF管理
  • 14. 表 权 限 代 理 文 件 权 限 – 现 状B • 传统数仓MySQL • frm文件保存表结构信息,ibd文件保存数据文件 • 用户很难绕开MySQL服务直接读取ibd文件 • 以Hive为代表的大数据离线数仓 • 表的元数据信息通过HiveMeta最终存在MySQL里 • 表的物理数据Location指向的是HDFS地址 • 用户既可以通过表读取数据,也可以直接读取HDFS数据 • Hive表权限问题 • 给用户赋予表权限的同时还要给用户赋予HDFS路径权限?
  • 15. 表 权 限 代 理 文 件 权 限 – 实 现B • jack有表sails_table的 权限,但是没有该表 location的权限 • 建表时可以指定读取 location的账号 • 运行时Meta返回Location 的同时返回鉴权FS使用的 账号、临时token virtual_tieba_user jack <virtual_tieba_user,ttoken> <sam ,stoken> virtual_tieba_user
  • 16. 表 权 限 代 理 文 件 权 限 – 收 益B • 更安全的权限管理 • 表可以作为单独的实体进行授权。对一个用户撤销表的权限后,自然失 去了HDFS文件读取权限 • 支持更深入的存储、计算分离 • 绝大部分的数据使用者永远都不会拥有直接读取HDFS文件的权限 • 支撑更丰富的上层应用 • 方便构建大数据平台(中台),建立表权限审批流程
  • 17. PART B A l l u x i o 在 P i n g o 中 的 应 用 认证和权限 表权限代理文件权限 基于文件的UDF管理
  • 18. 基 于 文 件 的 U D F 管 理 – S p a r k U D F 现 状B • UDF资源文件产品线自行手动管理, 不利于共享 • UDF元数据与资源文件分离,不易使 用 • UDF资源文件升级不透明,易导致兼 容性问题 • UDF使用方法需要额外文档,查询费 力,时效性差 DFS C reator U ser U D F U D F
  • 19. 基 于 文 件 的 U D F 管 理 – 原 理B PFS PFS M aster PFS W orker U D F PFS W orker U D F PFS W orker U D F C reator U D F.function_nam e.1.jar DFS U ser1 • 1,2,3,4为上传过 程。用户把UDF jar文 件上传到PFS。PFS Worker分析生成UDF Info并发给Master • A,B,C,D为使用过程, 在Spark中查询时直 接获取到UDF信息并 在运行时使用
  • 20. 基 于 文 件 的 U D F 管 理 – 对 比B UDF文件手动管理, 不利于共享 需要注册临时函数, 不易使用 升级不透明, 易导致兼容问题 需要额外使用文档, 容易过时 在PFS中统一管理, 随时查看,随时共享 元数据与资源文件统一, 查询引擎直接调用 支持多版本共存和 指定版本调用 文档置于资源文件内, 与UDF随时保持同步 之前 现在
  • 21. PART C 进 一 步 了 解 P i n g o
  • 22. 进 一 步 了 解 P i n g oC • 提供数据安全加密方案,防止数据被拖走 • 可对表配置安全属性,只能用SQL访问安全表 • 安全表的select结果数有限制,并且不可以将查询结果写入非安全表 • 基于SQL的流批一体解决方案,可以用SQL读写流式、普通表 • 扩展Spark SQL语法,新增stream关键字 • 混合云解决方案 • 企业的数据不上云也可以使用百度云的计算资源 • 打通百度公有云生态 • 分布式读写百度开源OLAP数据库Apache Doris • 扩展Alluxio支持BOS(Baidu Object Storage) UnderFileSystem