Understanding --go-live
and HDFS ACLs
When run with a reduce phase, as opposed to as a mapper-only job, the
indexer creates an offline index on HDFS in the output directory specified
by the --output-dir
parameter. If the
--go-live
parameter is specified, Solr merges the
resulting offline index into the live running service. Thus, the Solr
service must have read access to the contents of the output directory in
order to complete the --go-live
step. If
--overwrite-output-dir
is specified, the indexer
deletes and recreates any existing output directory; in an environment
with restrictive permissions, such as one with an HDFS umask of 077, the
Solr user may not be able to read the contents of the newly created
directory. To address this issue, the indexer automatically applies the
HDFS ACLs to enable Solr to read the output directory contents. These ACLs
are only applied if HDFS ACLs are enabled on the HDFS NameNode.
The indexer only makes ACL updates to the output directory and its
contents. If the output directory's parent directories do not include
the execute
permission, the Solr service cannot access
the output directory. Solr must have execute
permissions from standard permissions or ACLs on the parent directories
of the output directory.