cygnus-twitter docker

コンテンツ:

始める前に

docker がインストールされ、実行されている必要があります。この公式スタートガイドをチェックしてください。

トップ

イメージを取得

ソースからのビルド

fiware-cygnus リポジトリをクローンすることから始めます :

$ git clone https://github.com/telefonicaid/fiware-cygnus.git

ディレクトリを変更します :

$ cd fiware-cygnus/docker/cygnus-twitter

次のコマンドを実行します :

$ docker build -t cygnus-twitter .

しばらく時間がかかることがあります。完了したら、docker で利用可能なイメージを確認するには、次のように入力します :

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
cygnus-twitter      latest              df556c817163        About a minute ago   1.132 GB
centos              6                   61bf77ab8841        4 weeks ago          228.9 MB

トップ

Docker Hub イメージの使用

イメージを最初から構築する代わりに、hub.docker.com からダウンロードすることができます :

$ docker pull fiware/cygnus-twitter

上記と同じ方法でリストすることができます :

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
cygnus-twitter      latest              df556c817163        About a minute ago   1.132 GB
centos              6                   61bf77ab8841        4 weeks ago          228.9 MB

トップ

イメージを使用

そのまま

cygnus-twitter イメージ(最初から作成したもの、hub.docker.comからダウンロードしたもの)は、Twitter からのツイートを受信して HDFS ストレージに保存する Cygnus エージェントを実行することができます。

ターミナルで次のように入力して、このイメージのコンテナを開始します:

$ docker run cygnus-twitter

直後に、cygnus-twitter ロギング・トレースが出力されるでしょう :

+ exec /usr/lib/jvm/java-1.7.0/bin/java -Xmx20m -Dflume.root.logger=INFO,console -cp '/opt/apache-flume/conf:/opt/apache-flume/lib/*:/opt/apache-flume/plugins.d/cygnus/lib/*:/opt/apache-flume/plugins.d/cygnus/libext/*' -Djava.library.path= com.telefonica.iot.cygnus.nodes.CygnusApplication -f /opt/apache-flume/conf/agent.conf -n cygnus-twitter
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/apache-flume/lib/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/apache-flume/plugins.d/cygnus/lib/cygnus-twitter-0.1.0_SNAPSHOT-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/apache-flume/plugins.d/cygnus/libext/cygnus-common-0.13.0_SNAPSHOT-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
time=2016-05-05T09:57:55.150UTC | lvl=INFO | corr= | trans= | srv= | subsrv= | function=main | comp= | msg=com.telefonica.iot.cygnus.nodes.CygnusApplication[166] : Starting Cygnus, version 0.13.0_SNAPSHOT.5200773899b468930e82df4a0b34d44fd4632893
...
...
time=2016-05-05T09:57:56.287UTC | lvl=INFO | corr= | trans= | srv= | subsrv= | function=main | comp=cygnus-twitter | msg=com.telefonica.iot.cygnus.nodes.CygnusApplication[286] : Starting a Jetty server listening on port 8081 (Management Interface)

2番目のターミナルシェルで、実行中のコンテナをチェックすることができます :

$ docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS              PORTS                NAMES
9ce0f09f5676        cygnus-twitter      "/cygnus-entrypoint.   About a minute ago   Up About a minute   5050/tcp, 8081/tcp   focused_kilby

上のコンテナの IP アドレスを確認するには、次のようにします :

$ docker inspect 9ce0f09f5676 | grep \"IPAddress\"
        "IPAddress": "172.17.0.13",

2番目のターミナルのシェルで、コンテナの IP アドレスが取得できたら、Cygnusのバージョンを確認することができます:

$ $ curl "http://172.17.0.13:8081/v1/version"
{"success":"true","version":"0.13.0_SNAPSHOT.5200773899b468930e82df4a0b34d44fd4632893"}

次のように、コンテナを停止することができます :

$ docker stop 9ce0f09f5676
9ce0f09f5676
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

トップ

特定の構成の使用

上記のように、イメージと共に配布されるデフォルトの設定は、テストに適さないかもしれない特定の値が設定されいます。具体的には :

  • ストリーミング・ツイートを一時ファイル(/tmp)に格納する場合にのみ機能
  • ロギングレベルが INFO
  • ロギングアペンダが console

別の値で上記の値を変更する必要があるかもしれません。

トップ

Docker ファイルの編集

一番簡単な方法は、docker/cygnus-twitter 下のファイル、Dockerfile あるいは agent.conf、その両方を編集して、cygnus-twitter イメージを最初から作成することです。

docker イメージをを完全に制御できます。

トップ

環境変数

環境変数に関連付けられたこれらのパラメータは、-e オプションを使用してコマンドラインで簡単に上書きすることができます。たとえば、log4j のロギング・レベルを変更する場合は、次のコマンドを実行します :

$ docker run -e LOG_LEVEL='DEBUG' cygnus-twitter

トップ

ボリュームの使用

もう1つの可能性は、ボリューム(-v オプション)を持つコンテナを起動し、コンテナ内の設定ファイル全体を、ローカルバージョンのファイルでマップすることです :

$ docker run -v /absolute/path/to/local/agent.conf:/opt/apache-flume/conf/agent.conf cygnus-twitter

もちろん、ボリュームと環境変数の上書きを組み合わせることもできます :

$ docker run -v /absolute/path/to/local/agent.conf:/opt/apache-flume/conf/agent.conf -e LOG_LEVEL='DEBUG' cygnus-twitter

トップ