Повреждение данных при манипулировании большими данными
Недавно у меня возникли очень странные проблемы с повреждением данных. В основном то, что я делаю, это:
- Передача некоторых больших данных (50 файлов, каждый размером около 8 ГБ) с одного сервера на hpcc(высокопроизводительные вычисления) с помощью "scp"
- Обработайте каждую строку входных файлов, а затем добавьте / запишите эти измененные строки в выходные файлы. И я делаю это на 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
Однако странная часть: время от времени я могу видеть повреждение данных в некоторых частях моих данных.
Во-первых, я просто обнаружил, что некоторые из моих "входных" данных повреждены (не ВСЕ); тогда я просто сомневаюсь, что это проблема "scp". Я спрашиваю некоторых компьютерных парней, а также пишу здесь, но, похоже, очень мало шансов, что scp может исказить данные. И я просто делаю "scp", чтобы снова перенести мои данные в hpcc; и входные данные на этот раз становятся нормальными. странно, правда? Так что это заставляет меня задуматься: возможно ли, что входные данные могут быть нарушены при использовании для запуска программ, интенсивно использующих память / ЦП?
Если входные данные повреждены, вполне естественно, что выходные данные также повреждены. Хорошо, тогда я снова передаю входные данные в 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