apache/seatunnel · error · RuntimeException
There is no bucket property in conf which load from [hadoop_
Error message
There is no bucket property in conf which load from [hadoop_conf_path,hadoop_conf].
What it means
AbstractStorage.fillBucket reads the 'bucket' property from the Hadoop configuration files loaded via hadoop_conf_path/hadoop_conf and injects it into the SeaTunnel config. If the merged Hadoop Configuration has no 'bucket' key (or it is blank), it throws this RuntimeException because bucket-based storage addressing cannot proceed without it.
Source
Thrown at seatunnel-connectors-v2/connector-hive/src/main/java/org/apache/seatunnel/connectors/seatunnel/hive/storage/AbstractStorage.java:55
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@Slf4j
public abstract class AbstractStorage implements Storage {
private static final Option BUCKET_OPTION = Options.key("bucket").stringType().noDefaultValue();
private static final List<String> HADOOP_CONF_FILES =
ImmutableList.of("core-site.xml", "hdfs-site.xml", "hive-site.xml");
protected Config fillBucket(ReadonlyConfig readonlyConfig, Configuration configuration) {
Config config = readonlyConfig.toConfig();
String bucketValue = configuration.get(BUCKET_OPTION.key());
if (StringUtils.isBlank(bucketValue)) {
throw new RuntimeException(
"There is no bucket property in conf which load from [hadoop_conf_path,hadoop_conf].");
}
config = config.withValue(BUCKET_OPTION.key(), ConfigValueFactory.fromAnyRef(bucketValue));
return config;
}
/**
* Loading Hadoop configuration by hadoop conf path or props set by hive.hadoop.conf
*
* @return
*/
protected Configuration loadHiveBaseHadoopConfig(ReadonlyConfig readonlyConfig) {
try {
Configuration configuration = new Configuration();
// Try to load from hadoop_conf_path(The Bucket configuration is typically in
// core-site.xml)
Optional<String> hadoopConfPath =
readonlyConfig.getOptional(HiveBaseOptions.HADOOP_CONF_PATH);View on GitHub (pinned to cf67b549a7)
Solutions
- Add the 'bucket' property (e.g. <property><name>bucket</name><value>your-bucket</value></property>) to one of the XML files in hadoop_conf_path.
- Add 'bucket' to the inline hadoop_conf map in the connector config.
- Verify the resolved hadoop_conf_path directory actually contains core-site.xml/hdfs-site.xml/hive-site.xml and that SeaTunnel workers can read them.
- If the target is plain HDFS and no bucket is needed, use a storage type/config path that does not require bucket-based storage.
Example fix
// before (core-site.xml missing bucket) <configuration/> // after <configuration> <property><name>bucket</name><value>oss://my-bucket</value></property> </configuration>
Defensive patterns
Strategy: validation
Validate before calling
org.apache.hadoop.conf.Configuration conf = loadHadoopConf(hadoopConfPath, hadoopConf);
if (conf.get("bucket") == null || conf.get("bucket").trim().isEmpty()) {
throw new IllegalArgumentException("hadoop conf must define 'bucket' before storage setup");
} Prevention
- Keep a canonical core-site.xml/hdfs-site.xml template that always includes 'bucket' for object-storage targets
- Distribute hadoop_conf_path files to every SeaTunnel node and verify with a startup pre-check
- Add the 'bucket' key to the inline hadoop_conf map as a belt-and-braces fallback
When it happens
Trigger: Calling the storage setup path (e.g. creating an HDFS/OSS storage for a Hive table) when the supplied core-site.xml/hdfs-site.xml/hive-site.xml files or hadoop_conf map do not contain a non-blank 'bucket' property.
Common situations: Users point hadoop_conf_path at a directory missing the relevant XML, or copy configs from a non-object-storage cluster where 'bucket' is never set; also happens when hadoop_conf inline map omits the key.
Related errors
- Please set kerberosPrincipal
- Please set kerberosKeytabPath
- hadoop.security.authentication must be kerberos
- CREATE_HIVE_TABLE_FAILED
- GET_HDFS_NAMENODE_HOST_FAILED
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/d1dce331255fad6e.
Report an issue: GitHub.