数据仓库搭建_hdfs,ACL权限认证(权限控制)

1、数据仓库搭建

数据仓库搭建

前提条件,Hadoop,hive

数据仓库分层作用
1、控制数据访问权限
2、减少重复计算,减少重复开发
3、为了更好的管理数据
4、让表使用者更方便使用数据

数据规范
1、分词规范,ODS,DWD,DWS,ADS,DIM,每个公司分层的方式是不一样的,
2、命令规范,
库命名规范:每一个层对应hive中一个库,每一层对应hdfs中一个目录
表命名规范,每个定义都是由规则的,一般会使用库名作为前缀
字段命令规范
分区的命令规范
路径的命名规范
3、上调度规范

1.1、开启hdfs的权限认证, 以及ACL认证

在没有开启之前,任何用户都可以随意的删除root用户下的文件,这就可能造成了严重的安全隐患。所以我们在项目中就必须对每一层的文件设置权限

1、普通权限认证只能控制到当前用户,当前用户所属的组,其它用户,不能精确到每一个其它用户

2、ACl可以做到每一个用户权限认证,

rwx r-x r-x
第一部分是当前用户的权限
第二部分是当前用户所在组的权限
第三部分其它用户的权限

Failed to move to trash: hdfs://master:9000/data: Permission denied: user=test, access=WRITE, inode="/":root:supergroup:drwxr-xr
-x

用户test对/这个目录没有权限,需要WRITE

# 修改hdfs-site.xml文件,将权限认证打开

<property>
<name>dfs.permissions</name>
<value>true</value>
</property>

<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>

# 如果是分布式集群需要同步配置文件,同步到所有节点
scp hdfs-site.xml node1:`pwd`

# 重启hadoop
stop-all.sh
start-all.sh

# 增加权限的命令
hadoop dfs -chmod 755 /user
755: 其它用户可以读取,不能修改

# 将hdfstmp的目录权限给所有的用户
hadoop dfs -chmod -R 777 /tmp

hadoop dfs -mkdir -p /data/gender_num
hadoop dfs -chmod 700 /data/gender_num

# acl设置权限
# 可以单独为每一个用户设置权限
hdfs dfs -setfacl -R -m user:test:r-x /nihao.txt
# acl删除权限
hdfs dfs -setfacl -R -x user:test /nihao.txt
# 查看权限
hdfs dfs -getfacl /nihao.txt

hdfs dfs -getfacl /daas/motl/ods

1.2、为每一个层创建一个用户

复制代码

useradd ods
passwd ods

useradd dwd
passwd dwd

useradd dws
passwd dws

useradd dim
passwd dim

useradd ads
passwd ads

复制代码

1.3、为每一个层创建一个hive的库

create database ods;
create database dwd;
create database dws;
create database dim;
create database ads;

1.4、为每一个层在hdfs中创建一个目录

将目录的权限给到层所属的用户

hadoop dfs -mkdir -p /daas/motl/ods
hadoop dfs -mkdir -p /daas/motl/dwd
hadoop dfs -mkdir -p /daas/motl/dws
hadoop dfs -mkdir -p /daas/motl/dim
hadoop dfs -mkdir -p /daas/motl/ads

# 修改权限
hadoop dfs -chown ods:ods /daas/motl/ods
hadoop dfs -chown dwd:dwd /daas/motl/dwd
hadoop dfs -chown dws:dws /daas/motl/dws
hadoop dfs -chown dim:dim /daas/motl/dim
hadoop dfs -chown ads:ads /daas/motl/ads

hadoop dfs -chmod 750 /daas/motl/ods
hadoop dfs -chmod 750 /daas/motl/dwd
hadoop dfs -chmod 750 /daas/motl/dws
hadoop dfs -chmod 750 /daas/motl/dim
hadoop dfs -chmod 750 /daas/motl/ads

# 每个层只有自己可以读写,其它用户没有读写权限,如果其它用户需要使用某一个层的数据,可以开通权限

1.5、解决hive tmp目录权限不够问题

1、修改hive-site.xml文件

删除以下三行配置的value

<name>hive.exec.local.scratchdir</name>
<name>hive.downloaded.resources.dir</name>
<name>hive.querylog.location</name>

2、替换spark中的hive-site.xml文件

cp /usr/local/soft/hive-1.2.1/conf/hive-site.xml /usr/local/soft/spark-2.4.5/conf/

测试


-- 使用ods用户进入hive测试
-- 切换到ods用户进入hive中创建表
-- 使用ods登录服务器
ssh ods@192.168.129.201

-- 进入hive创建表
create table ods.student
(
id  string,
name string,
age int,
gender string,
clazz string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS textfile
location '/daas/motl/ods/student/';

-- 上传数据 需要使用ods用户上传数据
hadoop dfs -put students.txt /daas/motl/ods/student

-- 登录到dwd用户
ssh dwd@192.168.129.201
--  其它用户需要使用这个额表的时候设置权限
-- 需要使用ods这个用户来给dwd这个用户开通权限
-- 开通ods层的权限
hdfs dfs -setfacl -m user:dwd:r-x /daas/motl/ods

hdfs dfs -setfacl -R -m user:dwd:r-x /daas/motl/ods/student/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值