Я использую пример программы WordCount на Hadoop для обработки большого набора небольших файлов / веб-страниц (примерно 2–3 КБ). Поскольку это далеко от оптимального размера файла для файлов hadoop, программа работает очень медленно. Я думаю, это потому, что стоимость установки и разрыва работы намного выше, чем сама работа. Такие небольшие файлы также вызывают истощение пространств имен для имен файлов.
Я прочитал, что в этом случае мне следует использовать архив HDFS (HAR), но я не уверен, как изменить эту программу WordCount для чтения из этих архивов. Может ли программа продолжать работать без модификаций или необходимы какие-то модификации?
Даже если я запаковываю много файлов в архивы, остается вопрос, улучшит ли это производительность. Я читал, что даже если я упакую несколько файлов, эти файлы внутри одного архива будут обрабатываться не одним картографом, а множеством, что в моем случае (я полагаю) не улучшит производительность.
Если этот вопрос слишком прост,
h [] = ничего
h (x: _) = Просто x и с функцией k: k :: Char -> Int
k = или выполняется условие естественности ... Я могу определить естественное преобразование в Haskell как: , а с функцией k: условие естественности выполняется благодаря тому, что: Можно ли аналогичным образом продемонстрировать условие естественности функции h :: [a] -> Maybe a
h [] = Nothing
h (x:_) = Just x
k :: Char -> Int
k = ord
ч. fmap k
== fmap k. h
join
монады List? У меня возникли проблемы с пониманием того, как join
, например concat
, является естественным преобразованием.