我已经使用命令行在CentOS 6.5上安装了带有impala和sentry(CDH 5.2)的集群,并且还设置了openLDAP(不带TLS)。两者都独立运作,没有任何问题。
为了获得为openLDAP配置的Hadoop集群,我已经为所有hadoop服务创建了所需的LDAP组,并在core-site.xml和impala配置文件中创建了所需的条目,列出了LDAP uri等,如上所述文件。
当我使用“impala-shell -l -u test1”为LDAP用户调用impala-shell时,test1是一个有效的openLDAP用户,它会询问我提供的密码。问题是,一旦完成 - 它就会挂起。 impala-shell完全没有响应,impala日志和LDAP日志都没有响应任何活动。我也尝试在端口389(ldap运行的地方)捕获tcpdump,但似乎没有与Impala的通信,因为根本没有交换数据包。相比之下,它在没有“-l”指令的情况下为普通的centOS用户调用时效果很好。下面是impala配置文件:
**IMPALA_CATALOG_SERVICE_HOST=master.server.com
IMPALA_STATE_STORE_HOST=master.server.com
IMPALA_STATE_STORE_PORT=24000
IMPALA_BACKEND_PORT=22000
IMPALA_LOG_DIR=/var/log/impala
IMPALA_CATALOG_ARGS=" -log_dir=${IMPALA_LOG_DIR} - sentry_config=/etc/hive/conf/sentry-site.xml "**
IMPALA_STATE_STORE_ARGS=" -log_dir=${IMPALA_LOG_DIR} -state_store_port=${IMPALA_STATE_STORE_PORT}"
IMPALA_SERVER_ARGS="
-server_name = master.server.com \
-sentry_config=/etc/hive/conf/sentry-site.xml \
-authorization_policy_provider_class = org.apache.sentry.provider.file.LocalGroupResourceAuthorizationProvider \
-authorization_policy_file = /user/hive/warehouse/impala-policy.ini \
-ldap_uri=ldap://slave.server.com:389 \
--enable_ldap_auth=true \
-log_dir=${IMPALA_LOG_DIR} \
-catalog_service_host=${IMPALA_CATALOG_SERVICE_HOST} \
-state_store_port=${IMPALA_STATE_STORE_PORT} \
-use_statestore \
-state_store_host=${IMPALA_STATE_STORE_HOST} \
-be_port=${IMPALA_BACKEND_PORT}"
ENABLE_CORE_DUMPS=false
# LIBHDFS_OPTS=-Djava.library.path=/usr/lib/impala/lib
# MYSQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar
# IMPALA_BIN=/usr/lib/impala/sbin
# IMPALA_HOME=/usr/lib/impala
# HIVE_HOME=/usr/lib/hive
# HBASE_HOME=/usr/lib/hbase
# IMPALA_CONF_DIR=/etc/impala/conf
# HADOOP_CONF_DIR=/etc/impala/conf
# HIVE_CONF_DIR=/etc/impala/conf
# HBASE_CONF_DIR=/etc/impala/conf
如果你经历过这个问题,请帮助我解决这个问题。提前谢谢。
答案 0 :(得分:0)
我找到了根本原因。原因是impala守护程序没有从impala配置文件中获取ldap详细信息(通常在/ etc / default / impala中)。我不知道是什么解决了它,但只是重新安装Impala使它能够根据需要获取详细信息。完成后,接下来的挑战是以Impala期望的方式设置openLDAP组,即,DN应该包含uid而不是cn和rest,使用ldap_listDN参数,前提是已在LDAP日志中注册的完整DN。这是一个非常愚蠢的问题,让我详细了解openLDAP。