mirror of https://github.com/apache/druid.git
review comments & pom changes
This commit is contained in:
parent
36fc85736c
commit
fa43049240
|
@ -36,17 +36,16 @@ import com.google.inject.Binder;
|
||||||
import com.google.inject.Injector;
|
import com.google.inject.Injector;
|
||||||
import com.google.inject.Key;
|
import com.google.inject.Key;
|
||||||
import com.google.inject.Module;
|
import com.google.inject.Module;
|
||||||
import com.metamx.common.ISE;
|
|
||||||
import com.metamx.common.guava.FunctionalIterable;
|
import com.metamx.common.guava.FunctionalIterable;
|
||||||
import com.metamx.common.logger.Logger;
|
import com.metamx.common.logger.Logger;
|
||||||
import io.druid.common.utils.JodaUtils;
|
import io.druid.common.utils.JodaUtils;
|
||||||
import io.druid.data.input.InputRow;
|
import io.druid.data.input.InputRow;
|
||||||
import io.druid.data.input.impl.StringInputRowParser;
|
import io.druid.data.input.impl.StringInputRowParser;
|
||||||
|
import io.druid.guice.GuiceInjectors;
|
||||||
import io.druid.guice.JsonConfigProvider;
|
import io.druid.guice.JsonConfigProvider;
|
||||||
import io.druid.guice.annotations.Self;
|
import io.druid.guice.annotations.Self;
|
||||||
import io.druid.indexer.partitions.PartitionsSpec;
|
import io.druid.indexer.partitions.PartitionsSpec;
|
||||||
import io.druid.indexer.path.PathSpec;
|
import io.druid.indexer.path.PathSpec;
|
||||||
import io.druid.guice.GuiceInjectors;
|
|
||||||
import io.druid.initialization.Initialization;
|
import io.druid.initialization.Initialization;
|
||||||
import io.druid.segment.column.ColumnConfig;
|
import io.druid.segment.column.ColumnConfig;
|
||||||
import io.druid.segment.indexing.granularity.GranularitySpec;
|
import io.druid.segment.indexing.granularity.GranularitySpec;
|
||||||
|
@ -63,7 +62,6 @@ import org.joda.time.DateTime;
|
||||||
import org.joda.time.Interval;
|
import org.joda.time.Interval;
|
||||||
import org.joda.time.format.ISODateTimeFormat;
|
import org.joda.time.format.ISODateTimeFormat;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
|
@ -194,9 +192,8 @@ public class HadoopDruidIndexerConfig
|
||||||
Lists.transform(
|
Lists.transform(
|
||||||
entry.getValue(), new Function<HadoopyShardSpec, ShardSpec>()
|
entry.getValue(), new Function<HadoopyShardSpec, ShardSpec>()
|
||||||
{
|
{
|
||||||
@Nullable
|
|
||||||
@Override
|
@Override
|
||||||
public ShardSpec apply(@Nullable HadoopyShardSpec input)
|
public ShardSpec apply(HadoopyShardSpec input)
|
||||||
{
|
{
|
||||||
return input.getActualSpec();
|
return input.getActualSpec();
|
||||||
}
|
}
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -41,7 +41,7 @@
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<metamx.java-util.version>0.26.5</metamx.java-util.version>
|
<metamx.java-util.version>0.26.5</metamx.java-util.version>
|
||||||
<apache.curator.version>2.5.0</apache.curator.version>
|
<apache.curator.version>2.5.0</apache.curator.version>
|
||||||
<druid.api.version>0.2.4</druid.api.version>
|
<druid.api.version>0.2.5</druid.api.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
|
|
@ -25,14 +25,14 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.google.api.client.repackaged.com.google.common.base.Throwables;
|
import com.google.api.client.repackaged.com.google.common.base.Throwables;
|
||||||
import com.google.common.collect.ImmutableMap;
|
|
||||||
import com.google.common.hash.HashFunction;
|
import com.google.common.hash.HashFunction;
|
||||||
import com.google.common.hash.Hashing;
|
import com.google.common.hash.Hashing;
|
||||||
import io.druid.data.input.InputRow;
|
import io.druid.data.input.InputRow;
|
||||||
import io.druid.data.input.Rows;
|
import io.druid.data.input.Rows;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class HashBasedNumberedShardSpec extends NumberedShardSpec
|
public class HashBasedNumberedShardSpec extends NumberedShardSpec
|
||||||
{
|
{
|
||||||
|
@ -79,18 +79,25 @@ public class HashBasedNumberedShardSpec extends NumberedShardSpec
|
||||||
@Override
|
@Override
|
||||||
public ShardSpecLookup getLookup(final List<ShardSpec> shardSpecs)
|
public ShardSpecLookup getLookup(final List<ShardSpec> shardSpecs)
|
||||||
{
|
{
|
||||||
final ImmutableMap.Builder<Integer, ShardSpec> shardSpecsMapBuilder = ImmutableMap.builder();
|
// Sort on basis of partitionNumber
|
||||||
for (ShardSpec spec : shardSpecs) {
|
Collections.sort(
|
||||||
shardSpecsMapBuilder.put(spec.getPartitionNum(), spec);
|
shardSpecs, new Comparator<ShardSpec>()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public int compare(ShardSpec o1, ShardSpec o2)
|
||||||
|
{
|
||||||
|
return Integer.compare(o1.getPartitionNum(), o2.getPartitionNum());
|
||||||
}
|
}
|
||||||
final Map<Integer, ShardSpec> shardSpecMap = shardSpecsMapBuilder.build();
|
}
|
||||||
|
);
|
||||||
|
|
||||||
return new ShardSpecLookup()
|
return new ShardSpecLookup()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public ShardSpec getShardSpec(InputRow row)
|
public ShardSpec getShardSpec(InputRow row)
|
||||||
{
|
{
|
||||||
return shardSpecMap.get((long) hash(row) % getPartitions());
|
int index = (int) ((long) hash(row)) % getPartitions();
|
||||||
|
return shardSpecs.get(index);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue