ソースからの 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 |