Integration tests port fix, logs output, lib share changes (#5061)

* integration tests port fix, logs output, lib share changes

* Fix test compilation

* docker image fix

* Annotate DiscoverySelector.pick() as Nullable, use formatting instead of string concatenation for logging

* integration-tests logging check

* corrected integration-tests log location

* removed an experimental travis test exception
This commit is contained in:
Egor Riashin 2017-11-11 01:07:37 +03:00 committed by Slim
parent 9444da5038
commit 3ad5f51f7e
15 changed files with 41 additions and 20 deletions

View File

@ -42,3 +42,11 @@ matrix:
- mvn install -q -ff -DskipTests -B - mvn install -q -ff -DskipTests -B
script: script:
- $TRAVIS_BUILD_DIR/ci/travis_script_integration.sh - $TRAVIS_BUILD_DIR/ci/travis_script_integration.sh
after_failure:
- for v in ~/shared/logs/*.log ; do
echo $v logtail ======================== ; tail -100 $v ;
done
- for v in broker middlemanager overlord router coordinator historical ; do
echo $v dmesg ======================== ;
docker exec -it druid-$v sh -c 'dmesg | tail -3' ;
done

View File

@ -21,7 +21,7 @@ command=java
-Ddruid.broker.cache.populateCache=true -Ddruid.broker.cache.populateCache=true
-Ddruid.cache.type=local -Ddruid.cache.type=local
-Ddruid.cache.sizeInBytes=40000000 -Ddruid.cache.sizeInBytes=40000000
-cp /usr/local/druid/lib/* -cp /shared/docker/lib/*
io.druid.cli.Main server broker io.druid.cli.Main server broker
redirect_stderr=true redirect_stderr=true
autorestart=false autorestart=false

View File

@ -15,7 +15,7 @@ command=java
-Ddruid.metadata.storage.connector.password=diurd -Ddruid.metadata.storage.connector.password=diurd
-Ddruid.zk.service.host=druid-zookeeper-kafka -Ddruid.zk.service.host=druid-zookeeper-kafka
-Ddruid.coordinator.startDelay=PT5S -Ddruid.coordinator.startDelay=PT5S
-cp /usr/local/druid/lib/* -cp /shared/docker/lib/*
io.druid.cli.Main server coordinator io.druid.cli.Main server coordinator
redirect_stderr=true redirect_stderr=true
priority=100 priority=100

View File

@ -19,7 +19,7 @@ command=java
-Ddruid.server.http.numThreads=100 -Ddruid.server.http.numThreads=100
-Ddruid.segmentCache.locations="[{\"path\":\"/shared/druid/indexCache\",\"maxSize\":5000000000}]" -Ddruid.segmentCache.locations="[{\"path\":\"/shared/druid/indexCache\",\"maxSize\":5000000000}]"
-Ddruid.server.maxSize=5000000000 -Ddruid.server.maxSize=5000000000
-cp /usr/local/druid/lib/* -cp /shared/docker/lib/*
io.druid.cli.Main server historical io.druid.cli.Main server historical
redirect_stderr=true redirect_stderr=true
priority=100 priority=100

View File

@ -22,7 +22,7 @@ command=java
-Ddruid.worker.ip=%(ENV_HOST_IP)s -Ddruid.worker.ip=%(ENV_HOST_IP)s
-Ddruid.selectors.indexing.serviceName=druid/overlord -Ddruid.selectors.indexing.serviceName=druid/overlord
-Ddruid.indexer.task.chathandler.type=announce -Ddruid.indexer.task.chathandler.type=announce
-cp /usr/local/druid/lib/* -cp /shared/docker/lib/*
io.druid.cli.Main server middleManager io.druid.cli.Main server middleManager
redirect_stderr=true redirect_stderr=true
priority=100 priority=100

View File

@ -17,7 +17,7 @@ command=java
-Ddruid.indexer.storage.type=metadata -Ddruid.indexer.storage.type=metadata
-Ddruid.indexer.logs.directory=/shared/tasklogs -Ddruid.indexer.logs.directory=/shared/tasklogs
-Ddruid.indexer.runner.type=remote -Ddruid.indexer.runner.type=remote
-cp /usr/local/druid/lib/* -cp /shared/docker/lib/*
io.druid.cli.Main server overlord io.druid.cli.Main server overlord
redirect_stderr=true redirect_stderr=true
priority=100 priority=100

View File

@ -10,7 +10,7 @@ command=java
-Ddruid.host=%(ENV_HOST_IP)s -Ddruid.host=%(ENV_HOST_IP)s
-Ddruid.zk.service.host=druid-zookeeper-kafka -Ddruid.zk.service.host=druid-zookeeper-kafka
-Ddruid.server.http.numThreads=100 -Ddruid.server.http.numThreads=100
-cp /usr/local/druid/lib/* -cp /shared/docker/lib/*
io.druid.cli.Main server router io.druid.cli.Main server router
redirect_stderr=true redirect_stderr=true
priority=100 priority=100

View File

@ -28,25 +28,25 @@ mvn -B dependency:copy-dependencies -DoutputDirectory=$SHARED_DIR/docker/lib
docker build -t druid/cluster $SHARED_DIR/docker docker build -t druid/cluster $SHARED_DIR/docker
# Start zookeeper and kafka # Start zookeeper and kafka
docker run -d --name druid-zookeeper-kafka -p 2181:2181 -p 9092:9092 -v $SHARED_DIR:/shared -v $DOCKERDIR/zookeeper.conf:$SUPERVISORDIR/zookeeper.conf -v $DOCKERDIR/kafka.conf:$SUPERVISORDIR/kafka.conf druid/cluster docker run -d --privileged --name druid-zookeeper-kafka -p 2181:2181 -p 9092:9092 -v $SHARED_DIR:/shared -v $DOCKERDIR/zookeeper.conf:$SUPERVISORDIR/zookeeper.conf -v $DOCKERDIR/kafka.conf:$SUPERVISORDIR/kafka.conf druid/cluster
# Start MYSQL # Start MYSQL
docker run -d --name druid-metadata-storage -v $SHARED_DIR:/shared -v $DOCKERDIR/metadata-storage.conf:$SUPERVISORDIR/metadata-storage.conf druid/cluster docker run -d --privileged --name druid-metadata-storage -v $SHARED_DIR:/shared -v $DOCKERDIR/metadata-storage.conf:$SUPERVISORDIR/metadata-storage.conf druid/cluster
# Start Overlord # Start Overlord
docker run -d --name druid-overlord -p 8090:8090 -v $SHARED_DIR:/shared -v $DOCKERDIR/overlord.conf:$SUPERVISORDIR/overlord.conf --link druid-metadata-storage:druid-metadata-storage --link druid-zookeeper-kafka:druid-zookeeper-kafka druid/cluster docker run -d --privileged --name druid-overlord -p 8090:8090 -v $SHARED_DIR:/shared -v $DOCKERDIR/overlord.conf:$SUPERVISORDIR/overlord.conf --link druid-metadata-storage:druid-metadata-storage --link druid-zookeeper-kafka:druid-zookeeper-kafka druid/cluster
# Start Coordinator # Start Coordinator
docker run -d --name druid-coordinator -p 8081:8081 -v $SHARED_DIR:/shared -v $DOCKERDIR/coordinator.conf:$SUPERVISORDIR/coordinator.conf --link druid-overlord:druid-overlord --link druid-metadata-storage:druid-metadata-storage --link druid-zookeeper-kafka:druid-zookeeper-kafka druid/cluster docker run -d --privileged --name druid-coordinator -p 8081:8081 -v $SHARED_DIR:/shared -v $DOCKERDIR/coordinator.conf:$SUPERVISORDIR/coordinator.conf --link druid-overlord:druid-overlord --link druid-metadata-storage:druid-metadata-storage --link druid-zookeeper-kafka:druid-zookeeper-kafka druid/cluster
# Start Historical # Start Historical
docker run -d --name druid-historical -v $SHARED_DIR:/shared -v $DOCKERDIR/historical.conf:$SUPERVISORDIR/historical.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka druid/cluster docker run -d --privileged --name druid-historical -v $SHARED_DIR:/shared -v $DOCKERDIR/historical.conf:$SUPERVISORDIR/historical.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka druid/cluster
# Start Middlemanger # Start Middlemanger
docker run -d --name druid-middlemanager -p 8100:8100 -p 8101:8101 -p 8102:8102 -p 8103:8103 -p 8104:8104 -p 8105:8105 -v $RESOURCEDIR:/resources -v $SHARED_DIR:/shared -v $DOCKERDIR/middlemanager.conf:$SUPERVISORDIR/middlemanager.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka --link druid-overlord:druid-overlord druid/cluster docker run -d --privileged --name druid-middlemanager -p 8091:8091 -p 8100:8100 -p 8101:8101 -p 8102:8102 -p 8103:8103 -p 8104:8104 -p 8105:8105 -v $RESOURCEDIR:/resources -v $SHARED_DIR:/shared -v $DOCKERDIR/middlemanager.conf:$SUPERVISORDIR/middlemanager.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka --link druid-overlord:druid-overlord druid/cluster
# Start Broker # Start Broker
docker run -d --name druid-broker -p 8082:8082 -v $SHARED_DIR:/shared -v $DOCKERDIR/broker.conf:$SUPERVISORDIR/broker.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka --link druid-middlemanager:druid-middlemanager --link druid-historical:druid-historical druid/cluster docker run -d --privileged --name druid-broker -p 8082:8082 -v $SHARED_DIR:/shared -v $DOCKERDIR/broker.conf:$SUPERVISORDIR/broker.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka --link druid-middlemanager:druid-middlemanager --link druid-historical:druid-historical druid/cluster
# Start Router # Start Router
docker run -d --name druid-router -p 8888:8888 -v $SHARED_DIR:/shared -v $DOCKERDIR/router.conf:$SUPERVISORDIR/router.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka --link druid-coordinator:druid-coordinator --link druid-broker:druid-broker druid/cluster docker run -d --privileged --name druid-router -p 8888:8888 -v $SHARED_DIR:/shared -v $DOCKERDIR/router.conf:$SUPERVISORDIR/router.conf --link druid-zookeeper-kafka:druid-zookeeper-kafka --link druid-coordinator:druid-coordinator --link druid-broker:druid-broker druid/cluster

View File

@ -23,6 +23,7 @@ import com.google.common.collect.Iterables;
import io.druid.timeline.DataSegment; import io.druid.timeline.DataSegment;
import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap; import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap;
import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -38,6 +39,7 @@ public abstract class AbstractTierSelectorStrategy implements TierSelectorStrate
this.serverSelectorStrategy = serverSelectorStrategy; this.serverSelectorStrategy = serverSelectorStrategy;
} }
@Nullable
@Override @Override
public QueryableDruidServer pick( public QueryableDruidServer pick(
Int2ObjectRBTreeMap<Set<QueryableDruidServer>> prioritizedServers, Int2ObjectRBTreeMap<Set<QueryableDruidServer>> prioritizedServers,

View File

@ -19,9 +19,12 @@
package io.druid.client.selector; package io.druid.client.selector;
import javax.annotation.Nullable;
/** /**
*/ */
public interface DiscoverySelector<T> public interface DiscoverySelector<T>
{ {
@Nullable
T pick(); T pick();
} }

View File

@ -23,6 +23,7 @@ import io.druid.server.coordination.DruidServerMetadata;
import io.druid.timeline.DataSegment; import io.druid.timeline.DataSegment;
import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap; import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap;
import javax.annotation.Nullable;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
@ -110,6 +111,7 @@ public class ServerSelector implements DiscoverySelector<QueryableDruidServer>
} }
} }
@Nullable
@Override @Override
public QueryableDruidServer pick() public QueryableDruidServer pick()
{ {

View File

@ -24,6 +24,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.druid.timeline.DataSegment; import io.druid.timeline.DataSegment;
import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap; import it.unimi.dsi.fastutil.ints.Int2ObjectRBTreeMap;
import javax.annotation.Nullable;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -40,6 +41,7 @@ public interface TierSelectorStrategy
{ {
Comparator<Integer> getComparator(); Comparator<Integer> getComparator();
@Nullable
QueryableDruidServer pick(Int2ObjectRBTreeMap<Set<QueryableDruidServer>> prioritizedServers, DataSegment segment); QueryableDruidServer pick(Int2ObjectRBTreeMap<Set<QueryableDruidServer>> prioritizedServers, DataSegment segment);
List<QueryableDruidServer> pick( List<QueryableDruidServer> pick(

View File

@ -46,14 +46,14 @@ public class ServerDiscoveryFactory
public ServerDiscoverySelector createSelector(String serviceName) public ServerDiscoverySelector createSelector(String serviceName)
{ {
if (serviceName == null) { if (serviceName == null) {
return new ServerDiscoverySelector(new NoopServiceProvider()); return new ServerDiscoverySelector(new NoopServiceProvider(), serviceName);
} }
final ServiceProvider serviceProvider = serviceDiscovery final ServiceProvider serviceProvider = serviceDiscovery
.serviceProviderBuilder() .serviceProviderBuilder()
.serviceName(CuratorServiceUtils.makeCanonicalServiceName(serviceName)) .serviceName(CuratorServiceUtils.makeCanonicalServiceName(serviceName))
.build(); .build();
return new ServerDiscoverySelector(serviceProvider); return new ServerDiscoverySelector(serviceProvider, serviceName);
} }
private static class NoopServiceProvider<T> implements ServiceProvider<T> private static class NoopServiceProvider<T> implements ServiceProvider<T>

View File

@ -31,6 +31,7 @@ import io.druid.java.util.common.logger.Logger;
import org.apache.curator.x.discovery.ServiceInstance; import org.apache.curator.x.discovery.ServiceInstance;
import org.apache.curator.x.discovery.ServiceProvider; import org.apache.curator.x.discovery.ServiceProvider;
import javax.annotation.Nullable;
import java.io.IOException; import java.io.IOException;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
@ -44,10 +45,12 @@ public class ServerDiscoverySelector implements DiscoverySelector<Server>
private static final Logger log = new Logger(ServerDiscoverySelector.class); private static final Logger log = new Logger(ServerDiscoverySelector.class);
private final ServiceProvider serviceProvider; private final ServiceProvider serviceProvider;
private final String name;
public ServerDiscoverySelector(ServiceProvider serviceProvider) public ServerDiscoverySelector(ServiceProvider serviceProvider, String name)
{ {
this.serviceProvider = serviceProvider; this.serviceProvider = serviceProvider;
this.name = name;
} }
private static final Function<ServiceInstance, Server> TO_SERVER = new Function<ServiceInstance, Server>() private static final Function<ServiceInstance, Server> TO_SERVER = new Function<ServiceInstance, Server>()
@ -97,6 +100,7 @@ public class ServerDiscoverySelector implements DiscoverySelector<Server>
} }
}; };
@Nullable
@Override @Override
public Server pick() public Server pick()
{ {
@ -105,12 +109,12 @@ public class ServerDiscoverySelector implements DiscoverySelector<Server>
instance = serviceProvider.getInstance(); instance = serviceProvider.getInstance();
} }
catch (Exception e) { catch (Exception e) {
log.info(e, "Exception getting instance"); log.info(e, "Exception getting instance for [%s]", name);
return null; return null;
} }
if (instance == null) { if (instance == null) {
log.error("No server instance found"); log.error("No server instance found for [%s]", name);
return null; return null;
} }

View File

@ -46,7 +46,7 @@ public class ServerDiscoverySelectorTest
{ {
serviceProvider = EasyMock.createMock(ServiceProvider.class); serviceProvider = EasyMock.createMock(ServiceProvider.class);
instance = EasyMock.createMock(ServiceInstance.class); instance = EasyMock.createMock(ServiceInstance.class);
serverDiscoverySelector = new ServerDiscoverySelector(serviceProvider); serverDiscoverySelector = new ServerDiscoverySelector(serviceProvider, "test");
} }
@Test @Test