我已经使用命令行在 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
如果您遇到过这种情况,请帮我解决这个问题。提前致谢。