Повреждение данных для обработки больших данных - PullRequest
1 голос
/ 11 декабря 2011

Недавно у меня возникла очень странная проблема с повреждением данных. В основном то, что я делаю, это:

  1. Передача некоторых больших данных (50 файлов, каждый размером около 8 ГБ) с одного сервера на hpcc (высокопроизводительные вычисления) с использованием «scp»
  2. Обрабатывать каждую строку входных файлов, а затем добавлять / записывать эти измененные строки в выходные файлы. И я делаю это на hpcc с помощью «qsub -t 1-1000 xxx.sh», то есть выбрасывает все 1000 заданий одновременно. Кроме того, эти 1000 заданий в среднем используют 4 ГБ памяти каждая.

Основной формат моего сценария:

f=open(file)
for line in f:
#process lines

или

f=open(file).readlines()
#process lines

Однако странная часть такова: время от времени я могу видеть повреждение данных в некоторых частях моих данных.

  1. Во-первых, я просто обнаружил, что некоторые из моих «входных» данных повреждены (не ВСЕ); тогда я просто сомневаюсь, что это проблема "scp". Я спрашиваю некоторых компьютерных парней, а также пишу здесь, но, похоже, очень мало шансов, что 'scp' может исказить данные. И я просто делаю "scp", чтобы снова перенести мои данные в hpcc; и входные данные на этот раз становятся нормальными. странно, правда? Так что это заставляет меня задуматься: возможно ли, что входные данные могут быть нарушены при использовании для запуска программ, интенсивно использующих память / ЦП?

  2. Если входные данные повреждены, вполне естественно, что выходные данные также повреждены. Хорошо, тогда я снова передаю входные данные в hpcc и проверяю, что все они в хорошей форме, затем я запускаю программы (следует отметить: выполнить 1000 заданий вместе) и выходные файлы ... большинство из них хорошо; однако очень удивительно, что часть только одного файла повреждена! Так что я просто снова запускаю программу для этого конкретного файла, а затем получаю хороший вывод без каких-либо повреждений !! Я в таком замешательстве ...... Увидев так много странных вещей, я могу сделать единственный вывод: может быть, одновременное выполнение большого количества работ с большим объемом памяти повредит данные? (Но я также запускал много таких заданий, и, кажется, все в порядке)

А под искажением данных я подразумеваю:

Примерно так:

CTTGTTACCCAGTTCCAAAG9583gfg1131CCGGATGCTGAATGGCACGTTTACAATCCTTTAGCTAGACACAAAAGTTCTCCAAGTCCCCACCAGATTAGCTAGACACAGAGGGCTGGTTGGTGCATCT0/1
gfgggfgggggggggggggg9583gfg1131CCGGAfffffffaedeffdfffeffff`fffffffffcafffeedffbfbb[aUdb\``ce]aafeeee\_dcdcWe[eeffd\ebaM_cYKU]\a\Wcc0/1
CTTGTTACCCAGTTCCAAAG9667gfg1137CCGGATCTTAAAACCATGCTGAGGGTTACAAA1AGAAAGTTAACGGGATGCTGATGTGGACTGTGCAAATCGTTAACATACTGAAAACCTCT0/1
gfgggfgggggggggggggg9667gfg1137CCGGAeeeeeeeaeeb`ed`dadddeebeeedY_dSeeecee_eaeaeeeeeZeedceadeeXbd`RcJdcbc^c^e`cQ]a_]Z_Z^ZZT^0/1

Однако это должно быть как:

@HWI-ST150_0140:6:2204:16666:85719#0/1
TGGGCTAAAAGGATAAGGGAGGGTGAAGAGAGGATCTGGGTGAACACACAAGAGGCTTAAAGCATTTTATCAAATCCCAATTCTGTTTACTAGCTGTGTGA
+HWI-ST150_0140:6:2204:16666:85719#0/1
gggggggggggggggggfgggggZgeffffgggeeggegg^ggegeggggaeededecegffbYdeedffgggdedffc_ffcffeedeffccdffafdfe
@HWI-ST150_0140:6:2204:16743:85724#0/1
GCCCCCAGCACAAAGCCTGAGCTCAGGGGTCTAGGAGTAGGATGGGTGGTCTCAGATTCCCCATGACCCTGGAGCTCAGAACCAATTCTTTGCTTTTCTGT
+HWI-ST150_0140:6:2204:16743:85724#0/1
ffgggggggfgeggfefggeegfggggggeffefeegcgggeeeeebddZggeeeaeed[ffe^eTaedddc^Oacccccggge\edde_abcaMcccbaf
@HWI-ST150_0140:6:2204:16627:85726#0/1
CCCCCATAGTAGATGGGCTGGGAGCAGTAGGGCCACATGTAGGGACACTCAGTCAGATCTATGTAGCTGGGGCTCAAACTGAAATAAAGAATACAGTGGTA
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...