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;
import com.google.common.base.Function;
import com.google.common.base.Predicates;
import com.google.common.collect.Ordering;
import com.metamx.common.ISE;
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()));
if (!actualInterval.overlaps(dataInterval)) {
return ImmutableList.of();
}
if (actualInterval.getStart().isBefore(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, ComplexColumn> complexColumnCache = Maps.newHashMap();
final Map<String, Object> objectColumnCache = Maps.newHashMap();
final Map<String, Object> objectColumnCache = Maps.newHashMap();
final GenericColumn timestamps = index.getTimeColumn().getGenericColumn();
@ -352,8 +356,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return column.lookupId(name);
}
};
}
else {
} else {
return new DimensionSelector()
{
@Override
@ -412,8 +415,8 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedMetricVals == null) {
Column holder = index.getColumn(metricName);
if (holder != null && holder.getCapabilities().getType() == ValueType.FLOAT) {
cachedMetricVals = holder.getGenericColumn();
genericColumnCache.put(metricName, cachedMetricVals);
cachedMetricVals = holder.getGenericColumn();
genericColumnCache.put(metricName, cachedMetricVals);
}
}
@ -484,27 +487,25 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedColumnVals == null) {
Column holder = index.getColumn(columnName);
if(holder != null) {
if (holder != null) {
final ColumnCapabilities capabilities = holder.getCapabilities();
if(capabilities.hasMultipleValues()) {
if (capabilities.hasMultipleValues()) {
throw new UnsupportedOperationException(
"makeObjectColumnSelector does not support multivalued columns"
"makeObjectColumnSelector does not support multivalued columns"
);
}
if(capabilities.isDictionaryEncoded()) {
if (capabilities.isDictionaryEncoded()) {
cachedColumnVals = holder.getDictionaryEncoding();
}
else if(capabilities.getType() == ValueType.COMPLEX) {
} else if (capabilities.getType() == ValueType.COMPLEX) {
cachedColumnVals = holder.getComplexColumn();
}
else {
} else {
cachedColumnVals = holder.getGenericColumn();
}
}
if(cachedColumnVals != null) {
if (cachedColumnVals != null) {
objectColumnCache.put(columnName, cachedColumnVals);
}
}
@ -513,11 +514,11 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return null;
}
if(cachedColumnVals instanceof GenericColumn) {
if (cachedColumnVals instanceof GenericColumn) {
final GenericColumn columnVals = (GenericColumn) cachedColumnVals;
final ValueType type = columnVals.getType();
if(type == ValueType.FLOAT) {
if (type == ValueType.FLOAT) {
return new ObjectColumnSelector<Float>()
{
@Override
@ -533,7 +534,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
}
};
}
if(type == ValueType.LONG) {
if (type == ValueType.LONG) {
return new ObjectColumnSelector<Long>()
{
@Override
@ -549,7 +550,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
}
};
}
if(type == ValueType.STRING) {
if (type == ValueType.STRING) {
return new ObjectColumnSelector<String>()
{
@Override
@ -585,7 +586,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
};
}
final ComplexColumn columnVals = (ComplexColumn)cachedColumnVals;
final ComplexColumn columnVals = (ComplexColumn) cachedColumnVals;
return new ObjectColumnSelector()
{
@Override
@ -623,8 +624,8 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
Closeables.closeQuietly(complexColumn);
}
for (Object column : complexColumnCache.values()) {
if(column instanceof Closeable) {
Closeables.closeQuietly((Closeable)column);
if (column instanceof Closeable) {
Closeables.closeQuietly((Closeable) column);
}
}
}
@ -791,8 +792,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return column.lookupId(name);
}
};
}
else {
} else {
return new DimensionSelector()
{
@Override
@ -851,8 +851,8 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedMetricVals == null) {
Column holder = index.getColumn(metricName);
if (holder != null && holder.getCapabilities().getType() == ValueType.FLOAT) {
cachedMetricVals = holder.getGenericColumn();
genericColumnCache.put(metricName, cachedMetricVals);
cachedMetricVals = holder.getGenericColumn();
genericColumnCache.put(metricName, cachedMetricVals);
}
}
@ -923,26 +923,24 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
if (cachedColumnVals == null) {
Column holder = index.getColumn(columnName);
if(holder != null) {
if(holder.getCapabilities().hasMultipleValues()) {
if (holder != null) {
if (holder.getCapabilities().hasMultipleValues()) {
throw new UnsupportedOperationException(
"makeObjectColumnSelector does not support multivalued columns"
"makeObjectColumnSelector does not support multivalued columns"
);
}
final ValueType type = holder.getCapabilities().getType();
if(holder.getCapabilities().isDictionaryEncoded()) {
if (holder.getCapabilities().isDictionaryEncoded()) {
cachedColumnVals = holder.getDictionaryEncoding();
}
else if(type == ValueType.COMPLEX) {
} else if (type == ValueType.COMPLEX) {
cachedColumnVals = holder.getComplexColumn();
}
else {
} else {
cachedColumnVals = holder.getGenericColumn();
}
}
if(cachedColumnVals != null) {
if (cachedColumnVals != null) {
objectColumnCache.put(columnName, cachedColumnVals);
}
}
@ -951,11 +949,11 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
return null;
}
if(cachedColumnVals instanceof GenericColumn) {
if (cachedColumnVals instanceof GenericColumn) {
final GenericColumn columnVals = (GenericColumn) cachedColumnVals;
final ValueType type = columnVals.getType();
if(type == ValueType.FLOAT) {
if (type == ValueType.FLOAT) {
return new ObjectColumnSelector<Float>()
{
@Override
@ -971,7 +969,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
}
};
}
if(type == ValueType.LONG) {
if (type == ValueType.LONG) {
return new ObjectColumnSelector<Long>()
{
@Override
@ -987,7 +985,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
}
};
}
if(type == ValueType.STRING) {
if (type == ValueType.STRING) {
return new ObjectColumnSelector<String>()
{
@Override
@ -1023,7 +1021,7 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
};
}
final ComplexColumn columnVals = (ComplexColumn)cachedColumnVals;
final ComplexColumn columnVals = (ComplexColumn) cachedColumnVals;
return new ObjectColumnSelector()
{
@Override
@ -1059,7 +1057,9 @@ public class QueryableIndexStorageAdapter extends BaseStorageAdapter
Closeables.closeQuietly(complexColumn);
}
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) {
final String zkConnect = args[1];
curator = connectToZK(zkConnect);
curator.start();
String zpathBase = args[2];
dumpFromZk(curator, zkConnect, zpathBase, System.out);
} else if ("put".equals(cmd) && args.length == 3) {
final String zkConnect = args[1];
curator = connectToZK(zkConnect);
curator.start();
final String pfile = args[2];
putToZk(curator, pfile);
} else {