fix DruidSetup not working

This commit is contained in:
fjy 2013-05-20 12:06:21 -07:00
parent d826537672
commit 54c48aac6d
3 changed files with 45 additions and 41 deletions

View File

@ -20,6 +20,7 @@
package com.metamx.druid.coordination; package com.metamx.druid.coordination;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicates;
import com.google.common.collect.Ordering; import com.google.common.collect.Ordering;
import com.metamx.common.ISE; import com.metamx.common.ISE;
import com.metamx.common.guava.FunctionalIterable; import com.metamx.common.guava.FunctionalIterable;
@ -254,7 +255,8 @@ public class ServerManager implements QuerySegmentWalker
); );
} }
} }
); )
.filter(Predicates.<QueryRunner<T>>notNull());
} }
} }
); );

View File

@ -144,6 +144,10 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
final Interval dataInterval = new Interval(getMinTime().getMillis(), gran.next(getMaxTime().getMillis())); final Interval dataInterval = new Interval(getMinTime().getMillis(), gran.next(getMaxTime().getMillis()));
if (!actualInterval.overlaps(dataInterval)) {
return ImmutableList.of();
}
if (actualInterval.getStart().isBefore(dataInterval.getStart())) { if (actualInterval.getStart().isBefore(dataInterval.getStart())) {
actualInterval = actualInterval.withStart(dataInterval.getStart()); actualInterval = actualInterval.withStart(dataInterval.getStart());
} }
@ -260,7 +264,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
final Map<String, GenericColumn> genericColumnCache = Maps.newHashMap(); final Map<String, GenericColumn> genericColumnCache = Maps.newHashMap();
final Map<String, ComplexColumn> complexColumnCache = Maps.newHashMap(); final Map<String, ComplexColumn> complexColumnCache = Maps.newHashMap();
final Map<String, Object> objectColumnCache = Maps.newHashMap(); final Map<String, Object> objectColumnCache = Maps.newHashMap();
final GenericColumn timestamps = index.getTimeColumn().getGenericColumn(); final GenericColumn timestamps = index.getTimeColumn().getGenericColumn();
@ -352,8 +356,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return column.lookupId(name); return column.lookupId(name);
} }
}; };
} } else {
else {
return new DimensionSelector() return new DimensionSelector()
{ {
@Override @Override
@ -412,8 +415,8 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedMetricVals == null) { if (cachedMetricVals == null) {
Column holder = index.getColumn(metricName); Column holder = index.getColumn(metricName);
if (holder != null && holder.getCapabilities().getType() == ValueType.FLOAT) { if (holder != null && holder.getCapabilities().getType() == ValueType.FLOAT) {
cachedMetricVals = holder.getGenericColumn(); cachedMetricVals = holder.getGenericColumn();
genericColumnCache.put(metricName, cachedMetricVals); genericColumnCache.put(metricName, cachedMetricVals);
} }
} }
@ -484,27 +487,25 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedColumnVals == null) { if (cachedColumnVals == null) {
Column holder = index.getColumn(columnName); Column holder = index.getColumn(columnName);
if(holder != null) { if (holder != null) {
final ColumnCapabilities capabilities = holder.getCapabilities(); final ColumnCapabilities capabilities = holder.getCapabilities();
if(capabilities.hasMultipleValues()) { if (capabilities.hasMultipleValues()) {
throw new UnsupportedOperationException( throw new UnsupportedOperationException(
"makeObjectColumnSelector does not support multivalued columns" "makeObjectColumnSelector does not support multivalued columns"
); );
} }
if(capabilities.isDictionaryEncoded()) { if (capabilities.isDictionaryEncoded()) {
cachedColumnVals = holder.getDictionaryEncoding(); cachedColumnVals = holder.getDictionaryEncoding();
} } else if (capabilities.getType() == ValueType.COMPLEX) {
else if(capabilities.getType() == ValueType.COMPLEX) {
cachedColumnVals = holder.getComplexColumn(); cachedColumnVals = holder.getComplexColumn();
} } else {
else {
cachedColumnVals = holder.getGenericColumn(); cachedColumnVals = holder.getGenericColumn();
} }
} }
if(cachedColumnVals != null) { if (cachedColumnVals != null) {
objectColumnCache.put(columnName, cachedColumnVals); objectColumnCache.put(columnName, cachedColumnVals);
} }
} }
@ -513,11 +514,11 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return null; return null;
} }
if(cachedColumnVals instanceof GenericColumn) { if (cachedColumnVals instanceof GenericColumn) {
final GenericColumn columnVals = (GenericColumn) cachedColumnVals; final GenericColumn columnVals = (GenericColumn) cachedColumnVals;
final ValueType type = columnVals.getType(); final ValueType type = columnVals.getType();
if(type == ValueType.FLOAT) { if (type == ValueType.FLOAT) {
return new ObjectColumnSelector<Float>() return new ObjectColumnSelector<Float>()
{ {
@Override @Override
@ -533,7 +534,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
} }
}; };
} }
if(type == ValueType.LONG) { if (type == ValueType.LONG) {
return new ObjectColumnSelector<Long>() return new ObjectColumnSelector<Long>()
{ {
@Override @Override
@ -549,7 +550,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
} }
}; };
} }
if(type == ValueType.STRING) { if (type == ValueType.STRING) {
return new ObjectColumnSelector<String>() return new ObjectColumnSelector<String>()
{ {
@Override @Override
@ -585,7 +586,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
}; };
} }
final ComplexColumn columnVals = (ComplexColumn)cachedColumnVals; final ComplexColumn columnVals = (ComplexColumn) cachedColumnVals;
return new ObjectColumnSelector() return new ObjectColumnSelector()
{ {
@Override @Override
@ -623,8 +624,8 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
Closeables.closeQuietly(complexColumn); Closeables.closeQuietly(complexColumn);
} }
for (Object column : complexColumnCache.values()) { for (Object column : complexColumnCache.values()) {
if(column instanceof Closeable) { if (column instanceof Closeable) {
Closeables.closeQuietly((Closeable)column); Closeables.closeQuietly((Closeable) column);
} }
} }
} }
@ -791,8 +792,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return column.lookupId(name); return column.lookupId(name);
} }
}; };
} } else {
else {
return new DimensionSelector() return new DimensionSelector()
{ {
@Override @Override
@ -851,8 +851,8 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedMetricVals == null) { if (cachedMetricVals == null) {
Column holder = index.getColumn(metricName); Column holder = index.getColumn(metricName);
if (holder != null && holder.getCapabilities().getType() == ValueType.FLOAT) { if (holder != null && holder.getCapabilities().getType() == ValueType.FLOAT) {
cachedMetricVals = holder.getGenericColumn(); cachedMetricVals = holder.getGenericColumn();
genericColumnCache.put(metricName, cachedMetricVals); genericColumnCache.put(metricName, cachedMetricVals);
} }
} }
@ -923,26 +923,24 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedColumnVals == null) { if (cachedColumnVals == null) {
Column holder = index.getColumn(columnName); Column holder = index.getColumn(columnName);
if(holder != null) { if (holder != null) {
if(holder.getCapabilities().hasMultipleValues()) { if (holder.getCapabilities().hasMultipleValues()) {
throw new UnsupportedOperationException( throw new UnsupportedOperationException(
"makeObjectColumnSelector does not support multivalued columns" "makeObjectColumnSelector does not support multivalued columns"
); );
} }
final ValueType type = holder.getCapabilities().getType(); final ValueType type = holder.getCapabilities().getType();
if(holder.getCapabilities().isDictionaryEncoded()) { if (holder.getCapabilities().isDictionaryEncoded()) {
cachedColumnVals = holder.getDictionaryEncoding(); cachedColumnVals = holder.getDictionaryEncoding();
} } else if (type == ValueType.COMPLEX) {
else if(type == ValueType.COMPLEX) {
cachedColumnVals = holder.getComplexColumn(); cachedColumnVals = holder.getComplexColumn();
} } else {
else {
cachedColumnVals = holder.getGenericColumn(); cachedColumnVals = holder.getGenericColumn();
} }
} }
if(cachedColumnVals != null) { if (cachedColumnVals != null) {
objectColumnCache.put(columnName, cachedColumnVals); objectColumnCache.put(columnName, cachedColumnVals);
} }
} }
@ -951,11 +949,11 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return null; return null;
} }
if(cachedColumnVals instanceof GenericColumn) { if (cachedColumnVals instanceof GenericColumn) {
final GenericColumn columnVals = (GenericColumn) cachedColumnVals; final GenericColumn columnVals = (GenericColumn) cachedColumnVals;
final ValueType type = columnVals.getType(); final ValueType type = columnVals.getType();
if(type == ValueType.FLOAT) { if (type == ValueType.FLOAT) {
return new ObjectColumnSelector<Float>() return new ObjectColumnSelector<Float>()
{ {
@Override @Override
@ -971,7 +969,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
} }
}; };
} }
if(type == ValueType.LONG) { if (type == ValueType.LONG) {
return new ObjectColumnSelector<Long>() return new ObjectColumnSelector<Long>()
{ {
@Override @Override
@ -987,7 +985,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
} }
}; };
} }
if(type == ValueType.STRING) { if (type == ValueType.STRING) {
return new ObjectColumnSelector<String>() return new ObjectColumnSelector<String>()
{ {
@Override @Override
@ -1023,7 +1021,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
}; };
} }
final ComplexColumn columnVals = (ComplexColumn)cachedColumnVals; final ComplexColumn columnVals = (ComplexColumn) cachedColumnVals;
return new ObjectColumnSelector() return new ObjectColumnSelector()
{ {
@Override @Override
@ -1059,7 +1057,9 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
Closeables.closeQuietly(complexColumn); Closeables.closeQuietly(complexColumn);
} }
for (Object column : objectColumnCache.values()) { for (Object column : objectColumnCache.values()) {
if(column instanceof Closeable) Closeables.closeQuietly((Closeable)column); if (column instanceof Closeable) {
Closeables.closeQuietly((Closeable) column);
}
} }
} }
} }

View File

@ -103,11 +103,13 @@ public class DruidSetup
if ("dump".equals(cmd) && args.length == 3) { if ("dump".equals(cmd) && args.length == 3) {
final String zkConnect = args[1]; final String zkConnect = args[1];
curator = connectToZK(zkConnect); curator = connectToZK(zkConnect);
curator.start();
String zpathBase = args[2]; String zpathBase = args[2];
dumpFromZk(curator, zkConnect, zpathBase, System.out); dumpFromZk(curator, zkConnect, zpathBase, System.out);
} else if ("put".equals(cmd) && args.length == 3) { } else if ("put".equals(cmd) && args.length == 3) {
final String zkConnect = args[1]; final String zkConnect = args[1];
curator = connectToZK(zkConnect); curator = connectToZK(zkConnect);
curator.start();
final String pfile = args[2]; final String pfile = args[2];
putToZk(curator, pfile); putToZk(curator, pfile);
} else { } else {