2015-11-08 2 views
0

Я пытаюсь понять исходный код hadoop, отлаживая его с помощью eclipse. пока я его отладку, я встретил родную функцию с именем start0() здесь:
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b27/java/lang/Thread.java#Thread.start0%28%29Как я могу отлаживать встроенную функцию в исходном коде хауопа?

я могу отладить его с помощью затмения «или с помощью какого-либо внешнего инструмента» или, по крайней мере, я могу прочитать исходный код для этой функции?
Hadoop - это открытый исходный код, поэтому он предположил, что я могу получить доступ и прочитать код для всех функций в нем, но я не знаю, как это сделать.

Note: my hadoop version : 1.2.1 

Edit: Я читал о родной функции и от того, что я прочитал, класс, который содержит нативную функцию должен содержать что-то вроде этого:

`// load DLL that contains static method 
static { 
System.loadLibrary("NativeDemo"); 
}` 

но класс резьбы в Hadoop содержит следующее:
/* Make sure registerNatives is the first thing <clinit> does. */ 134 private static native void More ...registerNatives(); 135 static { 136 registerNatives(); 137 }

Так как я могу узнать имя библиотеки, которая начинается0() связана с?

ответ

0

Я наконец-то понял, что функция start0() является частью кода Java, не являющейся частью кода hadoop, так что это просто сделать/создать новый поток, чтобы запустить задание на нем и для разработки hadoop нам просто нужно знать, что:
Thread.start0 в конечном итоге создает новый поток операционной системы и вызывает Thread.run() в этом новом потоке.
также запустить функцию, которая вызывается после создания нового потока здесь: http://grepcode.com/file/repo1.maven.org/maven2/com.ning/metrics.collector/1.2.1/org/apache/hadoop/mapred/LocalJobRunner.java#LocalJobRunner.Job.run%28%29

0

Вы всегда можете получить исходный код. Пример файла конфигурации для вашей версии: here

+0

где находится исходный код для функции start0() в файле конфигурации? – Flowra

+0

Данная ссылка в основном относится к исходному коду Hadoop. Точка, о которой вы говорили выше, - это Thread.start(), которая будет вызвана вообще для нового процесса. Таким образом, вы не найдете start() в config – Ramzy

Смежные вопросы