-
Notifications
You must be signed in to change notification settings - Fork 424
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TEZ-4451: ThreadLevel IO Stats Support for TEZ. #331
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
thanks for this PR @ayushtkn
|
This comment was marked as outdated.
This comment was marked as outdated.
Thanx @abstractdog for the review!!!
I have attached the snippet here, ran a small query to check if it is working, I chaged from previous to use IOStatisticsLogging,
I believe yes, Should be possible, I need to propagate the results back to the DAGAppMaster from each task and put up a aggregate, propagating back might be challenging, I will create a followup and explore
You mean to say in the Hive code here? TaskRunnerCallable.java |
fortunately, it's not that hard, task-level counters are collected automatically by tez framework, if you navigate on some occurrences of this enum, you'll figure out, it would awesome as a followup task
yes, exactly, however, I just realized that due to the independent LLAP IO Elevator threads, these IO stats can easily become useless noise there...anyway, we can investigate in the scope of a Hive ticket there |
Thanx, I have created TEZ-4539 for the DAG Level stuff |
@@ -28,6 +30,8 @@ | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
|
|||
import static org.apache.hadoop.fs.statistics.IOStatisticsContext.getCurrentIOStatisticsContext; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: if we import some classes from org.apache.hadoop.fs.statistics, couldn't we import them in the same way? is there a specific reason for static importing this method?
I guess these would look better together, like:
import org.apache.hadoop.fs.statistics.IOStatisticsLogging;
import org.apache.hadoop.fs.statistics.IOStatisticsContext;
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed it, somehow my IDE did that automatically...
💔 -1 overall
This message was automatically generated. |
@@ -116,6 +120,11 @@ public TaskRunner2CallableResult run() throws Exception { | |||
// For a successful task, however, this should be almost no delay since close has already happened. | |||
maybeFixInterruptStatus(); | |||
LOG.info("Cleaning up task {}, stopRequested={}", task.getTaskAttemptID(), stopRequested.get()); | |||
String ioStats = IOStatisticsLogging.ioStatisticsToPrettyString( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks good. you know you can take a snapshot of it and serialize it as java serializable or json; been some discussion about making a Writable too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Put IOStatistics in TaskRunner