ソースからの Draco-ngsi のインストール¶
コンテンツ :
Draco-ngsiのインストール¶
fiware-Draco
をクローニング¶
Github リポジトリを複製することから始めます :
$ git clone https://github.com/ging/nifi.git
$ cd fiware-Draco
$ git checkout <branch>
<branch>
は通常、安定版リリース・ブランチにするべきです。
例えば release/2.0.0
。しかし、最新のリリースと同期される
master
または 最新の安定版ではない変更を含む develop
でも構いません。
この時点から Draco をインストールする方法は NiFi とまったく同じですので、オフィシャルの NiFi ドキュメントと 同じ手順を使用します。
Linux オペレーティング・システムの設定¶
メモ : Linux を使用している場合は、これらのベスト・ プラクティスを検討してください。典型的な Linux のデフォルトは、 NiFi のような I/O を多用するアプリケーションのニーズに合わせて 必ずしもうまく調整されていません。これらすべての分野で、 あなたのディストリビューションの要件は異なるかもしれません。 これらのセクションをアドバイスとして使用しますが、これらの 推奨事項を達成するための最善の方法については、 ディストリビューション固有のドキュメントを参照してください。
最大ファイル処理¶
NiFi はいつでも潜在的に非常に多数のファイルハンドルを開くでしょう。 "/etc/security/limits.conf" を編集して制限を増やします。
- hard nofile 50000
- soft nofile 50000
最大フォーク・プロセス¶
NiFi は、かなりの数のスレッドを生成するように設定されているかも しれません。許容数を増やすには、'/etc/security/limits.conf' を編集します。
- hard nproc 10000
- soft nproc 10000
そして、あなたのディストリビューションの /etc/security/limits.d/90-nproc.conf を次のように 編集する必要があります。
- soft nproc 10000
利用可能な TCP ソケットポートの数を増やす¶
これは、フローが短時間で多数のソケットをセットアップおよび 解放する場合に特に重要です。
sudo sysctl -w net.ipv4.ip_local_port_range="10000 65000"
ソケットが閉じたときに TIMED_WAIT 状態を維持する時間を設定¶
新しいソケットをすばやくセットアップして解放できるようにしたい場合は、 ソケットを長時間座ったままにしておく必要はありません。ソケットについて もっと読むことですが、以下のように調整することをお勧めします。
sudo sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait="1"
Linuxに NiFi をスワップしないことを設定¶
スワッピングはいくつかのアプリケーションにとって素晴らしいです。 常に実行していたい NiFi のようなものには向いていません。 Linux にスワップ・オフを設定するためには、 '/etc/sysctl.conf' を編集して次の行を追加します。
vm.swappiness = 0
パーティションを一時的に無効に設定¶
さまざまな NiFi リポジトリを扱うパーティションでは 'atime' のようなものをオフにします。これを行うと、スループットが驚くほど 向上する可能性があります。'/etc/fstab' ファイルを編集してください。 そして興味のあるパーティションに 'noatime' オプションを追加してください。
ビルド・ステップ¶
- 1.x NiFi ラインには、最近の Java 8 またはそれ以降の JDK が必要です。 古いJava 8 (1.8.0_31 など) はいくつかの単体テストで失敗することが 知られています。最新のバージョンを使うようにしてください。 0.x ラインは Java 7 以降で動作します
- Apache Maven 3.1.0 以降が必要です
- 1.x NiFi ライン用の最近の git クライアントが必要です
- MAVEN_OPTS に十分なメモリがあることを確認します。
いくつかのビルド手順はかなりメモリ集約的です
MAVEN_OPTS="-Xms1024m -Xmx3076m -XX:MaxPermSize=256m"
の設定はうまくいきました 5.コードベース全体を構築します。ソース・ツリーのルート・ディレクトリでmvn -T C2.0 clean install -Pinclude-grpc
を実行してください。- Maven のビルド設定は自由に調整できますが、前のコマンドは コアあたり2スレッドで実行されます。
- サポートしているプラットフォームを使用していない場合は、 '-Pinclude-grpc' を省略することができます。
これで、最新のコードベースから完全に機能するビルドを作成できたはずです。
注意 : 開発中にコード・ベース全体を構築する必要はありません。
通常、NAR バンドルを変更した場合は、特定のバンドルのみをビルドしてから、
nifi-assembly
で mvn -T C2.0 clean install -Ddir-only
を実行することができます。
アプリケーションを実行¶
警告¶
何も設定しないと、アプリケーションはポート 8080 で実行され、 フローの変更に資格情報は必要ありません。Apache NiFi を実行するための この手段は開発/テストのためにそして環境だけで使用されるべきです。 信頼できるコンピュータとユーザからの接続はポート 8080 に接続できます。 iptables を使って localhost 接続のみを許可する 8080 までは良い 方法ですが、複数の (潜在的に信頼されていない) ユーザがいるシステムでは、 十分な保護ではありません。
解凍して起動¶
上記のビルドを実行すると、./nifi-assembly/target
に、tar.gz および zip
ファイルが作成されます。この tar.gz は、完全なアプリケーションを含みます。
tar.gz を解凍すると、他のいくつかのディレクトリを含むディレクトリが作成されます。
conf はアプリケーション設定を含み、bin はアプリケーションを起動する
スクリプトを含みます。Linux と OSX では、NiFi は bin/nifi.sh <command>
を使って実行できます。<command>
は以下のいずれかです :
- start : NiFi をバックグラウンドで起動します
- stop : バックグラウンドで実行中の NiFi を停止します
- status : NiFi の現在のステータスを提供します
- run : NiFi をフォアグラウンドで実行し、Ctrl-C を受け取るのを待ってから、_ NiFi をシャットダウンします。
- install : NiFi を
service nifi start
,service nifi stop
,service nifi status
で制御可能なサービスとしてインストールします。 OSX ではなく、Linux でのみ利用可能です
Windows ユーザの場合、bin ディレクトリには以下のスクリプトがあります :
run-nifi.bat
: NiFi をフォアグラウンドで実行し、Ctrl+C を押すのを待ってから NiFi をシャットダウンしますstatus-nifi.bat
: NiFi の現在のステータスを提供します
Java のヒープ・サイズ、実行するユーザ、使用する Java コマンドなど、NiFi
を起動するときに使用される設定は conf/bootstrap.conf
ファイルを通して設定可能です。
アプリケーションを特定の OS に統合し、永続的なサービスとして実行する 方法の全体的な概念は、私たちが懸命に取り組んでいるものであり、そのための アイデアをいただければ幸いです。 ユーザ・エクスペリエンスは優れている必要があります。
デフォルト設定では Web ブラウザで http://localhost:8080/nifi/
に
アクセスします。
ロギングはデフォルトで ./logs/nifi-app.logv
にログするように
設定されています。次のログ・メッセージは Web UI が使用可能になったこと
を示しています。
2014-12-09 00:42:03,540 INFO [main] org.apache.nifi.web.server.JettyServer NiFi has started. The UI is available at the following URLs: