1. 首页 > Hadoop教程 > 正文

大数据教程FG188-Hadoop多租户架构实战

本文详细介绍Hadoop多租户架构实战,包括YARN队列、HDFS配额、Ranger权限、部门/项目划分等内容,适合大数据运维工程师使用。学习交流加群风哥微信: itpux-com

Part01-基础概念与理论知识

1.1 多租户概述

多租户是指多个用户或组织共享同一个集群,但彼此隔离。更多视频教程www.fgedu.net.cn

多租户目标:

  • 资源共享
  • 成本节约
  • 统一管理
  • 安全隔离

1.2 多租户优势

多租户优势:

# 多租户优势
1. 成本优势
– 资源利用率高
– 硬件成本低
– 运维成本低

2. 管理优势
– 统一管理
– 统一运维
– 统一安全

3. 数据优势
– 数据共享
– 统一数据仓库
– 避免数据孤岛

1.3 多租户挑战

多租户挑战:

风哥提示:多租户挑战包括资源隔离、性能隔离、安全隔离、计费计量等。更多学习教程公众号风哥教程itpux_com

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配置

# YARN队列配置
# capacity-scheduler.xml
yarn.scheduler.capacity.root.queues
dept1,dept2,default
yarn.scheduler.capacity.root.dept1.capacity
40
yarn.scheduler.capacity.root.dept1.maximum-capacity
60
yarn.scheduler.capacity.root.dept1.user-limit-factor
2
yarn.scheduler.capacity.root.dept2.capacity
40
yarn.scheduler.capacity.root.dept2.maximum-capacity
60
yarn.scheduler.capacity.root.dept2.user-limit-factor
2
yarn.scheduler.capacity.root.default.capacity
20
yarn.scheduler.capacity.root.default.maximum-capacity
30

# 刷新队列
yarn rmadmin -refreshQueues

# 查看队列
yarn queue -status root.dept1
yarn queue -status root.dept2

3.2 HDFS配额配置

3.2.1 HDFS配额配置

# 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权限配置

# 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

风哥提示:多租户架构要做好资源隔离、权限隔离、数据隔离。YARN队列 + HDFS配额 + Ranger权限是常用组合。学习交流加群风哥QQ113257174

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使用计费
# 按内存使用计费
# 按存储使用计费

生产环境建议:多租户要做好资源隔离和监控。避免一个租户占用过多资源影响其他租户。定期查看各租户资源使用情况。更多视频教程www.fgedu.net.cn

Part05-风哥经验总结与分享

5.1 最佳实践

最佳实践:

  • 合理划分:按业务合理划分租户
  • 资源隔离:YARN队列资源隔离
  • 配额管理:HDFS配额限制空间
  • 权限控制:Ranger控制权限
  • 监控计量:监控各租户资源使用

5.2 常见坑点

# 常见坑点
1. 资源争抢
– 现象:一个租户占满资源
– 原因:队列配置不合理
– 避坑:配置maximum-capacity

2. 数据泄露
– 现象:跨租户访问数据
– 原因:权限配置不严
– 避坑:严格配置Ranger

3. 配额超用
– 现象:租户数据暴增
– 原因:没设置配额
– 避坑:设置HDFS配额

4. 无法扩容
– 现象:租户需要更多资源
– 原因:队列配置太死
– 避坑:配置弹性队列

5.3 检查清单

# 检查清单
## 配置检查
– [ ] YARN队列配置
– [ ] HDFS配额配置
– [ ] Ranger权限配置
– [ ] 目录权限配置
– [ ] 监控配置

## 功能检查
– [ ] 资源隔离正常
– [ ] 权限控制正常
– [ ] 配额限制正常
– [ ] 监控数据正常
– [ ] 租户使用正常

风哥提示:多租户架构是把双刃剑。资源共享提高了利用率,但也增加了管理复杂度。要做好隔离、监控、计量,才能用好多租户。学习交流加群风哥微信: itpux-com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息