2017-11-14 5 views
0

sqoop exportによって作成されるログのサイズを制御する方法はありますか?一連のparquetファイルをhadoopクラスタからmicrosoft sql serverにエクスポートしようとしていて、マッパージョブの特定のポイントの後に進行が非常に遅くなったり凍結したりすることがあります。 hadoop Resourcemanagerを見ている現在の理論は、sqoopジョブからのログがプロセスをフリーズさせるサイズまでいっぱいになっているということです。sqoopエクスポートのログサイズを減らす方法

hadoopに新しくなり、助言をいただければ幸いです。ありがとう。

更新

リソースマネージャのWebインターフェイスからsqoopジャーアプリケーションのために凍結マップタスクの仕事の一つのsyslog出力を見てみると、ログ出力は次のようになります。

さらに
2017-11-14 16:26:52,243 DEBUG [communication thread] org.apache.hadoop.yarn.util.ProcfsBasedProcessTree: [ 8758 8840 ] 
2017-11-14 16:26:52,243 DEBUG [IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490] org.apache.hadoop.security.SaslRpcClient: reading next wrapped RPC packet 
2017-11-14 16:26:52,243 DEBUG [IPC Parameter Sending Thread #0] org.apache.hadoop.ipc.Client: IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490 sending #280 
2017-11-14 16:26:52,243 DEBUG [IPC Parameter Sending Thread #0] org.apache.hadoop.security.SaslRpcClient: wrapping token of length:751 
2017-11-14 16:26:52,246 DEBUG [IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490] org.apache.hadoop.security.SaslRpcClient: unwrapping token of length:62 
2017-11-14 16:26:52,246 DEBUG [IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490] org.apache.hadoop.ipc.Client: IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490 got value #280 
2017-11-14 16:26:52,246 DEBUG [communication thread] org.apache.hadoop.ipc.RPC: Call: statusUpdate 3 
2017-11-14 16:26:55,252 DEBUG [communication thread] org.apache.hadoop.yarn.util.ProcfsBasedProcessTree: [ 8758 8840 ] 
2017-11-14 16:26:55,252 DEBUG [IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490] org.apache.hadoop.security.SaslRpcClient: reading next wrapped RPC packet 
2017-11-14 16:26:55,252 DEBUG [IPC Parameter Sending Thread #0] org.apache.hadoop.ipc.Client: IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490 sending #281 
2017-11-14 16:26:55,252 DEBUG [IPC Parameter Sending Thread #0] org.apache.hadoop.security.SaslRpcClient: wrapping token of length:751 
2017-11-14 16:26:55,254 DEBUG [IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490] org.apache.hadoop.security.SaslRpcClient: unwrapping token of length:62 
2017-11-14 16:26:55,255 DEBUG [IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490] org.apache.hadoop.ipc.Client: IPC Client (<ipc_client_num>) connection to /<myipaddress>:23716 from job_1502069985038_3490 got value #281 
2017-11-14 16:26:55,255 DEBUG [communication thread] org.apache.hadoop.ipc.RPC: Call: statusUpdate 3 

プロセスを1日中実行させると、sqoopジョブは実際に終了するようですが、非常に長い時間がかかります(〜500MBの.tsvデータの場合〜4時間)。投稿質問のタイトルに対応して

+0

さらに詳しい情報が役に立ちます。ジョブ履歴サーバーのマッパージョブで何が起こっているのかが分かります。リモートサーバーに書き込むのを待っているジョブはありますか? – shainnif

+0

@shainnifアドバイスをいただきありがとうございます。最新のポストレスポンスをご覧ください。 – lampShadesDrifter

+1

これで、log4j.propertiesを探すことができます。これをlog4j.rootLogger = WARN、A1に変更すると、log4j.rootLogger = DEBUG、A1という行が表示されます。これにより、ログレベルが低下します。 – shainnif

答えて

0

、sqoopコマンドのログ出力を制御する方法があるのいずれか$ HADOOP_HOMEの/ etc/Hadoopのディレクトリにlog4j.propertiesファイルを編集して(sqoop apparentlyはそのを継承するためにこれを使用しているのでから私の最初の理論、しかし

sqoop export \ 
    -Dyarn.app.mapreduce.am.log.level=WARN\ 
    -Dmapreduce.map.log.level=WARN \ 
    -Dmapreduce.reduce.log.level=WARN \ 
    --connect "$connectionstring" \ 
    --driver com.microsoft.sqlserver.jdbc.SQLServerDriver \ 
    --table $tablename \ 
    --export-dir /tmp/${tablename^^}_export \ 
    --num-mappers 24 \ 
    --direct \ 
    --batch \ 
    --input-fields-terminated-by '\t' 

:プロパティ(ただし、私はnotsqoop2の場合もあり、これを伝えることができるものから))、または-Dプレフィックスとsqoop呼び出しでgeneric引数を使用することにより、例えばログ郵便局の本体である、そのsqoopジョブからのログはプロセスを引き起こしたサイズまでいっぱいでしたを凍らせるためには、ホールドアップしていないようでした。マップタスクのログサイズは、resourcemanager UIでは0バイトになりましたが、システムはまだ一定の割合までうまく流れていて、非常に遅い速度に落ちました。

関連する問題