Abhishek Tiwari created GOBBLIN-71:
--------------------------------------

             Summary: KafkaSource isn't dynamically creating mappers
                 Key: GOBBLIN-71
                 URL: https://issues.apache.org/jira/browse/GOBBLIN-71
             Project: Apache Gobblin
          Issue Type: Bug
            Reporter: Abhishek Tiwari


According to the documentation, when the mr.job.max.mappers property isn't set 
in the job conf file, Gobblin will create one mapper for each workunit. But in 
practice we've found that it actually defaults to 100 mappers, and when there 
are fewer than 100 work units, the execution of the commit method on the empty 
/ idle mappers is triggering the error below. My question is: how can we enable 
the dynamic mapper creation behavior if possible, and if not and the 
documentation is wrong, how can we deal with the following exception appearing 
in the empty mapper logs:

> 2016-12-07 17:12:50,378 WARN [main] 
> org.apache.hadoop.metrics2.impl.MetricsConfig: Cannot locate configuration: 
> tried hadoop-metrics2-maptask.properties,hadoop-metrics2.properties
2016-12-07 17:12:50,510 INFO [main] 
org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 
10 second(s).
2016-12-07 17:12:50,510 INFO [main] 
org.apache.hadoop.metrics2.impl.MetricsSystemImpl: MapTask metrics system 
started
2016-12-07 17:12:50,527 INFO [main] org.apache.hadoop.mapred.YarnChild: 
Executing with tokens:
2016-12-07 17:12:50,528 INFO [main] org.apache.hadoop.mapred.YarnChild: Kind: 
mapreduce.job, Service: job_1473377625712_2174, Ident: 
(org.apache.hadoop.mapreduce.security.token.JobTokenIdentifier@4194e3ee)
2016-12-07 17:12:50,695 INFO [main] org.apache.hadoop.mapred.YarnChild: 
Sleeping for 0ms before retrying again. Got null now.
2016-12-07 17:12:51,166 INFO [main] org.apache.hadoop.mapred.YarnChild: 
mapreduce.cluster.local.dir for child: 
/hadoop/yarn/local/usercache/airflow/appcache/application_1473377625712_2174,/hadoop/yarn/local/usercache/airflow/appcache/application_1473377625712_2174,hadoop/yarn/local/usercache/airflow/appcache/application_1473377625712_2174
2016-12-07 17:12:51,833 INFO [main] 
org.apache.hadoop.conf.Configuration.deprecation: session.id is deprecated. 
Instead, use dfs.metrics.session-id
2016-12-07 17:12:52,491 INFO [main] org.apache.hadoop.mapred.Task:  Using 
ResourceCalculatorProcessTree : [ ]
2016-12-07 17:12:52,790 INFO [main] org.apache.hadoop.mapred.MapTask: 
Processing split: 
gobblin.runtime.mapreduce.GobblinWorkUnitsInputFormat$GobblinSplit@3d918345
2016-12-07 17:12:52,933 INFO [TaskExecutor STARTING] 
gobblin.runtime.TaskExecutor: Starting the task executor
2016-12-07 17:12:52,934 INFO [MRTaskStateTracker STARTING] 
gobblin.runtime.mapreduce.MRTaskStateTracker: Starting the task state tracker
2016-12-07 17:12:52,976 WARN [main] gobblin.runtime.GobblinMultiTaskAttempt: No 
work units to run in container attempt_1473377625712_2174_m_000003_0
2016-12-07 17:12:52,976 INFO [main] gobblin.runtime.AbstractJobLauncher: Will 
commit tasks directly.
2016-12-07 17:12:52,976 INFO [main] gobblin.runtime.mapreduce.MRJobLauncher: 
Starting the clean-up steps.
2016-12-07 17:12:52,978 INFO [TaskExecutor STOPPING] 
gobblin.runtime.TaskExecutor: Stopping the task executor
2016-12-07 17:12:52,978 INFO [MRTaskStateTracker STOPPING] 
gobblin.runtime.mapreduce.MRTaskStateTracker: Stopping the task state tracker
2016-12-07 17:12:52,978 INFO [MRTaskStateTracker STOPPING] 
gobblin.runtime.mapreduce.MRTaskStateTracker: Attempting to shutdown 
ExecutorService: 
java.util.concurrent.ScheduledThreadPoolExecutor@5868f6a9[Terminated, pool size 
= 0, active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,978 INFO [TaskExecutor STOPPING] 
gobblin.runtime.TaskExecutor: Attempting to shutdown ExecutorService: 
java.util.concurrent.ThreadPoolExecutor@32cf8dd6[Terminated, pool size = 0, 
active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,978 INFO [MRTaskStateTracker STOPPING] 
gobblin.runtime.mapreduce.MRTaskStateTracker: Successfully shutdown 
ExecutorService: 
java.util.concurrent.ScheduledThreadPoolExecutor@5868f6a9[Terminated, pool size 
= 0, active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,978 INFO [TaskExecutor STOPPING] 
gobblin.runtime.TaskExecutor: Successfully shutdown ExecutorService: 
java.util.concurrent.ThreadPoolExecutor@32cf8dd6[Terminated, pool size = 0, 
active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,978 INFO [TaskExecutor STOPPING] 
gobblin.runtime.TaskExecutor: Attempting to shutdown ExecutorService: 
java.util.concurrent.ScheduledThreadPoolExecutor@5319fe97[Terminated, pool size 
= 0, active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,978 INFO [TaskExecutor STOPPING] 
gobblin.runtime.TaskExecutor: Successfully shutdown ExecutorService: 
java.util.concurrent.ScheduledThreadPoolExecutor@5319fe97[Terminated, pool size 
= 0, active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,979 INFO [TaskExecutor STOPPING] 
gobblin.runtime.TaskExecutor: Attempting to shutdown ExecutorService: 
java.util.concurrent.ThreadPoolExecutor@44d20052[Terminated, pool size = 0, 
active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,979 INFO [TaskExecutor STOPPING] 
gobblin.runtime.TaskExecutor: Successfully shutdown ExecutorService: 
java.util.concurrent.ThreadPoolExecutor@44d20052[Terminated, pool size = 0, 
active threads = 0, queued tasks = 0, completed tasks = 0]
2016-12-07 17:12:52,979 WARN [main] org.apache.hadoop.mapred.YarnChild: 
Exception running child : java.lang.NullPointerException
        at 
gobblin.runtime.GobblinMultiTaskAttempt.commit(GobblinMultiTaskAttempt.java:102)
        at 
gobblin.runtime.AbstractJobLauncher.runAndOptionallyCommitTaskAttempt(AbstractJobLauncher.java:676)
        at 
gobblin.runtime.AbstractJobLauncher.runWorkUnits(AbstractJobLauncher.java:655)
        at 
gobblin.runtime.mapreduce.MRJobLauncher$TaskRunner.run(MRJobLauncher.java:602)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
        at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
        at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)


 
*Github Url* : https://github.com/linkedin/gobblin/issues/1443 
*Github Reporter* : *adammac1991* 
*Github Assignee* : [~shirshanka] 
*Github Created At* : 2016-12-08T17:28:47Z 
*Github Updated At* : 2017-04-14T23:25:13Z 
h3. Comments 
----
*ydai1124* wrote on 2017-04-14T23:25:13Z : Hi @adammac1991 , I believe the 
exception you saw has been fixed in the latest version. Can you try again? 
For the dynamic number of mappers, Kafka source has its own packing algorithm. 
It also creates empty workunits for partitions in previous state-store. Can you 
send us your job config file and also the log on the driver side? 
 
*Github Url* : 
https://github.com/linkedin/gobblin/issues/1443#issuecomment-294254955



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to