Hive on Tez に寄木細工として保存されたテーブルでカスタム UDAF を実行しています。Hive ジョブは YARN で実行され、すべて Amazon EMR でセットアップされます。ただし、私たちが持っている寄木細工のデータが古いバージョンの寄木細工 (1.5) で生成されたという事実により、YARN ログがいっぱいになり、ジョブが終了する前にディスクの容量が不足するという警告が表示されます。
これは警告です:
PM 警告: org.apache.parquet.CorruptStatistics: created_by を解析できなかったため、統計を無視しています (PARQUET-251 を参照): parquet-mr バージョン
また、スタック トラックも出力します。警告ログを黙らせようとしましたが、役に立ちませんでした。この警告を除いて、ほぼすべての種類のログをオフにすることができました。ここで概説されているように、AWS config を使用して、ほぼすべての Log4j 設定ファイルを変更しようとしました。
私がこれまでに試したこと:
tez-site.xmlで次の設定を行います(JSON 形式で記述します。これは、AWS が構成に必要とするためです)。もちろん、実際のインスタンスでは適切な 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"
mapred-site.xmlに次の設定があります。これらの設定により、問題の警告を除いて、YARN ログで発生するすべてのログが効果的にオフになりました。
"mapreduce.map.log.level": "OFF", "mapreduce.reduce.log.level": "OFF", "yarn.app.mapreduce.am.log.level": "OFF"
これらの設定は、他のほぼすべてのlog4j.propertiesファイルに含まれています。前の AWS リンクに示されているリストで見つけました。
"log4j.logger.org.apache.parquet.CorruptStatistics": "OFF", "log4j.logger.org.apache.parquet": "OFF", "log4j.rootLogger": "OFF, console"
正直なところ、現時点では、何らかの方法でログをオフにして、何らかの方法でジョブを実行したいだけです。このリンクなど、log4j 設定を変更して修正した同様の問題について読んだことが ありますが、これは Spark 用であり、Hive/Tez および Amazon では機能していないようです。どんな助けでも大歓迎です。