mirror of https://github.com/apache/druid.git
add better messaging and error handling
This commit is contained in:
parent
e63c69dd57
commit
52cdb20f10
|
@ -94,6 +94,7 @@ druid.db.connector.user=druid
|
||||||
druid.db.connector.password=diurd
|
druid.db.connector.password=diurd
|
||||||
|
|
||||||
druid.selectors.indexing.serviceName=overlord
|
druid.selectors.indexing.serviceName=overlord
|
||||||
|
druid.indexer.queue.startDelay=PT0M
|
||||||
druid.indexer.runner.javaOpts="-server -Xmx1g"
|
druid.indexer.runner.javaOpts="-server -Xmx1g"
|
||||||
druid.indexer.runner.startPort=8088
|
druid.indexer.runner.startPort=8088
|
||||||
druid.indexer.fork.property.druid.computation.buffer.size=268435456
|
druid.indexer.fork.property.druid.computation.buffer.size=268435456
|
||||||
|
@ -246,17 +247,19 @@ Issuing a [TimeBoundaryQuery](TimeBoundaryQuery.html) should yield:
|
||||||
} ]
|
} ]
|
||||||
```
|
```
|
||||||
|
|
||||||
Problems?
|
Console
|
||||||
---------
|
--------
|
||||||
|
|
||||||
If you decide to reuse the local firehose to ingest your own data and if you run into problems, you can read the individual task logs at:
|
The indexing service overlord has a console located as:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
<Current working directory>/log/<task_id>.log
|
localhost:8087/console.html
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
One thing to note is that the log file will only exist once the task completes with either SUCCESS or FAILURE.
|
On this console, you can look at statuses and logs of recently submitted and completed tasks.
|
||||||
|
|
||||||
|
If you decide to reuse the local firehose to ingest your own data and if you run into problems, you can use the console to read the individual task logs.
|
||||||
|
|
||||||
Task logs can be stored locally or uploaded to [Deep Storage](Deep-Storage.html). More information about how to configure this is [here](Configuration.html).
|
Task logs can be stored locally or uploaded to [Deep Storage](Deep-Storage.html). More information about how to configure this is [here](Configuration.html).
|
||||||
|
|
||||||
Most common data ingestion problems are around timestamp formats and other malformed data issues.
|
Most common data ingestion problems are around timestamp formats and other malformed data issues.
|
||||||
|
|
|
@ -368,6 +368,9 @@ public class OverlordResource
|
||||||
@Produces("application/json")
|
@Produces("application/json")
|
||||||
public Response getScalingState()
|
public Response getScalingState()
|
||||||
{
|
{
|
||||||
|
if (!taskMaster.getResourceManagementScheduler().isPresent()) {
|
||||||
|
return Response.ok().build();
|
||||||
|
}
|
||||||
return asLeaderWith(
|
return asLeaderWith(
|
||||||
taskMaster.getResourceManagementScheduler(),
|
taskMaster.getResourceManagementScheduler(),
|
||||||
new Function<ResourceManagementScheduler, Response>()
|
new Function<ResourceManagementScheduler, Response>()
|
||||||
|
|
|
@ -59,8 +59,8 @@
|
||||||
<div class="workers_loading">Loading Workers... this may take a few minutes</div>
|
<div class="workers_loading">Loading Workers... this may take a few minutes</div>
|
||||||
<table id="workerTable"></table>
|
<table id="workerTable"></table>
|
||||||
|
|
||||||
<h2>Event Log</h2>
|
<h2>Autoscaling Activity</h2>
|
||||||
<div class="events_loading">Loading Event Log... this may take a few minutes</div>
|
<div class="events_loading">Loading Autoscaling Activities... this may take a few minutes</div>
|
||||||
<table id="eventTable"></table>
|
<table id="eventTable"></table>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
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.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
import com.metamx.common.ISE;
|
||||||
import io.druid.data.input.Firehose;
|
import io.druid.data.input.Firehose;
|
||||||
import io.druid.data.input.FirehoseFactory;
|
import io.druid.data.input.FirehoseFactory;
|
||||||
import io.druid.data.input.impl.FileIteratingFirehose;
|
import io.druid.data.input.impl.FileIteratingFirehose;
|
||||||
|
@ -78,9 +79,7 @@ public class LocalFirehoseFactory implements FirehoseFactory
|
||||||
@Override
|
@Override
|
||||||
public Firehose connect() throws IOException
|
public Firehose connect() throws IOException
|
||||||
{
|
{
|
||||||
final LinkedList<File> files = Lists.<File>newLinkedList(
|
File[] foundFiles = baseDir.listFiles(
|
||||||
Arrays.<File>asList(
|
|
||||||
baseDir.listFiles(
|
|
||||||
new FilenameFilter()
|
new FilenameFilter()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
|
@ -89,10 +88,17 @@ public class LocalFirehoseFactory implements FirehoseFactory
|
||||||
return name.contains(filter);
|
return name.contains(filter);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if (foundFiles == null || foundFiles.length == 0) {
|
||||||
|
throw new ISE("Found no files to ingest! Check your schema.");
|
||||||
|
}
|
||||||
|
|
||||||
|
final LinkedList<File> files = Lists.<File>newLinkedList(
|
||||||
|
Arrays.asList(foundFiles)
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
return new FileIteratingFirehose(
|
return new FileIteratingFirehose(
|
||||||
new Iterator<LineIterator>()
|
new Iterator<LineIterator>()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue