Example usage for org.apache.hadoop.io DoubleWritable DoubleWritable

List of usage examples for org.apache.hadoop.io DoubleWritable DoubleWritable

Introduction

In this page you can find the example usage for org.apache.hadoop.io DoubleWritable DoubleWritable.

Prototype

public DoubleWritable(double value) 

Source Link

Usage

From source file:org.apache.giraph.examples.SimplePageRankComputation.java

License:Apache License

@Override
public void compute(Vertex<LongWritable, DoubleWritable, FloatWritable> vertex,
        Iterable<DoubleWritable> messages) throws IOException {
    if (getSuperstep() >= 1) {
        double sum = 0;
        for (DoubleWritable message : messages) {
            sum += message.get();/*  ww w. j  a v a  2s.  c o m*/
        }
        DoubleWritable vertexValue = new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum);
        vertex.setValue(vertexValue);
        aggregate(MAX_AGG, vertexValue);
        aggregate(MIN_AGG, vertexValue);
        aggregate(SUM_AGG, new LongWritable(1));
        LOG.info(vertex.getId() + ": PageRank=" + vertexValue + " max=" + getAggregatedValue(MAX_AGG) + " min="
                + getAggregatedValue(MIN_AGG));
    }

    if (getSuperstep() < MAX_SUPERSTEPS) {
        long edges = vertex.getNumEdges();
        sendMessageToAllEdges(vertex, new DoubleWritable(vertex.getValue().get() / edges));
    } else {
        vertex.voteToHalt();
    }
}

From source file:org.apache.giraph.examples.SimplePageRankComputation2.java

License:Apache License

@Override
public void compute(Vertex<LongWritable, DoubleWritable, DoubleWritable> vertex,
        Iterable<DoubleWritable> messages) throws IOException {
    if (getSuperstep() >= 1) {
        double sum = 0;
        for (DoubleWritable message : messages) {
            sum += message.get();/*from w  ww .ja  v  a2 s . c om*/
        }
        DoubleWritable vertexValue = new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum);
        vertex.setValue(vertexValue);
        aggregate(MAX_AGG, vertexValue);
        aggregate(MIN_AGG, vertexValue);
        aggregate(SUM_AGG, new LongWritable(1));
        LOG.info(vertex.getId() + ": PageRank=" + vertexValue + " max=" + getAggregatedValue(MAX_AGG) + " min="
                + getAggregatedValue(MIN_AGG));
    }

    if (getSuperstep() < MAX_SUPERSTEPS) {
        long edges = vertex.getNumEdges();
        sendMessageToAllEdges(vertex, new DoubleWritable(vertex.getValue().get() / edges));
    } else {
        vertex.voteToHalt();
    }
}

From source file:org.apache.giraph.examples.SimplePageRankVertex.java

License:Apache License

@Override
public void compute(Iterable<DoubleWritable> messages) {
    if (getSuperstep() >= 1) {
        double sum = 0;
        for (DoubleWritable message : messages) {
            sum += message.get();//from  w w  w  .j av a 2 s  .c o  m
        }
        DoubleWritable vertexValue = new DoubleWritable((0.15f / getTotalNumVertices()) + 0.85f * sum);
        setValue(vertexValue);
        aggregate(MAX_AGG, vertexValue);
        aggregate(MIN_AGG, vertexValue);
        aggregate(SUM_AGG, new LongWritable(1));
        LOG.info(getId() + ": PageRank=" + vertexValue + " max=" + getAggregatedValue(MAX_AGG) + " min="
                + getAggregatedValue(MIN_AGG));
    }

    if (getSuperstep() < MAX_SUPERSTEPS) {
        long edges = getNumEdges();
        sendMessageToAllEdges(new DoubleWritable(getValue().get() / edges));
    } else {
        voteToHalt();
    }
}

From source file:org.apache.giraph.examples.SimpleShortestPathsComputationTest.java

License:Apache License

/**
 * Test the behavior when a shorter path to a vertex has been found
 *//*from   w  w  w . j  av a  2s .  co m*/
