Каждый узел Spark должен загружать классы, необходимые для выполнения вашей логики. В вашем случае это класс с методом countFileWords
Чтобы решить вашу проблему, вы должны сделать следующие шаги:
countFileWords
в отдельный модуль (вам нужен jar-файл с классом, в котором реализован countFileWords
) WordCountService
public void addJar(String path)
public void addJar (String path) Добавляет зависимость JAR для всех задач, которые будут выполняться в этом SparkContext в будущем. Переданный путь может быть либо локальным файлом, файлом в HDFS (или другими файловыми системами, поддерживаемыми Hadoop), либо URI HTTP, HTTPS или FTP.
BLOCKQUOTE>
Прошло много времени с тех пор, как я работал над обработкой прерываний клавиатуры, но я думаю, что вам не хватает на самом деле обработки аппаратного обеспечения клавиатуры, поэтому оно устранит состояние прерывания и будет готово к генерировать другое прерывание.
Что-то вроде:
in al, 60h ; Read input buffer
может быть все, что нужно.
Если у меня будет возможность, я посмотрю, есть ли у меня какие-нибудь старые заметки или код, который лежал еще когда я писал драйверы клавиатуры.
Мое предположение (я никогда не писал обработчик прерывания клавиатуры) заключается в том, что вам также необходимо поговорить с аппаратным обеспечением клавиатуры, чтобы получить нажатие клавиши (иначе клавиатура не будет знать, когда генерировать следующее прерывание).
Это только предположение, но, возможно, проблема в том, что вы вызываете int 10h из обработчика int 9h. Попробуйте записать в экранную память напрямую (просто увеличьте байт на 0b800h: 0 и проверьте верхний левый символ на экране). Если он увеличивается при каждом нажатии клавиши, вам не следует вызывать int 10h из int 9h.