ソースからの cygnus-common のインストール

コンテンツ :

前提条件

cygnus-common をインストールするには、Maven が必要です。Maven が Java ツールであるため Java SDKも必要です。

CentOS では、Java SDK (JRE ではなく)をインストールするには、次のように入力してください :

$ yum install java-1.7.0-openjdk-devel

JAVA_HOME 環境変数をエクスポートすることを忘れないでください。上記のように yum install を使用する場合は、次のようになります :

$ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk.x86_64

これを永久に行うには、root ユーザの場合 /root/.bash_profile、他ユーザの場合 /etc/profile を編集します。

Maven は maven.apache.org からダウンロードしてインストールします。選択したフォルダ(APACHE_MAVEN_HOME で表される)にインストールします :

$ wget http://www.eu.apache.org/dist/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
$ tar xzvf apache-maven-3.2.5-bin.tar.gz
$ mv apache-maven-3.2.5 APACHE_MAVEN_HOME

トップ

cygnus ユーザの作成

Cygnus をインストールして実行する、cygnus Unix ユーザを作成することを強くお勧めします。ちなみに、これは RPM による実行方法です。

そのようなユーザを作成するのは簡単です。sudoer ユーザ(root またはその他のユーザ)として、次のように入力します :

$ (sudo) useradd cygnus

cygnus ユーザにパスワードを追加することもできます :

$ (sudo) passwd cygnus

作成したら、この新しいユーザに変更して、残りのインストールを続行します :

$ su - cygnus

トップ

log4j パス

ユーザが作成されると、log4j のために パス /var/log/cygnus を作成する必要があります。まず、パスを作成して、cygnus ユーザに権限を与えます :

$ mkdir -p /var/log/cygnus
$ chown -R cygnus:cygnus /var/log/cygnus

この手順は重要です。なぜなら、最初に実行するときに、作成されたログパスがないと、Cygnus がシャットダウンするからです。

トップ

Apache Flume のインストール

Apache Flume は、flume.apache.org から最新バージョンをダウンロードすることで簡単にインストールできます。選択したフォルダ(APACHE_FLUME_HOME で表される)に、展開されたディレクトリを移動します :

$ wget http://www.eu.apache.org/dist/flume/1.4.0/apache-flume-1.4.0-bin.tar.gz
$ tar xvzf apache-flume-1.4.0-bin.tar.gz
$ mv apache-flume-1.4.0-bin APACHE_FLUME_HOME
$ mv APACHE_FLUME_HOME/lib/httpclient-4.2.1.jar APACHE_FLUME_HOME/lib/httpclient-4.2.1.jar.old
$ mv APACHE_FLUME_HOME/lib/httpcore-4.2.1.jar APACHE_FLUME_HOME/lib/httpcore-4.2.1.jar.old
$ mv APACHE_FLUME_HOME/lib/libthrift-0.7.0.jar APACHE_FLUME_HOME/lib/libthrift-0.7.0.jar.old
$ mkdir -p APACHE_FLUME_HOME/plugins.d/cygnus/
$ mkdir APACHE_FLUME_HOME/plugins.d/cygnus/lib
$ mkdir APACHE_FLUME_HOME/plugins.d/cygnus/libext

いくつかのコメント :

  • plugins.d ディレクトリの作成は、Cygnus のようなサードパーティのソフトウェアのインストールに関連しています
  • pom.xml (httpclient-4.3.1.jar および httpcore-4.3.1.jar) の httpcomponents-core および httpcomponents-client のバージョンが、Flumeバンドル(httpclient-4.2.1.jar およびhttpcore-4.2.1.jar)内のパッケージのバージョンと一致していないことを確認してください。ライブラリの最新バージョンを入手するには、Flume バンドル内のライブラリを削除または名前変更する必要があります

トップ

cygnus-common のインストール

fiware-cygnus のクローニング

まず、cygnus-common を含む Github リポジトリをクローンします :

$ git clone https://github.com/telefonicaid/fiware-cygnus.git
$ cd fiware-cygnus
$ git checkout <branch>

<branch> は、通常、release/0.13.0のように、安定したリリースブランチでなければなりませんが、最新のリリースと同期する master にすることもできますし、最新の安定していない変更を含む develop にすることもできます。

トップ

cygnus-common の インストール

