問題タブ [flume]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hbase - Flume "config"コマンドは、hbaseシンク(Cloudera)を使用するとEXECING状態のままになります
flumeを使用してログをhbaseにストリーミングしようとしています。分散フルームセットアップとhbaseクラスターを実行しています。どちらも同じZookeeperを使用しています。Flumeはさまざまなコマンド(テキスト、テール、カスタムシンクフィルター)を使用していますが、FlumeシェルまたはWebUIで次のコマンドを使用しようとすると次のようになります。
コマンドは、コマンドラインとWebUIの両方で永久にEXECING状態になります。
scala - Java / Scala for Hadoopでデータ分析パイプラインを構築するための最も成熟したライブラリは何ですか?
私は最近多くのオプションを見つけました、そしてそれらの比較において主に成熟度と安定性によって興味深いものでした。
- クランチ-https ://github.com/cloudera/crunch
- Scrunch- https://github.com/cloudera/crunch/tree/master/scrunch
- カスケード-http ://www.cascading.org/
- スカルディング https://github.com/twitter/scalding
- FlumeJava
- Scoobi- https://github.com/NICTA/scoobi/
logging - Flumeフローの分離
水路で作成したい2つの異なるログフローがあります。これらのフローにはさまざまなログメッセージが含まれているため、個別に処理すると便利です。
トポロジー
私の構成は次のようになります。
a0
ログが作成さa1
れたソースです。
dst
ログエントリを(HDFSに)ログに記録する宛先です。
構成
flumeシェルからのノード構成は次のとおりです。
問題
ここで説明されているように新しい水路フローを作成しようとすると、次のエラーが発生します。
ログには何もありません。このdue to null
エラーでは何もできません。
flume - flume-nodeコマンドを使用して、同じマシンでエージェントノードとコレクターノードを実行するにはどうすればよいですか?
Flumeを使用して集計ログをテストしようとしています。
CDH3u3(ネームノード、セカンダリネームノード、ジョブトラッカー、データノード、タスクトラッカー)とFlume(flume、flume-master、flume-node)をubuntuマシンにインストールしhost1
ました。Flumeのインストールについては、 https: //ccp.cloudera.com/display/CDHDOC/Flume+Installationをフォローしました。
同じノードでFlumeマスター、コレクターノード、エージェントノードを実行したい。プレーンflume
コマンドを使用すると、3つのサービスすべてを正常に実行できます:(参照:http ://ankitasblogger.blogspot.com/2011/05/installing-flume-in-cluster-complete.html )
ただし、次を使用して2つのノードを実行することはできませんflume-node
。
flume-node
コマンドにノード名を付けることができず、 。という名前のノードが作成されるだけhost1.host.com
です。
flume
同じマシン上に複数のノードが必要な場合は、代わりに使用する必要がflume-master
ありflume-node
ますか?stdoutにログを記録しながら、ログパスを通知するので、より便利だflume-master
と思います。flume-node
flume
flume - ウィンドウ OS への Flumes のインストール
こんにちは、私は Flume を初めて使用します。Flumes 0.9.3 バージョンをインストールし、ウィンドウ OS でノードを起動できました。
しかし、前進するには、特定の基本的なものが必要です。フルムを完全にセットアップするのを手伝ってくれる人はいますか?
- Flumes エージェントをセットアップし、ファイル共有やサーバー ログなどの任意のソースを使用して構成する方法
- Flumes コレクターのセットアップ方法
- エージェントのシンクがファイルをコレクターにプッシュする方法
- Flumes マスターをインストールし、複数のエージェントとコレクターで構成する方法
- Flumes コレクターを HDFS と統合する方法。
hbase - Flume の hbase() シンクに望ましいログ形式は何ですか?
私が使用するログ形式は JSON で、15 個のキーと値のペアがあります。
次の構成は、Flume コレクター ノードがログを解析して HBase に保存するためのものです。
これらのキーと値のスタイルのログを HBase に効率的に保存するには、もっと良い方法があると思います。
HBase シンク用に選択したログ形式は何ですか?
シンクを から に変更するhbase()
予定ですが、その前に、より効率的な生ログ形式に関するアドバイスと、およびシンクattr2hbase()
のヒントを得たいと思います。hbase()
attr2hbase()
java - apache httpclientを使用してTwitterのストリーミングAPIを段階的に処理しますか?
Apache HTTPClient 4を使用して、デフォルトレベルのアクセスでTwitterのストリーミングAPIに接続しています。最初は完全に機能しますが、データを取得して数分後、次のエラーが発生します。
私はこの問題に直面している理由を理解しています。このHttpClientを水路クラスターで水路ソースとして使用しようとしています。コードは次のようになります。
応答ストリーム内の30,000文字をStringBufferにバッファリングし、これを受信したデータとして返そうとしています。私は明らかに接続を閉じていませんが、まだ接続を閉じたくないと思います。Twitterの開発ガイドはこれについてここで話しますそれは読みます:
一部のHTTPクライアントライブラリは、サーバーによって接続が閉じられた後にのみ応答本文を返します。これらのクライアントは、ストリーミングAPIにアクセスするためには機能しません。応答データを段階的に返すHTTPクライアントを使用する必要があります。最も堅牢なHTTPクライアントライブラリがこの機能を提供します。たとえば、ApacheHttpClientはこのユースケースを処理します。
HttpClientが応答データを段階的に返すことを明確に示しています。例とチュートリアルを確認しましたが、これに近いものは見つかりませんでした。httpclient(apacheでない場合)を使用して、TwitterのストリーミングAPIを段階的に読んだことがある場合は、この偉業をどのように達成したかをお知らせください。まだお持ちでない方は、お気軽にご回答ください。TIA。
アップデート
これを試してみました:1)ストリームハンドルの取得を水路ソースのopenメソッドに移動しました。2)単純な入力ストリームを使用し、データをバイトバッファに読み込みます。メソッド本体は次のようになります。
これはある程度機能します-私はツイートを受け取ります、それらは目的地にうまく書かれています。問題は、instream.read(buffer)の戻り値にあります。ストリームにデータがなく、バッファにデフォルトの\ u0000バイトと30,000バイトがある場合でも、この値は宛先に書き込まれます。したがって、宛先ファイルは次のようになります。 "tweets..tweets..tweeets .. \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 \ u0000 ...tweets..tweets..."。カウントが-1cozを返さないことを理解しています。これは終わりのないストリームです。したがって、読み取りコマンドからバッファーに新しいコンテンツがあるかどうかを確認するにはどうすればよいですか。
flume - 尻尾を使って同じ場所から水路が続く
最近、flume を使用していくつかの試みを行いました。主に、フロント エンド サーバーからバック エンド サーバーにデータをストリーミングして処理します。これは、ローカルの「ログ」ファイルを作成し、flume でそれらを追跡することによって行われました。問題は、flume ノードを再起動すると、ディレクトリ内のすべてのファイルが再送信されることでした。これを効果的に管理する方法はありますか?Flume がファイルの処理を終了したというイベントを発生させることはできますか? チェックポイントが組み込まれていますか?
そうでない場合、そのようなことを行うためのアプローチは何でしょうか?
syslog - Flume syslogTcp がコンソールに出力されない
私はflumeを初めて使用し、flumeのユーザーガイドを読んでいます。このページに示されている単純な syslogTcp デモを実行しようとしたときに行き詰まりました。
私が実行する1つの端末でflume dump 'syslogTcp(5140)'
私が実行する2番目の端末で:$ echo "hello via syslog" | nc -t localhost 5140
しかし、コンソールに出力がありません(テールやファイルなどの他のソースをテストしたときに得たように)
Flume は正常に動作しているようです。ポート 5140 で telnet 経由で接続できます。lsof を実行すると、次のように表示されます。
どうすればこれをデバッグできますか?
ヤリブ・アザッチ
PS これは、flume syslogTcp を開始したときの出力です。
java - Hadoop Flume log4j 構成
Hadoop Flume ノードを実行すると、デフォルトで、log4j を使用して /var/log/flume の下にログが生成されます。ファイルは次のようになります
こちらのflumeユーザーガイドによると、flumeログ構成を変更する唯一の方法は、次のようなFlume環境変数を使用してflumeノードを実行するflume-daemon.shを使用することです。
質問は次のとおりです。
- ログ レベルを INFO から DEBUG に変更したい場合、ここでしか変更できませんか?
- これを行うことができる構成はどこかにありますか?
- 一部のパッケージのログ レベルを DEBUG に設定し、他のパッケージを INFO のままにしたいのはどうですか?