Apache Atlasことはじめ(2)

※前回記事(1)は[こちら](https://qiita.com/kkakui/items/4523df5cc65abef71b91)。

第2回目となる本記事では，[Apache Atlas](https://atlas.apache.org/)のビルドとインストールの手順，そしてApache Atlasのこれからについてご説明します。

# 1. Atlasのビルドとインストール

※以降，Apache AtlasのことをAtlasと略記することがあります。

## 1.1 前提環境

ここでは，ビルド・インストールともにLinuxなどUNIXライクなシステム上で行なうことを前提とします。また，ビルド中にライブラリやツールをダウンロードするためにインターネット接続が必要となります。

## 1.2 用意するもの

Apache AtlasのビルドにはJava Development Kit (JDK)と[Apache Maven](https://maven.apache.org/)が必要です。Atlasバージョン2.1.0の時点では，JDKはバージョン1.8.0-151以上(ただしJDK 9は未テスト)，Apache Mavenはバージョン3.5.0以上が指定されています。

それ以外に必要なライブラリやツールは，Apache Maven経由でビルド中に自動でダウンロードされます。

# 2. Atlasのビルド

## 2.1 ソースコードの取得

Apache Atlasのソースコードを取得します。方法は大きく二つあります。

### 2.1.1 Gitで取得する

AtlasのソースコードはGitで管理されています。下記URLのいずれかより `git clone` でリポジトリを取得し，任意のコミットIDまたはタグをチェックアウトします。

- `https://git.apache.org/repos/asf/atlas.git`
- `https://github.com/apache/atlas.git`

なおAtlasのGitの運用として，Release Candidate (RC)版が正式リリースと認可された後で改めてリリースポイントのタグを作成することはないので，リリース版が必要なときは`release-X.Y.Z-rc#`という名前のタグのうち末尾の数が最も大きいものをチェックアウトしましょう。バージョン2.1.0であれば，`release-2.1.0-rc3`です。

### 2.1.2 ソースアーカイブファイルを取得する

公式サイトの[ダウンロードページ](https://atlas.apache.org/#/Downloads)から，ソースアーカイブファイルのtarballを取得し展開します。

```shell
$ tar -xf apache-atlas-X.Y.Z-sources.tar.gz
$ cd apache-atlas-sources-X.Y.Z/
```

## 2.2 プロファイルの選択

Atlasはメタデータを格納するバックエンドデータベースとして[Apache HBase](https://hbase.apache.org/)，[Apache Cassandra](https://cassandra.apache.org/)とOracle Berkeley DBをサポートしています。また，全文検索エンジンとして[Apache Solr](https://solr.apache.org/)とElasticsearchをサポートしています。これらのバックエンドデータベースと全文検索エンジンの組み合わせは，下表に示すプロファイルをビルド時に指定することで選択します。

|プロファイル                      |構成                      |備考                                                |
|----------------------------------|-------------------------|----------------------------------------------------|
|`external-hbase-solr`(デフォルト) |HBase+Solr                |別途HBaseとSolrのセットアップが必要                 |
|`embedded-hbase-solr`             |HBase+Solr                |                                                   |
|`embedded-cassandra-solr`         |Cassandra+Solr            |                                                   |
|`berkeley-elasticsearch`          |Berkeley DB+Elasticsearch |別途Berkeley DBのjarファイルの手動ダウンロードが必要 |

プロファイル`external-hbase-solr`でビルドしたAtlasを動作させる場合は，Atlasとは別にHBaseとSolrをセットアップし起動しておく必要があります。それ以外のプロファイルでは，バックエンドデータベースと全文検索エンジンを含んだ形でビルドされ，Atlasと共に起動するように設定ファイルが構成されます。

## 2.3 ビルド

ここではプロファイルとして`embedded-hbase-solr`と`dist`を指定してビルドします。プロファイル`dist`は，バイナリとソースのアーカイブファイルを生成する指示です。

```shell
$ mvn clean -DskipTests package -Pdist,embedded-hbase-solr
```

# 3. Atlasのインストール

ビルドが成功すると，`distro/target`ディレクトリの配下にバイナリアーカイブファイルのtarballが生成されるので，これをインストール先となる任意のディレクトリに展開します。ここではバージョン2.1.0を`/opt/apache-atlas`にインストールします。

```shell
$ sudo mkdir /opt/apache-atlas
$ sudo chown $(id -u):$(id -g) /opt/apache-atlas
$ tar -xf distro/target/apache-atlas-2.1.0-bin.tar.gz -C /opt/apache-atlas
```

設定ファイル`conf/atlas-env.sh`を編集し，環境変数`JAVA_HOME`にJDK[^jar]のパスを設定します。

```shell
$ cd /opt/apache-atlas/apache-atlas-2.1.0
$ vi conf/atlas-env.sh
```

JDKのパスはシステムによって異なります。下記はUbuntuでの設定例です。

```shell:atlas-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
```

[^jar]: Atlasの起動には`jar`コマンドが必要です。Java Runtime Environment (JRE)には`jar`コマンドが含まれないことがあるのでJDKを使用してください。

# 4. Atlasの起動

Atlasは`atlas_start.py`コマンドで起動します[^python]。Atlas本体に加えて，バックエンドのHBaseとSolrも併せて起動されます。

```shell
$ cd /opt/apache-atlas/apache-atlas-2.1.0
$ bin/atlas_start.py
```

Web UIには`http://<ホスト名>:21000/`でアクセスできます。初期登録されているユーザ名とパスワードはadmin/adminです[^user]。インストール後初回の起動ではモデルの登録など初期設定が行なわれるため，Web UIにアクセス可能になるまで若干時間がかかることがあります。

![Atlasログイン画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1238846/be0c605a-9d0d-540a-0e13-58b8b523204d.png "Atlasログイン画面")

![Basic Search画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1238846/b3b92cf0-8c4f-811e-4d85-664e07552d3f.png "Basic Search画面")

デフォルトの設定ではWeb UI兼RESTful API用としてポート21000/tcpを使用しますが，このポートを変更する場合は`-port`オプションを指定して起動します。

```shell
$ bin/atlas_start.py -port 8080
```

[^python]: バージョン2.1.0の時点では，起動コマンドの`atlas_start.py`も含めAtlas付属のユーティリティコマンドの実行にはPython 2が必要です。

[^user]: ユーザとパスワードは設定ファイル`conf/users-credentials.properties`に登録します。また，他のユーザ認証方式としてLDAP，Active Directory，Kerberosをサポートしています。

# 5. サンプルエンティティの登録

Atlasをインストールした直後の状態では，エンティティは何も登録されていません。ここでは`quick_start.py`コマンドを用いてサンプルのエンティティを登録してみます。

```shell
$ bin/quick_start.py
```

Web UIにアクセスし，左ペインの"SEARCH"→"Search By Type"の入力欄で"_ALL_ENTITY_TYPES"または"Asset"型を選択，"Search"ボタンを押下すると，右ペインにサンプルのエンティティがリストされます。

![サンプルエンティティのリスト](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1238846/92d6d9f5-78d9-90f2-69d3-f3bf929187da.png "サンプルエンティティのリスト")

# 6. Atlasの終了

Atlasは`atlas_stop.py`コマンドで終了します。

```shell
$ bin/atlas_stop.py
```

# 7. Atlasのこれから

データカタログという分野は，国内のベンダからも製品がリリースされるなど，その重要性について認識が広まりつつあります。その中にあって，Apache Atlasは既にHadoopエコシステムを支えるデータカタログとして一定の地位を築いています。近年はパブリッククラウドのストレージサービスやデータベースサービスが普及し，データプラットフォームの姿も多様性を増してきていますが，AtlasはHadoopエコシステムに限定されず，多様なデータ資源をサポートするデータカタログとなるポテンシャルを持っています。

Atlasは誰でも自由に活用できるオープンソースのデータカタログとして，これからも注目すべき存在と言えるでしょう。

# 他社商品名称について

- Linuxは，Linus Torvalds氏の米国およびその他の国における登録商標もしくは商標です。
- UNIXは，The Open Groupの米国およびその他の国における登録商標です。
- Oracle，JavaおよびすべてのJava関連の商標およびロゴは，Oracle Corporationおよびその子会社，関連会社の米国およびその他の国における登録商標もしくは商標です。
- Gitは，Software Freedom Conservancy, Inc. の米国およびその他の国における登録商標もしくは商標です。
- Apache，Apache Cassandra，Apache HBase，Apache Maven，Apache Solr，Cassandra，HBaseは，Apache Software Foundationの米国およびその他の国における登録商標もしくは商標です。
- Elasticsearchは，Elasticsearch B.V.の米国およびその他の国における登録商標もしくは商標です。
- Ubuntuは，Canonical Ltd.の米国およびその他の国における登録商標もしくは商標です。
- Active Directoryは，米国Microsoft Corporationの米国およびその他の国における登録商標もしくは商標です。
- その他記載の会社名，製品名，サービス名，その他固有名詞は，それぞれの会社の登録商標もしくは商標です。
- 本文中では™，®マークは表記しておりません。