Не удается получить доступ к непубличным каталогам на локальной FS в создателе конвейера потоковых наборов

Новое в streamsets. После учебника документации, получал

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

ошибка при попытке установить место назначения как local FS каталог и предварительный просмотр конвейера (в основном говоря, либо файл не доступен или не существует), но разрешения для рассматриваемого каталога drwxrwxr-x. 2 mapr mapr, В конце концов нашел обходной путь, установив разрешения для папки назначения на общедоступную запись ($chmod o+w /path/to/dir). Тем не менее, пользователь, который начал sdc служба (пока я следовал инструкциям по установке) должна была иметь права на запись в этот каталог (была root).

Я установил SDK пользователя Env. перемен. использовать имя "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 сервис (который, как я полагаю, используется для доступа к местоположениям FS через веб-интерфейс streamsets)? Любые объяснения или ссылки на конкретные документы будут оценены. Благодарю.

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на сентос 7) показал:

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

и был в состоянии проверить и запустить конвейеры с источниками и назначениями на локальной FS, которые принадлежат пользователю и группе, установленным в sdc.service файл.

* ПРИМЕЧАНИЕ: конкретные каталоги, использованные в первоначальном посте, - это каталоги hadoop-mapr, смонтированные через NFS (mapr 6.0) (хотя тот факт, что они являются NFS, означает, что это решение должно применяться в целом), размещенный на узлах, работающих под управлением Centos 7.

Другие вопросы по тегам