mirror of https://github.com/apache/druid.git
Merge branch 'druid-0.7.x' into offheap-incremental-index
This commit is contained in:
commit
77e514688a
|
@ -49,7 +49,7 @@ public class ForkingTaskRunnerConfig
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@Min(1024)
|
@Min(1024)
|
||||||
@Max(65535)
|
@Max(65535)
|
||||||
private int startPort = 8081;
|
private int startPort = 8100;
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|
|
@ -19,8 +19,10 @@
|
||||||
|
|
||||||
package io.druid.server;
|
package io.druid.server;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JacksonInject;
|
||||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import com.google.inject.name.Named;
|
||||||
import io.druid.common.utils.SocketUtil;
|
import io.druid.common.utils.SocketUtil;
|
||||||
|
|
||||||
import javax.validation.constraints.Max;
|
import javax.validation.constraints.Max;
|
||||||
|
@ -31,15 +33,17 @@ import javax.validation.constraints.NotNull;
|
||||||
*/
|
*/
|
||||||
public class DruidNode
|
public class DruidNode
|
||||||
{
|
{
|
||||||
|
public static final String DEFAULT_HOST = "localhost";
|
||||||
|
|
||||||
private String hostNoPort;
|
private String hostNoPort;
|
||||||
|
|
||||||
@JsonProperty("service")
|
@JsonProperty("service")
|
||||||
@NotNull
|
@NotNull
|
||||||
private String serviceName = null;
|
private String serviceName;
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@NotNull
|
@NotNull
|
||||||
private String host = null;
|
private String host;
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@Min(0) @Max(0xffff)
|
@Min(0) @Max(0xffff)
|
||||||
|
@ -47,16 +51,21 @@ public class DruidNode
|
||||||
|
|
||||||
@JsonCreator
|
@JsonCreator
|
||||||
public DruidNode(
|
public DruidNode(
|
||||||
@JsonProperty("service") String serviceName,
|
@JacksonInject @Named("serviceName") @JsonProperty("service") String serviceName,
|
||||||
@JsonProperty("host") String host,
|
@JsonProperty("host") String host,
|
||||||
@JsonProperty("port") Integer port
|
@JacksonInject @Named("servicePort") @JsonProperty("port") Integer port
|
||||||
)
|
)
|
||||||
|
{
|
||||||
|
init(serviceName, host, port);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init(String serviceName, String host, Integer port)
|
||||||
{
|
{
|
||||||
this.serviceName = serviceName;
|
this.serviceName = serviceName;
|
||||||
|
|
||||||
if (port == null) {
|
if (port == null) {
|
||||||
if (host == null) {
|
if (host == null) {
|
||||||
setHostAndPort(null, -1, null);
|
setHostAndPort(DEFAULT_HOST, -1, DEFAULT_HOST);
|
||||||
}
|
}
|
||||||
else if (host.contains(":")) {
|
else if (host.contains(":")) {
|
||||||
final String[] hostParts = host.split(":");
|
final String[] hostParts = host.split(":");
|
||||||
|
@ -74,7 +83,7 @@ public class DruidNode
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (host == null || host.contains(":")) {
|
if (host == null || host.contains(":")) {
|
||||||
setHostAndPort(host, port, host == null ? null : host.split(":")[0]);
|
setHostAndPort(host == null ? DEFAULT_HOST : host, port, host == null ? DEFAULT_HOST : host.split(":")[0]);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setHostAndPort(String.format("%s:%d", host, port), port, host);
|
setHostAndPort(String.format("%s:%d", host, port), port, host);
|
||||||
|
|
|
@ -454,7 +454,7 @@ public class DruidCoordinator
|
||||||
private LeaderLatch createNewLeaderLatch()
|
private LeaderLatch createNewLeaderLatch()
|
||||||
{
|
{
|
||||||
final LeaderLatch newLeaderLatch = new LeaderLatch(
|
final LeaderLatch newLeaderLatch = new LeaderLatch(
|
||||||
curator, ZKPaths.makePath(zkPaths.getCoordinatorPath(), COORDINATOR_OWNER_NODE), config.getHost()
|
curator, ZKPaths.makePath(zkPaths.getCoordinatorPath(), COORDINATOR_OWNER_NODE), self.getHost()
|
||||||
);
|
);
|
||||||
|
|
||||||
newLeaderLatch.addListener(
|
newLeaderLatch.addListener(
|
||||||
|
|
|
@ -27,9 +27,6 @@ import org.skife.config.Default;
|
||||||
*/
|
*/
|
||||||
public abstract class DruidCoordinatorConfig
|
public abstract class DruidCoordinatorConfig
|
||||||
{
|
{
|
||||||
@Config("druid.host")
|
|
||||||
public abstract String getHost();
|
|
||||||
|
|
||||||
@Config("druid.coordinator.startDelay")
|
@Config("druid.coordinator.startDelay")
|
||||||
@Default("PT300s")
|
@Default("PT300s")
|
||||||
public abstract Duration getCoordinatorStartDelay();
|
public abstract Duration getCoordinatorStartDelay();
|
||||||
|
|
|
@ -109,7 +109,7 @@ public class InitializationTest
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
JsonConfigProvider.bindInstance(
|
JsonConfigProvider.bindInstance(
|
||||||
binder, Key.get(DruidNode.class, Self.class), new DruidNode("hadoop-indexer", "localhost", -1)
|
binder, Key.get(DruidNode.class, Self.class), new DruidNode("test-inject", "localhost", -1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,12 +77,6 @@ public class DruidCoordinatorTest
|
||||||
coordinator = new DruidCoordinator(
|
coordinator = new DruidCoordinator(
|
||||||
new DruidCoordinatorConfig()
|
new DruidCoordinatorConfig()
|
||||||
{
|
{
|
||||||
@Override
|
|
||||||
public String getHost()
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Duration getCoordinatorStartDelay()
|
public Duration getCoordinatorStartDelay()
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.metamx.common.lifecycle.Lifecycle;
|
import com.metamx.common.lifecycle.Lifecycle;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
|
@ -69,6 +70,9 @@ public class CliBridge extends ServerRunnable
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/bridge");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8081);
|
||||||
|
|
||||||
ConfigProvider.bind(binder, BridgeCuratorConfig.class);
|
ConfigProvider.bind(binder, BridgeCuratorConfig.class);
|
||||||
|
|
||||||
binder.bind(BridgeZkCoordinator.class).in(ManageLifecycle.class);
|
binder.bind(BridgeZkCoordinator.class).in(ManageLifecycle.class);
|
||||||
|
|
|
@ -22,6 +22,7 @@ package io.druid.cli;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
import io.druid.client.BrokerServerView;
|
import io.druid.client.BrokerServerView;
|
||||||
|
@ -78,6 +79,9 @@ public class CliBroker extends ServerRunnable
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/broker");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8082);
|
||||||
|
|
||||||
binder.bind(QueryToolChestWarehouse.class).to(MapQueryToolChestWarehouse.class);
|
binder.bind(QueryToolChestWarehouse.class).to(MapQueryToolChestWarehouse.class);
|
||||||
|
|
||||||
binder.bind(CachingClusteredClient.class).in(LazySingleton.class);
|
binder.bind(CachingClusteredClient.class).in(LazySingleton.class);
|
||||||
|
|
|
@ -24,6 +24,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.metamx.common.concurrent.ScheduledExecutorFactory;
|
import com.metamx.common.concurrent.ScheduledExecutorFactory;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
|
@ -87,6 +88,9 @@ public class CliCoordinator extends ServerRunnable
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/coordinator");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8081);
|
||||||
|
|
||||||
ConfigProvider.bind(binder, DruidCoordinatorConfig.class);
|
ConfigProvider.bind(binder, DruidCoordinatorConfig.class);
|
||||||
|
|
||||||
JsonConfigProvider.bind(binder, "druid.manager.segments", DatabaseSegmentManagerConfig.class);
|
JsonConfigProvider.bind(binder, "druid.manager.segments", DatabaseSegmentManagerConfig.class);
|
||||||
|
|
|
@ -22,6 +22,7 @@ package io.druid.cli;
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
import io.druid.client.cache.Cache;
|
import io.druid.client.cache.Cache;
|
||||||
|
@ -68,6 +69,9 @@ public class CliHistorical extends ServerRunnable
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/historical");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8083);
|
||||||
|
|
||||||
binder.bind(ServerManager.class).in(LazySingleton.class);
|
binder.bind(ServerManager.class).in(LazySingleton.class);
|
||||||
binder.bind(ZkCoordinator.class).in(ManageLifecycle.class);
|
binder.bind(ZkCoordinator.class).in(ManageLifecycle.class);
|
||||||
binder.bind(QuerySegmentWalker.class).to(ServerManager.class).in(LazySingleton.class);
|
binder.bind(QuerySegmentWalker.class).to(ServerManager.class).in(LazySingleton.class);
|
||||||
|
|
|
@ -23,6 +23,7 @@ import com.google.common.collect.ImmutableList;
|
||||||
import com.google.inject.Binder;
|
import com.google.inject.Binder;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.google.inject.util.Providers;
|
import com.google.inject.util.Providers;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
|
@ -74,6 +75,9 @@ public class CliMiddleManager extends ServerRunnable
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/middlemanager");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8091);
|
||||||
|
|
||||||
IndexingServiceModuleHelper.configureTaskRunnerConfigs(binder);
|
IndexingServiceModuleHelper.configureTaskRunnerConfigs(binder);
|
||||||
|
|
||||||
JsonConfigProvider.bind(binder, "druid.indexer.task", TaskConfig.class);
|
JsonConfigProvider.bind(binder, "druid.indexer.task", TaskConfig.class);
|
||||||
|
|
|
@ -26,6 +26,7 @@ import com.google.inject.Key;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
import com.google.inject.TypeLiteral;
|
import com.google.inject.TypeLiteral;
|
||||||
import com.google.inject.multibindings.MapBinder;
|
import com.google.inject.multibindings.MapBinder;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.google.inject.servlet.GuiceFilter;
|
import com.google.inject.servlet.GuiceFilter;
|
||||||
import com.google.inject.util.Providers;
|
import com.google.inject.util.Providers;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
|
@ -114,6 +115,9 @@ public class CliOverlord extends ServerRunnable
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/overlord");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8090);
|
||||||
|
|
||||||
JsonConfigProvider.bind(binder, "druid.indexer.queue", TaskQueueConfig.class);
|
JsonConfigProvider.bind(binder, "druid.indexer.queue", TaskQueueConfig.class);
|
||||||
JsonConfigProvider.bind(binder, "druid.indexer.task", TaskConfig.class);
|
JsonConfigProvider.bind(binder, "druid.indexer.task", TaskConfig.class);
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,9 @@
|
||||||
package io.druid.cli;
|
package io.druid.cli;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.inject.Binder;
|
||||||
|
import com.google.inject.Module;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
import io.druid.guice.RealtimeModule;
|
import io.druid.guice.RealtimeModule;
|
||||||
|
@ -45,7 +48,15 @@ public class CliRealtime extends ServerRunnable
|
||||||
protected List<Object> getModules()
|
protected List<Object> getModules()
|
||||||
{
|
{
|
||||||
return ImmutableList.<Object>of(
|
return ImmutableList.<Object>of(
|
||||||
new RealtimeModule()
|
new RealtimeModule(),
|
||||||
|
new Module() {
|
||||||
|
@Override
|
||||||
|
public void configure(Binder binder)
|
||||||
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/realtime");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8084);
|
||||||
|
}
|
||||||
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,6 +24,7 @@ import com.google.inject.Binder;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
import com.google.inject.Provides;
|
import com.google.inject.Provides;
|
||||||
import com.google.inject.TypeLiteral;
|
import com.google.inject.TypeLiteral;
|
||||||
|
import com.google.inject.name.Names;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.airlift.command.Command;
|
import io.airlift.command.Command;
|
||||||
import io.druid.curator.discovery.DiscoveryModule;
|
import io.druid.curator.discovery.DiscoveryModule;
|
||||||
|
@ -72,6 +73,9 @@ public class CliRouter extends ServerRunnable
|
||||||
@Override
|
@Override
|
||||||
public void configure(Binder binder)
|
public void configure(Binder binder)
|
||||||
{
|
{
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("serviceName")).to("druid/router");
|
||||||
|
binder.bindConstant().annotatedWith(Names.named("servicePort")).to(8888);
|
||||||
|
|
||||||
JsonConfigProvider.bind(binder, "druid.router", TieredBrokerConfig.class);
|
JsonConfigProvider.bind(binder, "druid.router", TieredBrokerConfig.class);
|
||||||
|
|
||||||
binder.bind(CoordinatorRuleManager.class);
|
binder.bind(CoordinatorRuleManager.class);
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
/*
|
||||||
|
* Druid - a distributed column store.
|
||||||
|
* Copyright (C) 2012, 2013, 2014 Metamarkets Group Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.druid.cli;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.google.inject.Binder;
|
||||||
|
import com.google.inject.Injector;
|
||||||
|
import com.google.inject.Key;
|
||||||
|
import com.google.inject.Module;
|
||||||
|
import com.metamx.common.logger.Logger;
|
||||||
|
import io.airlift.command.Command;
|
||||||
|
import io.airlift.command.Option;
|
||||||
|
import io.druid.db.DbConnector;
|
||||||
|
import io.druid.db.DbConnectorConfig;
|
||||||
|
import io.druid.db.DbTablesConfig;
|
||||||
|
import io.druid.guice.JsonConfigProvider;
|
||||||
|
import io.druid.guice.annotations.Self;
|
||||||
|
import io.druid.server.DruidNode;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Command(
|
||||||
|
name = "metadata-init",
|
||||||
|
description = "Initialize Metadata Storage"
|
||||||
|
)
|
||||||
|
public class CreateTables extends GuiceRunnable
|
||||||
|
{
|
||||||
|
@Option(name = "--connectURI", description = "Database JDBC connection string", required = true)
|
||||||
|
private String connectURI;
|
||||||
|
|
||||||
|
@Option(name = "--user", description = "Database username", required = true)
|
||||||
|
private String user;
|
||||||
|
|
||||||
|
@Option(name = "--password", description = "Database password", required = true)
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Option(name = "--base", description = "Base table name")
|
||||||
|
private String base;
|
||||||
|
|
||||||
|
private static final Logger log = new Logger(CreateTables.class);
|
||||||
|
|
||||||
|
public CreateTables()
|
||||||
|
{
|
||||||
|
super(log);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected List<Object> getModules()
|
||||||
|
{
|
||||||
|
return ImmutableList.<Object>of(
|
||||||
|
new Module()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void configure(Binder binder)
|
||||||
|
{
|
||||||
|
JsonConfigProvider.bindInstance(
|
||||||
|
binder, Key.get(DbConnectorConfig.class), new DbConnectorConfig()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public String getConnectURI()
|
||||||
|
{
|
||||||
|
return connectURI;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUser()
|
||||||
|
{
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPassword()
|
||||||
|
{
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
JsonConfigProvider.bindInstance(
|
||||||
|
binder, Key.get(DbTablesConfig.class), DbTablesConfig.fromBase(base)
|
||||||
|
);
|
||||||
|
JsonConfigProvider.bindInstance(
|
||||||
|
binder, Key.get(DruidNode.class, Self.class), new DruidNode("tools", "localhost", -1)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
final Injector injector = makeInjector();
|
||||||
|
DbConnector dbConnector = injector.getInstance(DbConnector.class);
|
||||||
|
dbConnector.createSegmentTable();
|
||||||
|
dbConnector.createRulesTable();
|
||||||
|
dbConnector.createConfigTable();
|
||||||
|
dbConnector.createTaskTables();
|
||||||
|
}
|
||||||
|
}
|
|
@ -61,7 +61,7 @@ public class Main
|
||||||
builder.withGroup("tools")
|
builder.withGroup("tools")
|
||||||
.withDescription("Various tools for working with Druid")
|
.withDescription("Various tools for working with Druid")
|
||||||
.withDefaultCommand(Help.class)
|
.withDefaultCommand(Help.class)
|
||||||
.withCommands(ConvertProperties.class, DruidJsonValidator.class, PullDependencies.class);
|
.withCommands(ConvertProperties.class, DruidJsonValidator.class, PullDependencies.class, CreateTables.class);
|
||||||
|
|
||||||
builder.withGroup("index")
|
builder.withGroup("index")
|
||||||
.withDescription("Run indexing for druid")
|
.withDescription("Run indexing for druid")
|
||||||
|
|
Loading…
Reference in New Issue