Hortonworks Sandbox にNifiをインストール（Windows上のVirtualBox、Microsoft Azure）

# VirtualBoxのHortonworks SandboxにNifiをインストール（Windows編）

公式の[チュートリアル](https://github.com/ijokarumawak/hdf-tutorials-ja/wiki/Ropes-of-Apache-NiFi%3A-Tutorial-0)でつまずいたので2016年9月時点での手順を記録として記載します。

VirtualBoxにHortonworks Sandboxのインストールについては、[こちら](http://qiita.com/cyberblack28/items/5b446a8773b3a62d82ce)を参照。

WindowsのVirtualBox上のHortonworks Sandboxを利用する場合は、事前にGit Bashが必要となるため、[Git for Windows](https://git-for-windows.github.io/)のインストールが必要となりますのでインストールしておきましょう。

## 1.Hortonworks Sandboxにログイン及び初回時のパスワード変更

Gitbashを起動し以下のコマンドを実施します。

```コマンド
$ ssh -p 2222 root@localhost
root@localhost's password:hadoop(初期パスワード)
You are required to change your password immediately (root enforced)
Changing password for root.
(current) UNIX password:hadoop
New password:任意のパスワード
Retype new password:任意のパスワード
```
上記のパスワード変更は初回のみ

## 2.Nifiインストールスクリプトのダウンロード

```コマンド
# cd

# curl -o install-nifi.sh https://raw.githubusercontent.com/hortonworks/tutorials/hdp/assets/realtime-event-processing/install-nifi.sh

# chmod +x ./install-nifi.sh
```

## 3.Nifiのダウンロード
チュートリアルにこの手順はないのですが、この手順を行わないとうまくいかなかったので追加しました。

```コマンド
# mkdir Downloads

# cd Downloads

# wget http://public-repo-1.hortonworks.com/HDF/2.0.0.0/HDF-2.0.0.0-579.tar.gz
```

## 4.Nifiのインストール
チュートリアルだとポートが2222となっていましたが、うまくいかなかったので22としました。

```コマンド
# cd ../

# ./install-nifi.sh ~/Downloads/HDF-2.0.0.0-579.tar.gz localhost 22 2.0.0.0

HOST: localhost
PORT: 22
HDF_FILE: /root/Downloads/HDF-2.0.0.0-579.tar.gz
Version: 2.0.0.0
HDF-Version: HDF-2.0.0.0
HDF-Filename: HDF-2.0.0.0-579.tar.gz
PLEASE ENTER THE PASSWORD TO MOVE HDF TO SANDBOX
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 8c:ce:66:a4:6b:7a:e5:6c:39:19:d3:2b:f7:03:fb:fb.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
HDF-2.0.0.0-579.tar.gz                        100%  813MB 116.2MB/s   00:07
PLEASE ENTER THE PASSWORD TO INSTALL HDF TO SANDBOX
Pseudo-terminal will not be allocated because stdin is not a terminal.
Installing NiFi....
Extracting Archive
Updating Run Configs
NiFi is now installed on Sandbox at /root/hdf/HDF-2.0.0.0/nifi
Run NiFi on the sandbox with the command "/root/hdf/HDF-2.0.0.0/nifi/bin/nifi.sh start"

```

## 5.Javaの最新化
2016年9月時点、Hortonworks SandboxのJavaバージョンは1.7系で、Nifiは1.8系にしておかないとエラーで起動できないため最新化します。

```コマンド
# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

# java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
```

## 6.NifiのWebUIポート変更

```コマンド
# cd /root/hdf/HDF-2.0.0.0/nifi/conf

# vi nifi.properties

/nifi.web.http.port

nifi.web.http.port=6343
↓変更
nifi.web.http.port=9090

:wq
```

## 7.Nifiの起動

```コマンド
# /root/hdf/HDF-2.0.0.0/nifi/bin/nifi.sh start

Java home: /usr/lib/jvm/java
NiFi home: /root/hdf/HDF-2.0.0.0/nifi

Bootstrap Config File: /root/hdf/HDF-2.0.0.0/nifi/conf/bootstrap.conf

2016-09-25 14:47:01,861 INFO [main] org.apache.nifi.bootstrap.Command Starting Apache NiFi...
2016-09-25 14:47:01,862 INFO [main] org.apache.nifi.bootstrap.Command Working Directory: /root/hdf/HDF-2.0.0.0/nifi
2016-09-25 14:47:01,862 INFO [main] org.apache.nifi.bootstrap.Command Command: /usr/lib/jvm/java/bin/java -classpath /root/hdf/HDF-2.0.0.0/nifi/./conf:/root/hdf/HDF-2.0.0.0/nifi/./lib/commons-lang3-3.4.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/bcprov-jdk15on-1.54.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/log4j-over-slf4j-1.7.12.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/nifi-properties-loader-1.0.0.2.0.0.0-579.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/jul-to-slf4j-1.7.12.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/slf4j-api-1.7.12.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/nifi-nar-utils-1.0.0.2.0.0.0-579.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/nifi-api-1.0.0.2.0.0.0-579.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/nifi-properties-1.0.0.2.0.0.0-579.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/jcl-over-slf4j-1.7.12.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/nifi-runtime-1.0.0.2.0.0.0-579.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/nifi-framework-api-1.0.0.2.0.0.0-579.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/logback-core-1.1.3.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/logback-classic-1.1.3.jar:/root/hdf/HDF-2.0.0.0/nifi/./lib/nifi-documentation-1.0.0.2.0.0.0-579.jar -Dorg.apache.jasper.compiler.disablejsr199=true -Xmx512m -Xms512m -Dsun.net.http.allowRestrictedHeaders=true -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -XX:+UseG1GC -Djava.protocol.handler.pkgs=sun.net.www.protocol -Dnifi.properties.file.path=/root/hdf/HDF-2.0.0.0/nifi/./conf/nifi.properties -Dnifi.bootstrap.listen.port=45173 -Dapp=NiFi -Dorg.apache.nifi.bootstrap.config.log.dir=/root/hdf/HDF-2.0.0.0/nifi/logs org.apache.nifi.NiFi
```

## 8.NifiのWebUIにアクセス

ブラウザを起動して、以下URLにアクセス
※Nifi起動には1,2分かかるようなので2分後にアクセスしてください。

http://localhost:9090/nifi/


サポートブラウザ

- Mozilla Firefox latest
- Google Chrome latest
- MS Edge
- Safari 8

# Microsoft AzureのHortonworks SandboxにNifiをインストール

公式の[チュートリアル](https://github.com/ijokarumawak/hdf-tutorials-ja/wiki/Ropes-of-Apache-NiFi%3A-Tutorial-0)でつまずいたので2016年9月時点での手順を記録として記載します。

Microsoft AzureへのHortonworks Sandbox環境構築については、公式の[チュートリアル](https://jp.hortonworks.com/hadoop-tutorial/deploying-hortonworks-sandbox-on-microsoft-azure/)を参照。

## 1.Microsoft AzureのHortonworks Sandboxにログイン

Teraterm（Windowsの場合）、ターミナル（Macの場合）を起動し、Microsoft Azure上のHortonworks Sandboxサーバにログインします。

Hortonworks Sandboxのデフォルトでは以下の構成となっていますが、Microsoft Azureではrootでのログインは無効となっておりますので、Hortonworks Sandboxを作成するときにMicrosoft Azure上で設定したusernameとpasswordでログインしてください。

デフォルト
ホスト：Microsoft AzureのパブリックIPアドレス
アカウント：root
パスワード：hadoop
↓
ホスト：Microsoft AzureのパブリックIPアドレス
アカウント：Hortonworks Sandboxを作成するときにMicrosoft Azure上で設定したusername
パスワード：Hortonworks Sandboxを作成するときにMicrosoft Azure上で設定したpassword

## 2.Nifiインストールスクリプトのダウンロード

```コマンド
$ sudo su -

password:ログインパスと同じ

# cd

# curl -o install-nifi.sh https://raw.githubusercontent.com/hortonworks/tutorials/hdp/assets/realtime-event-processing/install-nifi.sh

# chmod +x ./install-nifi.sh
```

## 3.Nifiのダウンロード
チュートリアルにこの手順はないのですが、この手順を行わないとうまくいかなかったので追加しました。

```コマンド
# mkdir Downloads

# cd Downloads

# wget http://public-repo-1.hortonworks.com/HDF/2.0.0.0/HDF-2.0.0.0-579.tar.gz
```

## 4.Nifiのインストール

```コマンド
# cd ../

# ./install-nifi.sh ~/Downloads/HDF-2.0.0.0-579.tar.gz AzureのIP 22 2.0.0.0
```

## 5.Javaの最新化
2016年9月時点、Hortonworks SandboxのJavaバージョンは1.7系で、Nifiは1.8系にしておかないとエラーで起動できないため最新化します。

```コマンド
# yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel

# java -version
openjdk version "1.8.0_101"
OpenJDK Runtime Environment (build 1.8.0_101-b13)
OpenJDK 64-Bit Server VM (build 25.101-b13, mixed mode)
```

## 6.NifiのWebUIポート変更

```コマンド
# cd /root/hdf/HDF-2.0.0.0/nifi/conf

# vi nifi.properties

/nifi.web.http.port

nifi.web.http.port=6343
↓変更
nifi.web.http.port=9090

:wq
```

## 7.Nifiの起動

```コマンド
# /root/hdf/HDF-2.0.0.0/nifi/bin/nifi.sh start
```

## 8.NifiのWebUIにアクセス

ブラウザを起動して、以下URLにアクセス
※Nifi起動には1,2分かかるようなので2分後にアクセスしてください。

http://AzureのIP:9090/nifi/


サポートブラウザ

- Mozilla Firefox latest
- Google Chrome latest
- MS Edge
- Safari 8