Ubuntu Hadoop 资源共享设置
一、常见共享方式与适用场景
- HDFS 内部共享目录:在 HDFS 上创建公共目录,设置合适的权限与所属组,供多用户/多应用读写。适合大多数业务数据共享与协同处理。
- NFS 网关共享:启用 HDFS NFS Gateway,把 HDFS 以 NFS v3 形式挂载到 Ubuntu 本地或局域网主机,传统应用无需改造即可访问 HDFS。
- Samba 共享:将 HDFS FUSE 挂载点(或任意目录)通过 Samba 暴露给 Windows 客户端,形成网络盘映射。适合跨平台文件共享。
- VMware 主机-虚拟机共享文件夹:在 VMware 中开启共享文件夹,虚拟机内于 /mnt/hgfs 访问,用于主机与虚拟机之间的便捷文件交互(偏开发与调试)。
二、HDFS 内部共享目录(最常用)
- 创建共享目录并设置权限(示例共享目录为 /shared):
- 创建目录:hdfs dfs -mkdir -p /shared
- 放宽权限(测试环境可用):hdfs dfs -chmod 777 /shared
- 生产建议:创建业务组(如 hadoop),将用户加入该组,按组授权(示例:hdfs dfs -chown :hadoop /shared;hdfs dfs -chmod 775 /shared)
- 多用户与权限要点:
- 若遇到权限拒绝,可先在测试环境临时关闭权限检查:在 hdfs-site.xml 设置 dfs.permissions=false(生产环境不建议长期关闭)。
- 远程/多用户提交作业时,HDFS 以本地系统用户身份鉴权,需确保提交用户在集群各节点存在并加入相应组(如 supergroup),必要时调整目录属组与权限,避免 AccessControlException。
三、NFS 网关共享(HDFS 作为 NFS 挂载)
- 服务端(Ubuntu 上运行 Hadoop 的节点)配置步骤:
- 安装 NFS 服务:sudo apt-get install nfs-kernel-server
- 编辑 /etc/exports,导出挂载点(示例为 /mnt/hdfs):/mnt/hdfs *(rw,sync,no_root_squash,no_subtree_check)
- 在 Hadoop 配置中开启 NFS 相关项(示例以用户 root 代理为例,生产请使用专用服务账号):
- core-site.xml:
- hadoop.proxyuser.root.groups*
- hadoop.proxyuser.root.hostslocalhost
- hdfs-site.xml(按需调整读写缓冲):
- nfs.rtmax1048576
- nfs.wtmax65536
- nfs.exports.allowed.hosts* rw
- 启动服务与网关:
- 重启 RPC 与 NFS:sudo /etc/init.d/rpcbind restart;sudo /etc/init.d/nfs-kernel-server restart
- 启动 Hadoop NFS 相关进程:sudo hdfs portmap &;sudo -u hdfs hdfs nfs3 &
- 验证:showmount -e $(hostname)
- 客户端挂载(示例):sudo mount -t nfs -o vers=3,proto=tcp,nolock $(hostname):/ /mnt/hdfs
- 使用提示:
- 建议通过 代理用户与 访问控制限制可挂载主机与可访问组,避免用 root 直接暴露;NFS v3 为无状态协议,挂载选项需与服务端 rtmax/wtmax 匹配以获得更好性能。
四、Samba 共享(让 Windows 访问 HDFS/FUSE 挂载点)
- 适用场景:已用 HDFS FUSE 将 HDFS 挂载到本地目录(如 /mnt/hdfs),再通过 Samba 将该目录共享给 Windows 网络映射盘。
- 快速配置步骤:
- 安装 Samba:sudo apt-get install samba
- 备份并编辑 /etc/samba/smb.conf,在末尾添加共享段(示例共享名为 Share,路径为 /mnt/hdfs):
- [Share]
- path = /mnt/hdfs
- public = yes
- writable = yes
- valid users = your_smb_user
- create mask = 0700
- directory mask = 0700
- 添加 Samba 用户:sudo smbpasswd -a your_smb_user
- 校验与重启:testparm;sudo service smbd restart
- Windows 访问:在资源管理器输入 \<Ubuntu_IP>\Share,使用上一步创建的用户登录即可映射为网络盘。
五、VMware 主机与虚拟机共享文件夹(开发与调试)
- 在 VMware Workstation/Player 中:虚拟机设置 → 选项 → 共享文件夹 → 选择“总是启用”,添加主机目录(如 D:\share),在虚拟机内访问 /mnt/hgfs/share。
- 典型用途:主机与虚拟机之间快速拷贝安装包、配置文件、数据集;也可配合脚本在虚拟机内将共享目录内容批量导入 HDFS(如 hdfs dfs -put /mnt/hgfs/share/data /input)。