HDFS支持权限控制,但支持较弱。HDFS的设计是基于POSIX模型的,支持按用户、用户组、其他用户的读写执行控制权限。在linux命令行下,可以使用下面的命令修改文件的权限、文件所有者,文件所属组:
hadoop fs –chmod (修改文件所有者,文件所属组,其他用户的读、写、执行权限)
haddop fs –chown (修改文件所有者)
hadoop fs –chgrp (修改文件所属组)
不同用户使用不同的linux帐户即可访问到特定文件。
启动hadoop hdfs系统的用户即为超级用户,可以进行任意的操作。
需要注意的是:HDFS本身没有提供用户名、用户组的创建,在客户端调用hadoop 的文件操作命令时,hadoop 识别出执行命令所在进程的用户名和用户组,然后使用这个用户名和组来检查文件权限。
用户名=linux命令中的`whoami`,而组名等于`bash -c groups `。
根据上述原理来看hdfs的文件系统权限管理较弱。如果用户知道hdfs name node 地址和端口号,在安装hdfs客户端后,使用和name node 相同的用户名,即可获取到所有文件的访问权限。
另外,hdfs有一个web 访问方式。可以通过修改参数,来修改webserver启动的用户名和组(配置参数:dfs.web.ugi)。这样通过web方式就只能访问dfs.web.ugi对应用户和组可以访问的文件。
如果要限制hdfs的web访问,可以考虑为webserver增加一个过滤器. 目前0.23.0通过代码增加一个patch来实现该功能,但0.20.2根据参考文献1描述不支持Kerberos认证。
许多公司对hadoop进行了重新封装,增加了自己的功能。有些公司增加了安全授权这块的模块。下面介绍两种:
第一种:Yahoo! Distribution of Hadoop
hadoop是由yahoo引导开发并贡献到开源社区的。yahoo对hadoop进行了封装,并在http://yahoo.github.com/hadoop-common/ 上以开源的形式对外发布。Hadoop Distribution of Hadoop with security 0.20.104.2 增加了安全的支持,集成了Kerberos 开源授权标准。访问参考文献[3]获取更多关于0.20.104.2版本增加功能的信息
第二种:Cludera's hue (http://cloudera.github.com/hue/)
其依赖于Cloudera's Distribution including Apache Hadoop (CDH)。CDH是一个hadoop工程和子工程的集合。CDH 安装比hadoop的安装简单。linux下输入yum就能安装。访问https://ccp.cloudera.com/display/DOC/Documentation 了解关于CDH更多的信息。CDH也有权限控制和管理的工具。具体这个东西我还没有安装过。
参考文献:
[1] http://hadoop.apache.org/common/docs/r0.20.2/hdfs_permissions_guide.html
[2] https://issues.apache.org/jira/browse/HADOOP-7119
[3] http://yahoo.github.com/hadoop-common/
[4] http://yahoo.github.com/hadoop-common/releases/0.20.104.2/
[5] http://cloudera.github.com/hue/
分享到:
相关推荐
6. **安全性和权限管理**:HDFS支持多种安全机制,如Kerberos认证。在生产环境中,必须考虑这些安全性设置,以保护数据的安全。 通过以上步骤,你可以成功地将Java、Spring和Hadoop HDFS整合在一起,构建出能够高效...
基于Hadoop HDFS的分布式文件系统操作工具 项目简介 本项目是一个基于Hadoop HDFS(Hadoop Distributed File System)的分布式文件... 支持获取HDFS文件的详细信息,如读写权限、大小、创建时间等。 4. 用户交互
### Hadoop HDFS Shell 命令详解 #### 概述 Hadoop HDFS Shell 是一组用于与Hadoop分布式文件系统 (HDFS) 进行交互的命令行工具。通过这些命令,用户能够执行诸如创建、删除、移动文件以及设置文件权限等操作。本文...
同时,可以通过配置用户认证(如PAM或Hadoop的SimpleAuthentication)来控制对HDFS的访问。 3. **目录映射**:FTP服务器可以配置为映射HDFS路径到特定的FTP目录,这使得用户可以通过简单的FTP路径访问HDFS上的文件...
在 HDFS 中,超级用户是拥有最高权限的用户,可以访问和操作 HDFS 中的所有文件和目录。HDFS 超级用户的配置项是 dfs.permissions.superusergroup,用于指定超级用户的组名。在上面的配置文件中,超级用户的组名被...
### Hadoop HDFS 增删改操作及配置详解 Hadoop 分布式文件系统 (HDFS) 是 Hadoop 的核心组件之一,主要用于存储大量数据并支持这些数据的大规模处理。本文将根据提供的文档信息,深入探讨 HDFS 中涉及的增、删、改...
Hadoop HDFS 最佳实践攻略 HDFS(Hadoop Distribute File System)是一个分布式文件系统,是 Hadoop 的重要成员。它解决了传统文件系统的问题,如单机负载可能极高、数据不安全、文件整理困难等。HDFS 的解决思路是...
综上所述,Hadoop HDFS应用的知识点涵盖了HDFS的分布式文件系统概念、支持的多种文件系统类型及URI模式、权限及用户体系、命令行操作接口以及JAVA编程接口等。掌握这些知识点对于实现高效的大数据处理和分析具有重要...
在本文档中,我们首先了解了如何通过Hadoop 2.7.1实现HDFS与FTP的结合使用,称为hdfs-over-ftp。为了实现这一功能,我们需要经过几个步骤来配置和启动一个支持Hadoop文件系统的FTP服务器。 首先,文档提到了安装和...
在动手实验“Oracle HDFS直接连接器”中,我们将会了解如何实现Oracle数据库与Apache Hadoop HDFS(Hadoop分布式文件系统)之间的直接连接,从而能够直接访问存储在HDFS中的数据文件。该实验的软件环境主要由Oracle ...
在JavaWeb开发中,将Hadoop 2.6的HDFS(Hadoop Distributed File System)集成进项目,可以实现高效的数据存储和访问。...在实践中,你还需要考虑性能优化、权限控制、安全问题等因素,以确保应用的稳定性和安全性。
在Hadoop分布式文件系统(HDFS)中,文件的写入过程是一个复杂而高效的设计,旨在确保数据的可靠性和高可用性。以下是HDFS写入文件的详细原理: 1. **客户端初始化写入**: 当一个客户端想要将文件写入HDFS时,它...
为了提高NameNode的可靠性和性能,Hadoop引入了Secondary NameNode的概念。它并不直接参与HDFS的日常读写操作,而是定期与主NameNode通信,帮助主NameNode进行元数据的持久化和检查点操作。 - **第一阶段:NameNode...
此属性表示是否启用HDFS的权限控制。当设置为true时,HDFS会对访问文件系统的用户和组进行检查,以保证只有具有适当权限的用户能够读取或修改数据。 12. dfs.cluster.administrators 此属性定义了集群管理员的组名...
这个问题通常涉及到Hadoop的权限模型、HDFS(Hadoop Distributed File System)的访问控制以及用户身份验证。 Hadoop的权限模型基于Unix式的ACL(Access Control List),它包括用户、组和其他用户的读(read)、写...
### Hadoop存储系统HDFS的文件分块存储 #### HDFS文件分块机制 Hadoop分布式文件系统(HDFS)是一种专为存储大型文件而设计的文件系统,它能够高效地处理海量数据。HDFS的基本设计理念之一就是将文件分割成多个块...