新流集。在文档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位置的权限)?任何解释或特定文档的链接将不胜感激。谢谢。
答案 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。