2018年9月24日月曜日

DockerでApache NiFi 1.7.1、MySQL5.7がインストールされたコンテナを構築する

Apache Nifiは様々なデータを処理・分配するためのソフトウェアです。

○Apache NiFiの画面


○構築方法
以下の手順で、Apache NiF i.7.1とMySQL 5.7のコンテナを構築・実行します。

1. Apache NiFi公式にMySQL JDBCドライバを追加したイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t nifi171mysql .

Dockerfile
FROM apache/nifi:1.7.1
USER root
RUN wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.12.tar.gz -P /tmp \
  && tar xvfz /tmp/mysql-connector-java-8.0.12.tar.gz -C /tmp \
  && cp /tmp/mysql-connector-java-8.0.12/mysql-connector-java-8.0.12.jar /usr/share/java \
  && rm -Rf /tmp/mysql-connector*
USER nifi
VOLUME /opt/nifi

2. Apache NiFiとMySQLコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
COMPOSE_HTTP_TIMEOUT=180 docker-compose up -d

docker-compose.yml
version: "2"
services:
  db:
    image: mysql:5.7
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "nifi-db"
    volumes:
      - "nifidb-data:/var/lib/mysql"
    ports:
      - "3306:3306"
    environment:
      MYSQL_DATABASE: nifi
      MYSQL_ROOT_PASSWORD: nifi
  nifi171mysql:
    image: nifi171mysql
    container_name: "nifi171mysql"
    volumes:
      - "nifi-data:/opt/nifi"
    ports:
      - "8080:8080"
    depends_on:
      - db
volumes:
  nifidb-data:
    driver: local
  nifi-data:
    driver: local

3.ブラウザから以下のURLにアクセス
http://<Dockerホスト名またはIP>:8080/nifi/

※DBへの接続
DBCPConnectionPoolで、以下のようにパラメータを設定してローカルのPostgreSQLにアクセスします。
Database Connection -> URL jdbc:mysql://db:5432/nifi
Database Driver Class Name -> com.mysql.jdbc.Driver
Database Driver Location(s) -> /usr/share/java/mysql-connector-java-8.0.12.jar
Database User -> root
Password -> nifi


○関連情報
・Apache NiFiに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