Known Limitations
This section consists of known limitations we are aware of, persisting in this release.
During the ODP upgrade, where Ambari-2.7.8.0 has already been upgraded, the following services will experience downtime. This downtime will interrupt the ODP stack upgrade when using express or rolling upgrade methods.
Affected Services:
After completing the Ambari upgrade, during the rolling or express upgrade, Kafka needs to be up and running in a healthy mode. However, Kafka is in a stopped state due to the following errors:
raise Fail("Configuration parameter '" + self.name + "' was not found in configurations dictionary!")
resource_management.core.exceptions.Fail: Configuration parameter 'kafka-connect-distributed' was not found in configurations dictionary!
These issues occur because Kafka Connect and MirrorMaker were added in this release.
Solution
To start Kafka, add the following configurations in Ambari:
Custom kafka-mirrormaker2-common
Custom kafka-mirrormaker2-destination
Custom kafka-mirrormaker2-source
Custom kafka-connect-distributed
Proceed with restarting the Kafka service. It should start smoothly.
During the cluster upgrade (after Ambari is upgraded to 2.7.8.0 but before the ODP stack is upgraded), the Ranger service will not start due to the following errors:
raise Fail("Configuration parameter '" + self.name + "' was not found in configurations dictionary!")
resource_management.core.exceptions.Fail: Configuration parameter 'admin-logback' was not found in configurations dictionary!
resource_management.core.exceptions.Fail: Configuration parameter 'tagsync-logback' was not found in configurations dictionary!
raise Fail("Configuration parameter '" + self.name + "' was not found in configurations dictionary!")
resource_management.core.exceptions.Fail: Configuration parameter 'usersync-logback' was not found in configurations dictionary!
Solution
Log in to the backend database for Ambari-server.
Execute the following SQL query to identify the required configurations:
SELECT * FROM (
SELECT
cc.config_id,
cc.type_name,
service_name,
sc.version,
sc.note,
(SELECT MAX(version) FROM ambari.serviceconfig s
WHERE s.service_name = sc.service_name) AS max_version
FROM
ambari.serviceconfig sc
INNER JOIN
ambari.serviceconfigmapping scm
ON sc.service_config_id = scm.service_config_id
INNER JOIN
ambari.clusterconfig cc
ON cc.config_id = scm.config_id
WHERE
sc.service_name IN ("RANGER_KMS", "RANGER")
AND sc.version = (SELECT MAX(version) FROM ambari.serviceconfig s
WHERE s.service_name = sc.service_name)
) AS res
WHERE type_name IN ("kms-log4j", "admin-log4j", "tagsync-log4j", "usersync-log4j");
Expected Response:
+-----------+----------------+--------------+---------+----------------------------------------+-------------+
| config_id | type_name | service_name | version | note | max_version |
+-----------+----------------+--------------+---------+----------------------------------------+-------------+
| 232 | kms-log4j | RANGER_KMS | 4 | Enabling Kerberos for added components | 4 |
| 218 | admin-log4j | RANGER | 4 | | 4 |
| 228 | tagsync-log4j | RANGER | 4 | | 4 |
| 229 | usersync-log4j | RANGER | 4 | | 4 |
+-----------+----------------+--------------+---------+----------------------------------------+-------------+
Update the required configurations:
UPDATE ambari.clusterconfig
SET type_name = "admin-logback"
WHERE config_id = 218;
UPDATE ambari.clusterconfig
SET type_name = "tagsync-logback"
WHERE config_id = 228;
UPDATE ambari.clusterconfig
SET type_name = "usersync-logback"
WHERE config_id = 229;
Restart the Ambari-server:
Proceed with the Ranger service restart from the Ambari UI. It should start smoothly.
During the cluster upgrade (after Ambari is upgraded to 2.7.8.0 but before the ODP stack is upgraded), the Ranger-KMS service will not start due to the following error:
raise Fail("Configuration parameter '" + self.name + "' was not found in configurations dictionary!")
resource_management.core.exceptions.Fail: Configuration parameter 'kms-logback' was not found in configurations dictionary!
Actually, kms-log4j is replaced with kms-logback starting from version 3.2.3.x.
Solution
Log in to the backend database for the Ambari server.
In this case, MySQL is the backend database for the Ambari server.
select * from (SELECT
cc.config_id,
cc.type_name,
service_name,
sc.version,
sc.note,
(SELECT MAX(version) FROM ambari.serviceconfig s
WHERE s.service_name = sc.service_name) AS max_version
FROM
ambari.serviceconfig sc
INNER JOIN
ambari.serviceconfigmapping scm
ON
sc.service_config_id = scm.service_config_id
INNER JOIN
ambari.clusterconfig cc
ON
cc.config_id = scm.config_id
WHERE
sc.service_name IN ("RANGER_KMS", "RANGER") and sc.version=(SELECT MAX(version) FROM ambari.serviceconfig s
WHERE s.service_name = sc.service_name)) as res where type_name in ("kms-log4j", "admin-log4j", "tagsync-log4j", "usersync-log4j");
Response:
+-----------+----------------+--------------+---------+----------------------------------------+-------------+
| config_id | type_name | service_name | version | note | max_version |
+-----------+----------------+--------------+---------+----------------------------------------+-------------+
| 232 | kms-log4j | RANGER_KMS | 4 | Enabling Kerberos for added components | 4 |
| 218 | admin-log4j | RANGER | 4 | | 4 |
| 228 | tagsync-log4j | RANGER | 4 | | 4 |
| 229 | usersync-log4j | RANGER | 4 | | 4 |
+-----------+----------------+--------------+---------+----------------------------------------+-------------+
Ranger-Admin Service Required Change
Update kms-log4j to kms-logback:
UPDATE ambari.clusterconfig
SET type_name = "kms-logback"
WHERE config_id = 232;
From the Ambari-Server host, perform the following steps:
Edit the File:
Path: /var/lib/ambari-server/resources/stacks/ODP/3.0/services/RANGER_KMS/package/scripts/kms.py
Locate the following lines:
File(os.path.join(params.kms_conf_dir, "kms-log4j.properties"),
owner=params.kms_user,
group=params.kms_group,
content=InlineTemplate(params.kms_log4j),
mode=0644
)
Comment them out as shown below:
"""
File(os.path.join(params.kms_conf_dir, "kms-log4j.properties"),
owner=params.kms_user,
group=params.kms_group,
content=InlineTemplate(params.kms_log4j),
mode=0644
)
"""
Restart the Ambari-Server:
Proceed with restarting the Ranger-KMS service from the Ambari UI. It should start smoothly.
Log in to the Ambari UI and navigate to RANGER → CONFIGS -> ADVANCED -> Advanced admin-logback, update the following content, and save.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<appender name="xa_log_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<file>{{admin_log_dir}}/ranger-admin-${hostname}-${user}.log</file>
<append>true</append>
<encoder>
<pattern>%date [%thread] %level{5} [%file:%line] %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>{{admin_log_dir}}/ranger-admin-${hostname}-${user}.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<appender name="sql_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<file>{{admin_log_dir}}/ranger_admin_sql.log</file>
<append>true</append>
<encoder>
<pattern>%d [%t] %-5p %C{6} \(%F:%L\) %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>{{admin_log_dir}}/ranger_admin_sql.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<appender name="perf_appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<file>{{admin_log_dir}}/ranger_admin_perf.log</file>
<append>true</append>
<encoder>
<pattern>%d [%t] %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>{{admin_log_dir}}/ranger_admin_perf.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<appender name="patch_logger" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<append>true</append>
<file>{{admin_log_dir}}/ranger_db_patch.log</file>
<encoder>
<pattern>%d [%t] %-5p %C{6} \(%F:%L\) %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>{{admin_log_dir}}/ranger_db_patch.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<logger name="xa" additivity="false" level="info">
<appender-ref ref="xa_log_appender"/>
</logger>
<logger name="jdbc.connection" additivity="false" level="error">
<appender-ref ref="sql_appender"/>
</logger>
<logger name="com.mchange" additivity="false" level="warn" />
<logger name="org.apache.ranger.perf" additivity="false" level="info">
<appender-ref ref="perf_appender"/>
</logger>
<logger name="jdbc.audit" additivity="false" level="error">
<appender-ref ref="sql_appender"/>
</logger>
<logger name="org.apache.ranger.patch" additivity="false" level="info">
<appender-ref ref="patch_logger"/>
</logger>
<logger name="jdbc.resultset" additivity="false" level="error">
<appender-ref ref="sql_appender"/>
</logger>
<logger name="org.springframework" additivity="false" level="warn">
<appender-ref ref="patch_logger"/>
</logger>
<logger name="jdbc.sqltiming" additivity="false" level="warn">
<appender-ref ref="sql_appender"/>
</logger>
<logger name="org.hibernate.SQL" additivity="false" level="warn">
<appender-ref ref="sql_appender"/>
</logger>
<logger name="org.apache.ranger" additivity="false" level="info">
<appender-ref ref="xa_log_appender"/>
</logger>
<logger name="jdbc.sqlonly" additivity="false" level="error">
<appender-ref ref="sql_appender"/>
</logger>
<root level="warn">
<appender-ref ref="xa_log_appender"/>
</root>
</configuration>
On the Ambari UI, navigate to RANGER → CONFIGS -> ADVANCED -> Advanced tagsync-logback, update with the following content, and save.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<file>{{tagsync_log_dir}}/tagsync.log</file>
<encoder>
<pattern>%d{dd MMM yyyy HH:mm:ss} %5p %c{1} [%t] - %L %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>{{tagsync_log_dir}}/tagsync.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="logFile"/>
</root>
</configuration>
On the Ambari UI, navigate to RANGER → CONFIGS -> ADVANCED -> Advanced usersync-logback, update with the following content, and save.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration>
<appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<file>{{usersync_log_dir}}/usersync-${hostname}-${user}.log</file>
<encoder>
<pattern>%d{dd MMM yyyy HH:mm:ss} %5p %c{1} [%t] - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>{{usersync_log_dir}}/usersync-${hostname}-${user}.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<root level="info">
<appender-ref ref="logFile"/>
</root>
</configuration>
Restart the Ranger service from the Ambari UI.
Log in to the Ambari UI and navigate to RANGER → CONFIGS -> ADVANCED -> Advanced admin-logback, update the following content, and save.
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<configuration scan="true">
<appender name="kms-audit" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<Append>true</Append>
<File>${kms.log.dir}/kms-audit-${hostname}-${user}.log</File>
<encoder>
<pattern>%d{ISO8601} %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${kms.log.dir}/kms-audit-${hostname}-${user}.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<appender name="kms-metric" class="ch.qos.logback.core.FileAppender">
<!--See also http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<Append>false</Append>
<File>${kms.log.dir}/ranger_kms_metric_data_for_${metric.type}.log</File>
<encoder>
<pattern>%m%n</pattern>
</encoder>
</appender>
<appender name="kms" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--See http://logback.qos.ch/manual/appenders.html#RollingFileAppender-->
<!--and http://logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy-->
<!--for further documentation-->
<File>${kms.log.dir}/ranger-kms-${hostname}-${user}.log</File>
<Append>true</Append>
<encoder>
<pattern>%d{ISO8601} %-5p [%t] %c{1} \(%F:%L\) - %m%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${kms.log.dir}/ranger-kms-${hostname}-${user}.log.%d{yyyy-MM-dd}</fileNamePattern>
<maxHistory>15</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
</appender>
<logger name="com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator" level="OFF"/>
<logger name="kms-audit" additivity="false" level="INFO">
<appender-ref ref="kms-audit"/>
</logger>
<logger name="org.apache.hadoop" level="INFO"/>
<logger name="org.apache.hadoop.conf" level="INFO"/>
<logger name="org.apache.hadoop.crypto.key.kms.server.KMSMetricUtil" level="INFO">
<appender-ref ref="kms-metric"/>
</logger>
<logger name="org.apache.ranger" level="INFO"/>
<root level="WARN">
<appender-ref ref="kms"/>
</root>
</configuration>
Restart the Ranger KMS service from the Ambari UI.
Ozone service check fails when Ranger is enabled. Workaround: Create a new policy for ambari-qa user to access only ambarismokevolume as an admin.
Ozone mpack supports Secure Ozone only on fresh Ozone installations on Kerberized clusters.
Ozone 1.4.0 limits Ranger Audit due to open bugs related to performance.