我已经使用命令行在CentOS 6.5上安装了带有黑斑羚和哨兵(CDH 5.2)的集群,并且还设置了openLDAP(不带TLS)。两者都独立运行,没有任何问题。

为了为openLDAP配置Hadoop集群,我已经为所有hadoop服务创建了所需的LDAP组,并在core-site.xml和impala配置文件中进行了所需的条目,列出了文档中提到的LDAP uri等。

当我使用“impala-shell -l -u test1”(其中test1是有效的openLDAP用户)为LDAP用户调用impala-shell时,它将要求输入密码。问题是,一旦完成,它就会挂起。 impala-shell绝对没有任何响应,并且impala日志和LDAP日志都无法响应任何 Activity 。我还尝试在端口389(运行ldap的端口)上捕获tcpdump,但由于没有任何数据包交换,因此似乎与Impala没有通信。相反,对于普通的centOS用户,在不带“-l”指令的情况下调用它时,效果很好。以下是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

如果您遇到过这种情况,请帮助我解决此问题。提前致谢。

最佳答案

我找到了根本原因。原因是impala守护程序未从impala配置文件(通常在/ etc / default / impala中)获取ldap详细信息。我不知道是什么解决了这个问题,但是只是重新安装了Impala即可根据需要选择详细信息。完成此操作后,接下来的挑战就是按照Impala期望的方式设置openLDAP组,即DN应该包含ldap_listDN参数,并提供完整的DN(已在LDAP日志中注册),DN应该包含uid而不是cn和rest。这是一个非常愚蠢的问题,使我详细了解了openLDAP。

关于hadoop - 为LDAP用户调用时,Impala Shell挂起,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31283590/

10-11 20:52