0

我已经使用命令行在 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 的通信,因为根本没有交换数据包。相反,对于普通 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

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

4

1 回答 1

0

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

于 2015-07-09T20:44:43.147 回答