開発されたクラスは Java jar ファイルにパッケージ化する必要があります。これは、すべてのサードパーティの依存関係を含む 大きな Java jar として実行できます(推奨)。pom.xml (*)を編集する必要があるかもしれません :

$ cd cygnus-common
$ APACHE_FLUME_HOME/bin/mvn clean compile exec:exec assembly:single
$ cp target/cygnus-common-<x.y.z>-jar-with-dependencies.jar APACHE_FLUME_HOME/plugins.d/cygnus/libext

または、cygnus-common クラスだけを含む、軽い Java jar ファイルとして。必要に応じて、pom.xml (*)を編集する必要があるかもしれません :

$ cd cygnus-common
$ APACHE_MAVEN_HOME/bin/mvn exec:exec package
$ cp target/cygnus-<x.y.z>.jar APACHE_FLUME_HOME/plugins.d/cygnus/libext

この場合は注意してください。使用する Cygnus コンポーネントに応じて、追加のサードパーティの .jar ファイルを APACHE_FLUME_HOME/plugins.d/cygnus/libext/ 下にインストールする必要があります。通常、これらの jar ファイルは Maven リポジトリ(ユーザのホームディレクトリの .m2 下にあります)から取得し、cp コマンドを使用することができます。

どちらの場合も、cygnus-common の依存関係は、Mavenにもインストールしなければなりません。それに応じて他のエージェントを構築する必要があります。 次のコマンドを実行するだけです :

$ mvn install:install-file -Dfile=APACHE_MAVEN_HOME/plugins.d/cygnus/libext/cygnus-common-<x.y.z>-jar-with-dependencies.jar -DgroupId=com.telefonica.iot -DartifactId=cygnus-common -Dversion=<x.y.z> -Dpackaging=jar -DgeneratePom=false

(*) Cygnus 0.10.0 を考慮してください。 pom.xml 内の hadoop-core のバージョンは、使用する Hadoop のバージョンと一致する必要があります : それだけではなく、HDFS シンクは機能しません。 もちろん、HDFS シンクを使用しない場合は、正しいコンパイルのために、ダウンロードした pom.xml 内のデフォルトの hadoop-core バージョン(1.2.1)を使用してください。

最後に、このセクションに示すすべてのコマンドを含む、compile.sh スクリプトを見つけてください。現在のブランチのバージョンと Apache Flume のベースパスでパラメータ化する必要があります。

トップ

cygnus-flume-ng スクリプトのインストール

インストールは、cygnus-flume-ng スクリプトを APACHE_FLUME_HOME/bin の中に コピーすることで完了します :

$ cp target/classes/cygnus-flume-ng APACHE_FLUME_HOME/bin
$ chmod a+x APACHE_FLUME_HOME/bin/cygnus-flume-ng

トップ

既知の問題点

cygnus-common をコンパイルしているときに、Maven JVMが十分なメモリを持っていないことがあります。これは Maven の公式ドキュメントで詳細に説明されているように変更できます :

$ export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=128m"

トップ

依存関係のインストール

これらのパッケージが、Cygnus jar ファイルに含まれていない場合は、 APACHE_FLUME_HOME/plugins.d/cygnus/libext/ の下にインストールする必要があります。

Cygnus dependencies Version Required by / comments 
mockito-all 1.9.5 Unit tests
junit 4.11 Unit tests
flume-ng-node 1.4.0
httpclient 4.3.1 Overwrites the one bundled in Apache Flume
httpcore 4.3.1 Overwrites the one bundled in Apache Flume
 libthrift 0.9.1 Overwrites the one bundled in Apache Flume
gson 2.2.4 Management Interface
json-simple 1.1 Management Interface and Grouping Rules
log4j 1.2.17 Logging
mysql-connector-java  5.1.31 MySQLBackendImpl at runtime
postgresql 9.4-1202-jdbc41 PostgreSQLBackendImpl at runtime
hadoop-core 1.2.1 HDFSBackendImplBinary
hive-exec 0.13.0  HiveBackendImpl at runtime
 hive-jdbc 0.13.0 HiveBackendImpl at runtime
 mongodb-driver 3.0.0 MongoBackendImpl
kafka-clients 0.8.2.0 KafkaBackendImpl
zkclient  0.5 KafkaBackendImpl
kafka_2.11  0.8.2.1 KafkaBackendImpl
aws-java-sdk-dynamodb  1.10.32  DynamoDBBackendImpl

トップ