flume使用(六):バックグラウンド起動およびログ表示

5052 ワード

ここではflumeバックグラウンドの起動方法について説明し、ログの表示を実行します.
文書ディレクトリ
  • 処理の問題
  • flumeバックグラウンド
  • を実行
  • flume実行ログ表示
  • nohupバックグラウンド起動表示コンソールログ
  • flume実行ログはlog 4 jに従う.properties構成出力
  • 処理する問題
    flumeの一般的な起動は自分で自動的に停止する問題があり、これはlinuxのプロセスメカニズムが彼を停止させた原因かもしれない.通常の動作:
    ./flume-ng agent -c ../conf -f ../conf/g01-taildir-avro-sink.conf -n agent1 -Dflume.root.logger=INFO,console
    

    flumeバックグラウンド運転
    Nohupは元のコマンドヘッダに追加し、&元のコマンドの末尾に追加します.
    nohup ./flume-ng agent -c ../conf -f ../conf/g01-taildir-avro-sink.conf -n agent1 -Dflume.root.logger=INFO,console &
    

    直接&を加えればいいと言われていますが、nohupを加えればconsoleで出力した実行ログをnohupに出力することができます.out中
    flume実行ログ表示
    ここでは2つの方法を紹介します
    Nohupバックグラウンド起動コンソールログの表示
    nohupと&を組み合わせた運転方式では、consoleの出力がflumeのbinディレクトリの下のnohupに指向する.outファイルにあります.
    多くのflumeブログではflumeの起動コマンドについて説明していますが、コマンドは実行ログをコンソールに印刷します.これは入門レベルのdemo実行方式ですが、実際にはflumeはもともと実行ログ出力位置を構成しています.以下のセクションで説明します.
    flume実行ログはlog 4 jに従う.properties構成出力
    flumeのプロファイルディレクトリおよびconfディレクトリにlog 4 jがある.propertiesプロファイルは、flume起動ログ出力位置を構成しています.
    【log4j.prpoerties】
    #
    # Licensed to the Apache Software Foundation (ASF) under one
    # or more contributor license agreements.  See the NOTICE file
    # distributed with this work for additional information
    # regarding copyright ownership.  The ASF licenses this file
    # to you under the Apache License, Version 2.0 (the
    # "License"); you may not use this file except in compliance
    # with the License.  You may obtain a copy of the License at
    #
    #  http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing,
    # software distributed under the License is distributed on an
    # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    # KIND, either express or implied.  See the License for the
    # specific language governing permissions and limitations
    # under the License.
    #
    
    # Define some default values that can be overridden by system properties.
    #
    # For testing, it may also be convenient to specify
    # -Dflume.root.logger=DEBUG,console when launching flume.
    
    #flume.root.logger=DEBUG,console
    flume.root.logger=INFO,LOGFILE
    flume.log.dir=./logs
    flume.log.file=flume.log
    
    log4j.logger.org.apache.flume.lifecycle = INFO
    log4j.logger.org.jboss = WARN
    log4j.logger.org.mortbay = INFO
    log4j.logger.org.apache.avro.ipc.NettyTransceiver = WARN
    log4j.logger.org.apache.hadoop = INFO
    log4j.logger.org.apache.hadoop.hive = ERROR
    
    # Define the root logger to the system property "flume.root.logger".
    log4j.rootLogger=${flume.root.logger}
    
    
    # Stock log4j rolling file appender
    # Default log rotation configuration
    log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender
    log4j.appender.LOGFILE.MaxFileSize=100MB
    log4j.appender.LOGFILE.MaxBackupIndex=10
    log4j.appender.LOGFILE.File=${flume.log.dir}/${flume.log.file}
    log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %-5p [%t] (%C.%M:%L) %x - %m%n
    
    
    # Warning: If you enable the following appender it will fill up your disk if you don't have a cleanup job!
    # This uses the updated rolling file appender from log4j-extras that supports a reliable time-based rolling policy.
    # See http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html
    # Add "DAILY" to flume.root.logger above if you want to use this
    log4j.appender.DAILY=org.apache.log4j.rolling.RollingFileAppender
    log4j.appender.DAILY.rollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy
    log4j.appender.DAILY.rollingPolicy.ActiveFileName=${flume.log.dir}/${flume.log.file}
    log4j.appender.DAILY.rollingPolicy.FileNamePattern=${flume.log.dir}/${flume.log.file}.%d{yyyy-MM-dd}
    log4j.appender.DAILY.layout=org.apache.log4j.PatternLayout
    log4j.appender.DAILY.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} %-5p [%t] (%C.%M:%L) %x - %m%n
    
    
    # console
    # Add "console" to flume.root.logger above if you want to use this
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.target=System.err
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d (%t) [%p - %l] %m%n
    
    

    しかし、多くのブロガーの命令はこうです.root.logger=INFO,console
    ./flume-ng agent -c ../conf -f ../conf/g01-taildir-avro-sink.conf -n agent1 -Dflume.root.logger=INFO,console
    

    -Dflume.root.logger=INFO,console 
    

    実行ログがコンソールに出力されることを示します.
    ログをlog 4 jに従うには.propertiesの構成を出力するには、起動時にjvmパラメータを追加する必要があります.このパラメータ項目はlog 4 jプロファイルで見つけることができ、-Dflumeを設定する必要があります.root.logger=INFO,LOGFILE
    flume.root.logger=INFO,LOGFILE
    flume.log.dir=./logs
    flume.log.file=flume.log
    

    このバーを削除するとlog 4 jの構成で対応するログファイルに出力できます
    注意、対応するログファイルに出力されていない場合は、flumeのlibパケットにlog 4 j依存jarパケットが含まれているかどうかを確認します.
    log4j-1.2.16.jar
    
    slf4j-api-1.6.4.jar
    
    slf4j-log4j12-1.6.1.jar