2017-06-28 8 views
0

私はHive on Tezの寄木張りとして格納されたテーブルでカスタムUDAFを実行しています。私たちのHiveジョブはYARN上で実行され、すべてAmazon EMRに設定されています。しかし、私たちが持っている寄木細工のデータが古いバージョンのParquet(1.5)で生成されているため、YARNログをいっぱいにしてジョブが終了する前にディスクの空き領域がなくなるという警告が表示されています。

これは警告です:寄木細工の警告Amazon EMRのHive MapReduceのログを書き込む

PM警告:org.apache.parquet.CorruptStatistics:CREATED_BYは解析できませんでしたので、 統計 を無視(PARQUET-251を参照してください):寄木細工-MRバージョン

スタックトラックも印刷されます。私は無用に警告ログを静かにしようとしています。私は、この警告以外のすべての種類のログをオフにすることができました。私はの輪郭を描いたAWS設定を使用して、Log4jの設定ファイルをすべて変更しようとしました。私がこれまで試してみました

もの:

  1. (つまり、AWSは、構成のために必要となるものですので、JSON形式でそれらを書く)私はTEZ-site.xmlので以下の設定を設定しそれが適切なXMLであります実際のインスタンスでのフォーマット

    "tez.am.log.level": "OFF", 
    "tez.task.log.level": "OFF", 
    "tez.am.launch.cluster-default.cmd-opts": "-Dhadoop.metrics.log.level=OFF -Dtez.root.logger=OFF,CLA", 
    "tez.task-specific.log.level": "OFF;org.apache.parquet=OFF" 
    
  2. 私はmapred-site.xmlので以下の設定を持っています。これらの設定は、問題の警告を除いて、YARNログで発生するすべてのログを有効に無効にしました。

    "mapreduce.map.log.level": "OFF", 
        "mapreduce.reduce.log.level": "OFF", 
        "yarn.app.mapreduce.am.log.level": "OFF" 
    
  3. 私は、以前のAWSのリンクに表示されたリストで見つかったほぼすべての他のlog4j.propertiesファイル.Iにこれらの設定を持っています。

    "log4j.logger.org.apache.parquet.CorruptStatistics": "OFF", 
        "log4j.logger.org.apache.parquet": "OFF", 
        "log4j.rootLogger": "OFF, console" 
    

は、正直なところ、この時点で、私はいくつかの方法は、ログをオフにして、何とか実行中のジョブを取得見つけたいです。私はこのような問題についてはlinkのlog4j設定を変更して修正しましたが、これはSparkのもので、Hive/TezとAmazonではうまく動作していないようです。どんな助けもありがとうございます。

答えて

0

これで、すべての単一データノードとEMRのマスターノードのJava logging.propertiesファイルを変更して、この問題を修正しました。私の場合、ファイルは/etc/alternatives/jre/lib/logging.propertiesにありました

ブートストラップアクションファイルにシェルコマンドを追加して、プロパティファイルの最後に次の2行を自動的に追加しました:

これはあるよう

SEVERE org.apache.parquet.CorruptStatistics.level =ちょうど他のケースの誰に更新したかった

org.apache.parquet.level = SEVERE

は同じ問題に直面しました本当に適切に設定されていないAmazonによって、試行錯誤が多く必要でした。

関連する問題