0

流集的新手。按照文档教程,得到

FileNotFound: ... HADOOPFS_14 ... (permission denied)

尝试将目标位置设置为local FS目录并预览管道时出错(基本上是说文件无法访问或不存在),但相关目录的权限是drwxrwxr-x. 2 mapr mapr. 最终通过将目标文件夹权限设置为可公开写入 ( $chmod o+w /path/to/dir) 找到了解决方法。然而,启动sdc服务的用户(当我按照安装说明进行操作时)应该对该目录具有写权限(是root)。

我设置了 sdc用户环境。变量。使用名称“mapr”(我试图访问的目录的所有者),那么为什么我被拒绝了?当我设置环境时,这里发生了什么。瓦尔斯。对于 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 位置的内容)?任何解释或特定文档的链接将不胜感激。谢谢。

4

1 回答 1

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文件编辑为看起来像(注意已将用户和组设置为拥有要在流集管道中使用的目录的用户):

[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 的节点上。

于 2018-01-05T22:29:16.967 回答