#hadoop #hdfs #cloudera-cdh
#hadoop #hdfs #cloudera-cdh
Вопрос:
Некоторое время назад я обнаружил, что каждый из наших узлов данных постоянно считывает диски со скоростью ~ 10 м / с. Я обнаружил это с iotop
помощью утилиты.
Что я сделал до сих пор для его диагностики:
- Я пытался остановить различные службы в кластере, но он останавливается только тогда, когда я полностью останавливаю службу hdfs
- Я проверил журналы узла данных, но могу видеть только некоторые
HDFS_WRITE
операции s, происходящие каждые 1-2 минуты, ничего о чтении данных. Конечно, я проверял во время простоя
Некоторая информация о нашей системе:
- сейчас мы используем дистрибутив CDH версии 5.8, но проблема возникла несколько версий назад
- на данный момент в YARN нет запущенных заданий
- проблема существует уже несколько месяцев 24/7, и раньше ее не было
На данный момент моим главным подозреваемым является некоторый процесс аудита в CDH. К сожалению, я не смог найти никакой хорошей документации по администрированию этих процессов.
Вот информация о процессе узла данных из ps -ef
выходных данных:
hdfs 58093 6398 10 Oct11 ? 02:56:30 /usr/lib/jvm/java-8-oracle/bin/java -Dproc_datanode -Xmx1000m -Dhdfs.audit.logger=INFO,RFAAUDIT -Dsecurity.audit.logger=INFO,RFAS -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/var/log/hadoop-hdfs -Dhadoop.log.file=hadoop-cmf-hdfs-DATANODE-hadoop-worker-03.srv.mycompany.org.log.out -Dhadoop.home.dir=/opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/hadoop -Dhadoop.id.str=hdfs -Dhadoop.root.logger=INFO,RFA -Djava.library.path=/opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -server -Xms1073741824 -Xmx1073741824 -XX: UseParNewGC -XX: UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX: CMSParallelRemarkEnabled -XX:OnOutOfMemoryError=/usr/lib/cmf/service/common/killparent.sh -Dhadoop.security.logger=INFO,RFAS org.apache.hadoop.hdfs.server.datanode.DataNode
Я буду очень благодарен за любые подсказки по проблеме.
Комментарии:
1. какие еще узлы вы используете в окне с datanode?
2. Я надеюсь, что ни один / cron / script не запускает hdfs rebalancer, который балансирует данные с одного узла данных на другие узлы данных.
3. @PreetiKhurana когда я запускаю балансировщик, он немедленно завершает работу с сообщением «кластер сбалансирован»
4. @RatnakarPawar вы имеете в виду сервисы? Например, мы запускаем HBase, но, как я уже сказал, iotop точно указывает на процесс datanode, поэтому это должно быть что-то с HDFS.
5. хорошо, поместите wireshark / tcupdump на порт datanode и посмотрите, откуда поступают данные. Проследите до исходного IP-адреса и исходного порта и посмотрите, какое приложение учитывает его