2017-02-20 12 views
0

У меня есть десять sevrers, каждый из которых будет генерировать файлы журналов 3G каждый день. Я завершил учебное пособие по хаупу и установил каждый хаос (HDFS) на каждой машине. Я хочу использовать map-reduce для анализа этих журналов.Ручка Hadoop для журналов по нескольким узлам

Мой вопрос в том, как включить ежедневные журналы для MP в hadoop? В настоящее время на сервере А, я вручную скопировать файл журнала в каталоге HDFS:

>hadoop fs -put local_log_path /A/log_20170219.1 

, а затем

>hadoop jar MR_path MP_driver_class /A/log_20170219.1 output_path. 

Есть ли другие более эффективные способы, так что я не должен идти каждый сервера и скопировать вновь созданные журналы в систему DFS вручную? Влияет ли команда fs -put на большой файл данных?

ответ

1

Вы можете взглянуть на лоток Apache, который служит в этом случае для хранения журналов сервера в hdfs на основе конфигураций.

0

Существует множество способов достижения этого.

1) Если вы хотите использовать обычный способ, вы можете проверить distcp, это добавило преимущества перед обычной командой put или copyFromLocal. Distcp - это просто распределенная копия. Затем вы можете запланировать cron для выполнения distcp, а затем выполнить банку при успешном завершении копирования.

Для получения дополнительной информации: - https://hadoop.apache.org/docs/r1.2.1/distcp2.html

2) Если вы хотите, чтобы уменьшить эти усилия и использовать инструмент, то вы можете проверить любой инструмент заглатывания, такие как Flume, Splunk.