@Test
public void testOnShorterPathFound() throws Exception {
    Vertex<LongWritable, DoubleWritable, FloatWritable> vertex = new DefaultVertex<LongWritable, DoubleWritable, FloatWritable>();
    SimpleShortestPathsComputation computation = new SimpleShortestPathsComputation();
    MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable, DoubleWritable> env = MockUtils
            .prepareVertexAndComputation(vertex, new LongWritable(7L), new DoubleWritable(Double.MAX_VALUE),
                    false, computation, 1L);
    Mockito.when(SOURCE_ID.get(env.getConfiguration())).thenReturn(2L);

    vertex.addEdge(EdgeFactory.create(new LongWritable(10L), new FloatWritable(2.5f)));
    vertex.addEdge(EdgeFactory.create(new LongWritable(20L), new FloatWritable(0.5f)));

    computation.compute(vertex, Lists.newArrayList(new DoubleWritable(2), new DoubleWritable(1.5)));

    assertTrue(vertex.isHalted());
    assertEquals(1.5d, vertex.getValue().get(), 0d);

    env.verifyMessageSent(new LongWritable(10L), new DoubleWritable(4));
    env.verifyMessageSent(new LongWritable(20L), new DoubleWritable(2));
}

From source file:org.apache.giraph.examples.SimpleShortestPathsComputationTest.java

License:Apache License

/**
 * Test the behavior when a new, but not shorter path to a vertex has been
 * found.//w  w w. j  av  a 2 s  . c  o m
 */
@Test
public void testOnNoShorterPathFound() throws Exception {
    Vertex<LongWritable, DoubleWritable, FloatWritable> vertex = new DefaultVertex<LongWritable, DoubleWritable, FloatWritable>();
    SimpleShortestPathsComputation computation = new SimpleShortestPathsComputation();
    MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable, DoubleWritable> env = MockUtils
            .prepareVertexAndComputation(vertex, new LongWritable(7L), new DoubleWritable(0.5), false,
                    computation, 1L);
    Mockito.when(SOURCE_ID.get(env.getConfiguration())).thenReturn(2L);

    vertex.addEdge(EdgeFactory.create(new LongWritable(10L), new FloatWritable(2.5f)));
    vertex.addEdge(EdgeFactory.create(new LongWritable(20L), new FloatWritable(0.5f)));

    computation.compute(vertex, Lists.newArrayList(new DoubleWritable(2), new DoubleWritable(1.5)));

    assertTrue(vertex.isHalted());
    assertEquals(0.5d, vertex.getValue().get(), 0d);

    env.verifyNoMessageSent();
}

From source file:org.apache.giraph.examples.SimpleShortestPathsTextComputation.java

License:Apache License

@Override
public void compute(Vertex<Text, DoubleWritable, FloatWritable> vertex, Iterable<DoubleWritable> messages)
        throws IOException {
    if (getSuperstep() == 0) {
        vertex.setValue(new DoubleWritable(Double.MAX_VALUE));
    }//ww w  .  j a v a2s  .  c o m
    double minDist = isSource(vertex) ? 0d : Double.MAX_VALUE;
    for (DoubleWritable message : messages) {
        minDist = Math.min(minDist, message.get());
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("Vertex " + vertex.getId() + " got minDist = " + minDist + " vertex value = "
                + vertex.getValue());
    }
    if (minDist < vertex.getValue().get()) {
        vertex.setValue(new DoubleWritable(minDist));
        for (Edge<Text, FloatWritable> edge : vertex.getEdges()) {
            double distance = minDist + edge.getValue().get();
            if (LOG.isDebugEnabled()) {
                LOG.debug(
                        "Vertex " + vertex.getId() + " sent to " + edge.getTargetVertexId() + " = " + distance);
            }
            sendMessage(edge.getTargetVertexId(), new DoubleWritable(distance));
        }
    }
    vertex.voteToHalt();
}

From source file:org.apache.giraph.examples.SimpleShortestPathsVertex.java

License:Apache License

@Override
public void compute(Iterable<DoubleWritable> messages) {
    if (getSuperstep() == 0) {
        setValue(new DoubleWritable(Double.MAX_VALUE));
    }/*  ww w  .  j av  a  2  s .co m*/
    double minDist = isSource() ? 0d : Double.MAX_VALUE;
    for (DoubleWritable message : messages) {
        minDist = Math.min(minDist, message.get());
    }
    if (LOG.isDebugEnabled()) {
        LOG.debug("Vertex " + getId() + " got minDist = " + minDist + " vertex value = " + getValue());
    }
    if (minDist < getValue().get()) {
        setValue(new DoubleWritable(minDist));
        for (Edge<LongWritable, FloatWritable> edge : getEdges()) {
            double distance = minDist + edge.getValue().get();
            if (LOG.isDebugEnabled()) {
                LOG.debug("Vertex " + getId() + " sent to " + edge.getTargetVertexId() + " = " + distance);
            }
            sendMessage(edge.getTargetVertexId(), new DoubleWritable(distance));
        }
    }
    voteToHalt();
}

