本文详细介绍Hadoop多租户架构实战,包括YARN队列、HDFS配额、Ranger权限、部门/项目划分等内容,适合大数据运维工程师使用。学习交流加群风哥微信: itpux-com
Part01-基础概念与理论知识
1.1 多租户概述
多租户是指多个用户或组织共享同一个集群,但彼此隔离。更多视频教程www.fgedu.net.cn
- 资源共享
- 成本节约
- 统一管理
- 安全隔离
1.2 多租户优势
多租户优势:
1. 成本优势
– 资源利用率高
– 硬件成本低
– 运维成本低
2. 管理优势
– 统一管理
– 统一运维
– 统一安全
3. 数据优势
– 数据共享
– 统一数据仓库
– 避免数据孤岛
1.3 多租户挑战
多租户挑战:
Part02-生产环境规划与建议
2.1 架构规划
架构规划:
1. 租户划分方式
– 按部门划分
– 按项目划分
– 按业务线划分
– 混合划分
2. 资源隔离
– YARN队列
– 节点标签
– cgroup隔离
3. 数据隔离
– HDFS目录权限
– Hive库权限
– 命名空间隔离
4. 安全隔离
– 认证
– 授权
– 审计
2.2 队列规划
队列规划:
- root:根队列
- dept1:部门1队列
- dept2:部门2队列
- default:默认队列
from bigdata视频:www.itpux.com
2.3 配额管理
配额管理:
1. HDFS配额
– 空间配额
– 文件数配额
2. YARN配额
– 队列容量
– 最大容量
– 用户限制
3. Hive配额
– 表配额
– 分区配额
Part03-生产环境项目实施方案
3.1 YARN队列配置
3.1.1 Capacity Scheduler配置
# capacity-scheduler.xml
# 刷新队列
yarn rmadmin -refreshQueues
# 查看队列
yarn queue -status root.dept1
yarn queue -status root.dept2
3.2 HDFS配额配置
3.2.1 HDFS配额配置
# 1. 创建租户目录
hdfs dfs -mkdir /user/dept1
hdfs dfs -mkdir /user/dept2
hdfs dfs -chown dept1:dept1 /user/dept1
hdfs dfs -chown dept2:dept2 /user/dept2
hdfs dfs -chmod 700 /user/dept1
hdfs dfs -chmod 700 /user/dept2
# 2. 设置空间配额
# 1TB空间
hdfs dfsadmin -setSpaceQuota 1099511627776 /user/dept1
hdfs dfsadmin -setSpaceQuota 1099511627776 /user/dept2
# 3. 设置文件数配额
# 100万个文件
hdfs dfsadmin -setQuota 1000000 /user/dept1
hdfs dfsadmin -setQuota 1000000 /user/dept2
# 4. 查看配额
hdfs dfs -count -q /user/dept1
hdfs dfs -count -q /user/dept2
# 5. 清除配额
hdfs dfsadmin -clrSpaceQuota /user/dept1
hdfs dfsadmin -clrQuota /user/dept1
3.3 Ranger权限配置
3.3.1 Ranger权限配置
# 1. HDFS权限
# 创建HDFS策略
# Policy Name: dept1-hdfs
# Resource Path: /user/dept1
# User: dept1_user
# Permissions: Read, Write, Execute
# 2. Hive权限
# 创建Hive策略
# Policy Name: dept1-hive
# Database: dept1_db
# Table: *
# User: dept1_user
# Permissions: Select, Create, Drop
# 3. YARN权限
# 创建YARN策略
# Policy Name: dept1-yarn
# Queue: root.dept1
# User: dept1_user
# Permissions: Submit-App, Admin-Queue
# 4. 验证权限
# 使用dept1_user测试
kinit dept1_user@FGEDU.NET.CN
hdfs dfs -put test.txt /user/dept1/
hive -e “use dept1_db; create table test(id int);”
yarn jar /bigdata/app/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi -Dmapreduce.job.queuename=root.dept1 2 10
Part04-生产案例与实战讲解
4.1 按部门划分
4.1.1 实战案例
# 1. 部门规划
– dept1:数据部,40%资源
– dept2:业务部,40%资源
– default:其他,20%资源
# 2. YARN队列配置
# 见上一节
# 3. HDFS目录
hdfs dfs -mkdir /user/dept1
hdfs dfs -mkdir /user/dept2
hdfs dfs -chown dept1:dept1 /user/dept1
hdfs dfs -chown dept2:dept2 /user/dept2
# 4. Hive数据库
hive -e “create database dept1_db location ‘/user/dept1/hive/warehouse’;”
hive -e “create database dept2_db location ‘/user/dept2/hive/warehouse’;”
# 5. Ranger配置
# 配置各部门权限
4.2 按项目划分
4.2.1 实战案例
# 1. 项目规划
– projectA:项目A,30%资源
– projectB:项目B,30%资源
– projectC:项目C,30%资源
– default:其他,10%资源
# 2. YARN队列
yarn.scheduler.capacity.root.queues=projectA,projectB,projectC,default
yarn.scheduler.capacity.root.projectA.capacity=30
yarn.scheduler.capacity.root.projectB.capacity=30
yarn.scheduler.capacity.root.projectC.capacity=30
yarn.scheduler.capacity.root.default.capacity=10
# 3. 项目目录
hdfs dfs -mkdir /project/projectA
hdfs dfs -mkdir /project/projectB
hdfs dfs -mkdir /project/projectC
# 4. 项目配额
hdfs dfsadmin -setSpaceQuota 549755813888 /project/projectA
hdfs dfsadmin -setSpaceQuota 549755813888 /project/projectB
hdfs dfsadmin -setSpaceQuota 549755813888 /project/projectC
4.3 监控与计量
4.3.1 实战案例
# 1. 资源使用监控
# YARN队列资源
yarn queue -status root.dept1
# Prometheus监控
# yarn_queue_used_memory
# yarn_queue_used_vcores
# 2. HDFS使用监控
hdfs dfs -count -q /user/dept1
hdfs dfs -du -s /user/dept1
# 3. 应用统计
yarn application -list -appStates ALL
# 统计各租户应用数
# 统计各租户资源使用
# 4. 计费
# 按CPU使用计费
# 按内存使用计费
# 按存储使用计费
Part05-风哥经验总结与分享
5.1 最佳实践
最佳实践:
- 合理划分:按业务合理划分租户
- 资源隔离:YARN队列资源隔离
- 配额管理:HDFS配额限制空间
- 权限控制:Ranger控制权限
- 监控计量:监控各租户资源使用
5.2 常见坑点
1. 资源争抢
– 现象:一个租户占满资源
– 原因:队列配置不合理
– 避坑:配置maximum-capacity
2. 数据泄露
– 现象:跨租户访问数据
– 原因:权限配置不严
– 避坑:严格配置Ranger
3. 配额超用
– 现象:租户数据暴增
– 原因:没设置配额
– 避坑:设置HDFS配额
4. 无法扩容
– 现象:租户需要更多资源
– 原因:队列配置太死
– 避坑:配置弹性队列
5.3 检查清单
## 配置检查
– [ ] YARN队列配置
– [ ] HDFS配额配置
– [ ] Ranger权限配置
– [ ] 目录权限配置
– [ ] 监控配置
## 功能检查
– [ ] 资源隔离正常
– [ ] 权限控制正常
– [ ] 配额限制正常
– [ ] 监控数据正常
– [ ] 租户使用正常
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
