无法访问流集管道创建者

时间:2018-01-02 21:21:13

标签: streamsets

新流集。在文档tutorial之后,正在获取

FileNotFound: ... HADOOPFS_14 ... (permission denied)
尝试将目标位置设置为local FS目录并预览管道时出现

错误(基本上说该文件无法访问或不存在)有问题的目录的权限是drwxrwxr-x. 2 mapr mapr。最终通过将目标文件夹权限设置为可公开写入($chmod o+w /path/to/dir)来找到解决方法。然而,启动sdc服务的用户(在我关注安装instructions时)应该对该目录具有写权限(root)。

我设置了sdc user env. vars。使用名称" mapr" (我试图访问的目录的所有者),为什么我被拒绝了?当我设置env时,这里发生了什么。瓦尔。对于sdc(因为它似乎没有做任何事情)?

这是我的/opt/streamsets-datacollector/libexec/sdcd-env.sh文件的代码段:

# user that will run the data collector, it must exist in the system
#
export SDC_USER=mapr

# group of the user that will run the data collector, it must exist in the system
#
export SDC_GROUP=mapr

所以我的问题是,是什么决定了sdc服务的权限(我假设是用于通过流集Web UI访问FS位置的权限)?任何解释或特定文档的链接将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

查看命令ps -ef | grep sdc以检查系统认为sdc进程的所有者确实是谁,发现它被列为:

sdc    36438  36216  2 09:04 ?    00:01:28 /usr/bin/java -classpath /opt/streamsets-datacollector

所以似乎编辑sdcd-env.sh没有任何效果。编辑/usr/lib/systemd/system/sdc.service文件的工作原理是什么(通知已将用户和组设置为拥有要在streamsets管道中使用的目录的用户):

[Unit]
Description=StreamSets Data Collector (SDC)

[Service]
User=mapr
Group=mapr
LimitNOFILE=32768
Environment=SDC_CONF=/etc/sdc
Environment=SDC_HOME=/opt/streamsets-datacollector
Environment=SDC_LOG=/var/log/sdc
Environment=SDC_DATA=/var/lib/sdc
ExecStart=/opt/streamsets-datacollector/bin/streamsets dc -verbose
TimeoutSec=60

然后重新启动sdc服务(使用systemctl start sdc,在centos 7上)显示:

mapr    157013 156955 83 10:38 ?    00:01:08 /usr/bin/java -classpath /opt/streamsets-datacollector...

并且能够在sdc.service文件中设置的用户和组所拥有的本地FS上验证和运行具有源和目标的管道。

*注意:初始帖子中使用的特定目录是通过NFS(mapr 6.0)挂载的hadoop-mapr目录(虽然它们是NFS应该意味着这个解决方案应该通常适用)托管在运行的节点上centos 7。