Known Issues in Spark
Learn about the known issues in Spark, the impact or changes to the functionality, and the workaround.
- CDPD-60862: Rolling restart fails during ZDU when DDL operations are in progress
-
During a Zero Downtime Upgrade (ZDU), the rolling restart of services that support Data Definition Language (DDL) statements might fail if DDL operations are in progress during the upgrade. As a result, ensure that you do not run DDL statements during ZDU.
The following services support DDL statements:- Impala
- Hive – using HiveQL
- Spark – using SparkSQL
- HBase
- Phoenix
- Kafka
Data Manipulation Lanaguage (DML) statements are not impacted and can be used during ZDU. Following the successful upgrade, you can resume running DDL statements.
- INSIGHT-10232: Spark 3.5 jobs fail with
Can't get Kerberos realmon JDK 17 Kerberos clusters - On CDP Private Cloud Base 7.1.9 with CDS 3.5 Powered by Apache Spark and JDK 17, Spark 3 jobs can fail immediately at submission on Kerberos-secured clusters, including after upgrading from RHEL 7 to RHEL 8 and from Java 8 to JDK 17. Jobs running on YARN in client mode terminate with an error similar to the following:
Exception in thread "main" java.lang.IllegalArgumentException: Can't get Kerberos realm Caused by: java.lang.IllegalAccessException: ... org.apache.hadoop.security.authentication.util.KerberosUtil cannot access class sun.security.krb5.ConfigThe root cause is a JDK 17 module restriction: the
java.security.jgssmodule does not exportsun.security.krb5to the unnamed module, so Hadoop cannot initialize Kerberos. Apache Spark addressed this in SPARK-37345 (Spark 3.3 and later), but the Cloudera CDS 3.5 parcel build on 7.1.9 does not include that fix. - INSIGHT-8106: Spark 3 returns zero rows when reading some Hive external Parquet tables
- On CDP Private Cloud Base 7.1.9 with CDS Powered by Apache Spark 3.x, queries against Hive external Parquet tables through
spark3-shellcan return zero rows even though the same query inspark-shell(Spark 2) returns the expected results. For example,spark.sql("SELECT COUNT(1) FROM db.table_name").show()can report a count of 0 in Spark 3 while Spark 2 reports the correct row count.This behavior often affects tables whose data files are stored in nested subdirectories under the table location rather than at the table root. A common cause is a Hive CTAS (create table as select) statement where one or more source tables used
UNION ALL. Hive stores the output in subdirectories such as HIVE_UNION_SUBDIR_1, HIVE_UNION_SUBDIR_2, and so on. Spark 3 does not recursively list Parquet files under the table location by default, so it finds no data files and treats the table as empty. - INSIGHT-8865: Spark 3 cluster-mode submit fails after JDK 17 upgrade due to Java module access restrictions
- After upgrading to JDK 17, Spark 3 jobs submitted in cluster mode with
spark3-submitcan fail withjava.lang.IllegalAccessError. Stricter Java Platform Module System (JPMS) rules block Hadoop libraries from accessing internal JNDI/LDAP packages (for examplecom.sun.jndi.ldap) unless you explicitly export or open the required modules. - INSIGHT-8092: Spark 3 submit fails with Could not create delegation token for Atlas client when Kerberos and Spark Lineage are enabled
- On CDP Private Cloud Base 7.1.9 with Kerberos and Atlas configured,
spark3-submitcan fail during YARN application submission when Spark Lineage (spark.lineage.enabled) is enabled, which is the default after installing the CDS Spark 3 parcel. The client exits with an error similar to the following:Exception in thread "main" java.lang.RuntimeException: Could not create delegation token for Atlas client (see Caused by) ... Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user.The Spark Atlas Connector obtains Atlas delegation tokens during client submission. When Spark Lineage is enabled on a Kerberos-secured cluster, that step requires Kerberos credentials on the submit path. A prior
kinitin the shell might not be sufficient for this client-side token acquisition. - CDPD-94393:
RuntimeWarningFailed to add file" message appears even when Spark successfully loads files - In both Spark 2 and 3, due to an exception when attempting to add files to the Python path, the
RuntimeWarning: Failed to add filemessage appears even when the Python JAR file is successfully loaded. - CDPD-67517: Spark3 tests are failing if /tmp is mounted as noexec.
- Map the tmpdir to a writable path in
spark3-conf/spark-defaults.conf using the following steps:
- Go to the Cloudera Manager.
- Go to the Spark service.
- Click the Configuration tab.
- Select .
- Select .
- Locate the Spark Client Advanced Configuration Snippet (Safety Valve) for spark3-conf/spark-defaults.conf_client_config_safety_valve property.
- Map the tmpdir to a writable path:
spark.driver.extraJavaOptions=-Djava.io.tmpdir=/var/tmp spark.executor.extraJavaOptions=-Djava.io.tmpdir=/var/tmp - Enter a Reason for change, and then click Save Changes to commit the changes.
- Deploy the client configuration.
- CDPD-23817: In the upgraded Cluster, the permission of /tmp/spark is restricted due to the HDP configuration hive.exec.scratchdir=/tmp/spark.
- If you are using the /tmp/spark directory in the CDP cluster, you must provide the required additional Policies/ACL permissions.
- CDPD-22670 and CDPD-23103: There are two configurations in Spark, "Atlas dependency" and "spark_lineage_enabled", which are conflicted. The issue is when Atlas dependency is turned off but spark_lineage_enabled is turned on.
- Run Spark application, Spark will log some error message and cannot continue. That can be restored by correcting the configurations and restarting Spark component with distributing client configurations.
- CDPD-23007: Mismatch in the Spark Default DB Location. In HDP 3.1.5, hive_db entities have one attribute - 'location' which is configured to the '/managed' path. In fresh install of CDP 7.1.7, hive_db entities now have 2 attributes 'location' configured to '/external' path and 'managedLocation' configured to '/managed' path. In. the AM2CM migration (HDP 3.1.5 -> CDP 7.1.7), the 'location' attribute from hive_db entities in HDP 3.1.5 comes unaltered to CDP 7.1.7 and hence maps to '/managed' path.
- This issue arises only if you are upgrading from HDP 3.1.5 to CDP 7.1.7. If you are performing a fresh install of CDP 7.1.7, you can ignore this issue.
- CDPD-217: The Apache Spark connector is not supported
- The old Apache Spark - Apache HBase Connector
(
shc) is not supported in CDP releases. - CDPD-3038: Launching
pysparkdisplays several HiveConf warning messages - When
pysparkstarts, several Hive configuration warning messages are displayed, similar to the following:23/08/02 08:37:26 WARN conf.HiveConf: HiveConf of name hive.metastore.runworker.in does not exist 23/08/02 08:37:26 WARN conf.HiveConf: HiveConf of name hive.masking.algo does not exist 23/08/02 08:37:34 WARN conf.HiveConf: HiveConf of name hive.metastore.runworker.in does not exist 23/08/02 08:37:34 WARN conf.HiveConf: HiveConf of name hive.masking.algo does not exist
Technical Service Bulletins
- TSB 2025-821: Jackson library default limit may truncate Spark Event log data
- Version 2.15.0 of the Jackson library used by Cloudera introduced a default limit that could lead to a problem where the Spark History Server is unable to read large Spark Event Logs.
The new default limit of 5 million characters (previously unlimited) may impact reading large Spark Event Logs. When using Spark 3.3.x or lower, this could lead to potential truncation of log data, when this limit is encountered during the Spark Event Log write.
- Knowledge article
- For the latest update on this issue, see the corresponding Knowledge article: TSB 2025-821: Jackson library default limit may truncate Spark Event log data