From source file:org.apache.giraph.examples.SimpleShortestPathsVertexTest.java

License:Apache License

/**
 * Test the behavior when a shorter path to a vertex has been found
 *///from   ww w.  ja  va 2 s .com
@Test
public void testOnShorterPathFound() throws Exception {
    SimpleShortestPathsVertex vertex = new SimpleShortestPathsVertex();

    MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable, DoubleWritable> env = MockUtils
            .prepareVertex(vertex, 1L, new LongWritable(7L), new DoubleWritable(Double.MAX_VALUE), false);

    Mockito.when(SOURCE_ID.get(env.getConfiguration())).thenReturn(2L);

    vertex.addEdge(EdgeFactory.create(new LongWritable(10L), new FloatWritable(2.5f)));
    vertex.addEdge(EdgeFactory.create(new LongWritable(20L), new FloatWritable(0.5f)));

    vertex.compute(Lists.newArrayList(new DoubleWritable(2), new DoubleWritable(1.5)));

    assertTrue(vertex.isHalted());
    assertEquals(1.5d, vertex.getValue().get(), 0d);

    env.verifyMessageSent(new LongWritable(10L), new DoubleWritable(4));
    env.verifyMessageSent(new LongWritable(20L), new DoubleWritable(2));
}

From source file:org.apache.giraph.examples.SimpleShortestPathsVertexTest.java

License:Apache License

/**
 * Test the behavior when a new, but not shorter path to a vertex has been
 * found.//from   ww w  .  j a v  a  2s  .  c  om
 */
@Test
public void testOnNoShorterPathFound() throws Exception {

    SimpleShortestPathsVertex vertex = new SimpleShortestPathsVertex();

    MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable, DoubleWritable> env = MockUtils
            .prepareVertex(vertex, 1L, new LongWritable(7L), new DoubleWritable(0.5), false);

    Mockito.when(SOURCE_ID.get(env.getConfiguration())).thenReturn(2L);

    vertex.addEdge(EdgeFactory.create(new LongWritable(10L), new FloatWritable(2.5f)));
    vertex.addEdge(EdgeFactory.create(new LongWritable(20L), new FloatWritable(0.5f)));

    vertex.compute(Lists.newArrayList(new DoubleWritable(2), new DoubleWritable(1.5)));

    assertTrue(vertex.isHalted());
    assertEquals(0.5d, vertex.getValue().get(), 0d);

    env.verifyNoMessageSent();
}

From source file:org.apache.giraph.examples.SimpleShortestPathVertexTest.java

License:Apache License

/** test the behavior when a shorter path to a vertex has been found */
public void testOnShorterPathFound() throws Exception {

    SimpleShortestPathsVertex vertex = new SimpleShortestPathsVertex();
    vertex.addEdge(new LongWritable(10L), new FloatWritable(2.5f));
    vertex.addEdge(new LongWritable(20L), new FloatWritable(0.5f));

    MockUtils.MockedEnvironment<LongWritable, DoubleWritable, FloatWritable, DoubleWritable> env = MockUtils
            .prepareVertex(vertex, 1L, new LongWritable(7L), new DoubleWritable(Double.MAX_VALUE), false);

    Mockito.when(env.getConfiguration().getLong(SimpleShortestPathsVertex.SOURCE_ID,
            SimpleShortestPathsVertex.SOURCE_ID_DEFAULT)).thenReturn(2L);

    vertex.compute(Lists.newArrayList(new DoubleWritable(2), new DoubleWritable(1.5)).iterator());

    assertTrue(vertex.isHalted());// w w  w .  ja  v a 2  s  . c  om
    assertEquals(1.5, vertex.getVertexValue().get());

    env.verifyMessageSent(new LongWritable(10L), new DoubleWritable(4));
    env.verifyMessageSent(new LongWritable(20L), new DoubleWritable(2));
}