お見合いで趣味を聞かれたときに...

48
おおおおお おおおお おおおおおおおおお 」「 IoT おおおお おおおおおお おおおおお SE おおおおお HDP v2.5 おおおおおおお

Upload: monta-yashi

Post on 15-Jan-2017

213 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

お見合いで「ご趣味は?」と聞かれたときに「 IoT とビッグデータを少々」と答えたい SE が読む資料~ HDP v2.5 インストール編~

Page 2: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

自己紹介CGやったり

      もんた( @___monta___ )  FPGAやったり インフラ SEやったり 本業

ボウリングやったり、マジックやったり、筋トレやったり楽しく生きようと努力しています。

Page 3: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

はじめに

データの処理データの作成・収集 フィードバック

ビッグデータとか、 IoT 、 CPS etc ...  いろいろと聞く。実体は難しくなくて、作られたデータを収集して、処理して、フィードバックするだけ。(可視化も人へのフィードバックの一手法に過ぎない)

携帯スマートウォッチ

その他

メッセージング

ストリーム処理バッチ処理蓄積処理

フィードバック人へ機械へ

Page 4: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

Hadoop などが必要な理由

データの処理データの作成・収集 フィードバック

やることは難しくないが、実現は難しい。要求される容量や性能に対して、データ処理が間に合わない為だ。そこでデータ処理を分割して、複数のマシンで実施する基盤が欲しくなる。

携帯スマートウォッチ

その他

メッセージング

ストリーム処理バッチ処理蓄積処理

フィードバック人へ機械へ処理が間に合わない!

Page 5: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

Hadoop などが必要な理由

データの処理データの作成・収集 フィードバック

もちろんスクラッチ開発も可能だが、データ、処理の分散管理、障害時のリカバリなどを考慮すると、難易度が高い。それらを提供してくれる有名な基盤が Hadoop (+ α )というわけ。

携帯スマートウォッチ

その他

メッセージング

ストリーム処理バッチ処理蓄積処理

フィードバック人へ機械へオイラにお任せ!

Page 6: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

サーバ構成について サーバの構成と役割は、以下のようになる。(下に記載した台数は目安)

Hadoo 管理ノード・ Hadoop の各コンポーネントの管理機能

Ambari サーバ・各サーバへのコンポーネント配布・ Hadoop 全体(クラスタ)の状態管理

Hadoop slave ノード・ Hadoop 機能の実働ノードで、主にデータを蓄積・処理を実行する

1台 3 台~ 5 台 3 台~Hortonworks からは sandbox として 1 台に全て実装した VMイメージがダウンロードできる。

Page 7: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

サーバ構成について Ambari サーバのハードウェア要件(1) Ambari は 1GB 以上のメモリを搭載し、 500MB 以上の空きがあること。(2) Ambari Metrics を使うのであれば、 Ambariサーバのメモリ、ディスクの見積もりは以下の通り。

Page 8: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

インストールの流れ インストールの全体の流れは以下のようになる。(1) HW 設定、 OS インストール(2) Hadoop インストール準備(3) Ambari サーバ インストール・起動(4)管理、 slave ノードインストール

Page 9: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(1)HW 設定、 OS インストールHadoop に限ったことではないので、軽く記載。 HW 設定

必須ではないが、 ipmi などでリモートから大量のノードを制御するためには事前に BMC 設定が必要。(計画停止後の起動のために数百台の電源ボタンを押すのは嫌でしょ?) OS インストール

必要な OS レベルの可用性はこの時点で確保する。例) RAID 、 NIC の bonding など。

Page 10: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(2)Hadoop インストール準備 Hortonworks のページのマニュアルを確認する。 http://docs.hortonworks.com/index.html

英語ですが、難易度は低めです。必要な部分だけパラパラ眺めましょう。

Page 11: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(2)Hadoop インストール準備 システム要件をまとめると以下になります。・ OS…Redhat 7.x,6.x 、 CentOS 7.x,6.x 、 debian 7.x 、     Ubuntu 12.04,14.04

・ブラウザ… IE10 、 FireFox 18 、 GoogleChrome 26

・パッケージ管理各種… yum 、 rpm 、 apt

・ OpenSS…   v1.01 build 16 より新しいもの・各種ツール… scp 、 curl 、 unzip 、 tar 、 wget

・ Python…ver 2.6 or ver 2.7(OS に依存)・ JDK…選択する HDP スタックに依存

Page 12: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(2)Hadoop インストール準備 推奨も含めて、事前の準備を列挙する1. FD(File Descriptor) の最大オープン数の制限

10000 以上を推奨する。 /etc/security/limits.conf へ設定するのが吉* soft nofile 10000* hard nofile 10000

2. ホスト名が FQDN で定義されていること/etc/hostname の設定、 /etc/hosts 、 /etc/sysconfig/network ファイルで一致させ、 hostname -f と統一する。

3. /etc/hosts ファイルなどで、全ノードの名前解決ができるようにしておく。4. NTP をインストールして時刻同期を完了しておく。

Page 13: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(2)Hadoop インストール準備 推奨も含めて、事前の準備を列挙する1. ssh でパスワードレスでログインできるように準備する。 Ambari サーバから他のノードへ、 Ambari-

agent をインストール際に必要となる。2. iptables の停止  systemctl disable firewalld  service firewalld stop

3. SELinux の無効化/etc/selinux/config に以下を記載すると恒久的に無効化できる。セキュリティ強度を考慮すること。  SELINUX=disabled

Page 14: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(3)Ambari サーバ インストール・起動 Ambari のインストールはデフォルトで入れるだけなら、2ステップで完了する。1.リポジトリ情報追加2.インストール セットアップ起動も2ステップ。1. Ambari のセットアップコマンド実行2. Ambari の起動コマンド実行

下手にハマらないようにするために、“綺麗な”サーバを準備しましょう!ポイント

Page 15: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(3)Ambari サーバ インストール・起動 インストールの手順は以下の通り。 ( 2ステップ! )  Ambari をインストールサーバに yum のリポジトリファイルを追加。

[root@s01 ~]#   wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.1.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

  Ambari インストール[root@s01 ~]# yum install ambari-serverLoaded plugins: fastestmirror  ~中略~Installed size: 733 MIs this ok [y/d/N]: yDownloading packages:

Complete![root@s01 ~]#

内容を確認して、答える(基本的にデフォルトで)エラーなく、 Completeが出れば OK!

Page 16: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(3)Ambari サーバ インストール・起動 Ambari のセットアップ

# ambari-server setupChecking JDK...[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7[3] Custom JDK==============================================================================Enter choice (1):  ~中略~Do you accept the Oracle Binary Code License Agreement [y/n] (y)? Y  ~中略~Adjusting ambari-server permissions and ownership...Ambari Server 'setup' completed successfully. エラーなく、 successfully が出れば OK!

質問に無難に答えて…(基本的にデフォルトで)

Page 17: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(3)Ambari サーバ インストール・起動 Ambari の起動

# ambari-server startUsing python /usr/bin/pythonStarting ambari-serverAmbari Server running with administrator privileges.Organizing resource files at /var/lib/ambari-server/resources...Ambari database consistency check started...No errors were found.Ambari database consistency check finishedServer PID at: /var/run/ambari-server/ambari-server.pidServer out at: /var/log/ambari-server/ambari-server.outServer log at: /var/log/ambari-server/ambari-server.logWaiting for server start....................Ambari Server 'start' completed successfully.

エラーなく、 successfully が出れば OK!

Page 18: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(3)Ambari サーバ インストール・起動 以上。この時点で、 Ambari (関連する DB含める)がインスールされ、アクセス可能になっている。

Hadoo 管理ノードAmbari サーバ Hadoop slave ノード

1台 3 台~ 5 台 3 台~

AmbariPostgreSQL

デフォルトでは 8080 ポートで Ambari にアクセスできる。

Page 19: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール http://Ambari サーバ :8080/ にブラウザでアクセス。(わかると思いますが、“ Ambari サーバ”は自身の環境に合わせてください。)

デフォルトではUsername: adminPassword: adminで“ Sign in” できます。

Page 20: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール “Sign in” すると、 Welcome 画面が起動します。

「 Launch Install Wizard 」をクリック

インストールウィザードを起動します。

Page 21: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール クラスタ名入力クラスタ名を入力します。(一環境だけだったら何でも良いので適当に)

クラスタ名を入力して、”Next”

Page 22: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール バージョンとリポジトリ設定何も変更せず(バージョンは最新、リポジトリもデフォルトのままで)、“Next” をクリック

下の方にある”Next” を探そう(笑)~~~~~~~~~~中略~~~~~~~~

Page 23: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール 管理サーバ、 slave ノードの名前指定、および、秘密鍵情報入力して“ Register and Confirm” 。

全部列挙しても良いし、画面例にあるような“ Pattern Expressions” に従った書き方でも良い。準備として、 ssh でパスワードレスで全ノードにログインできるようにしたはず。その秘密鍵をここにコピペ

“Register and Confirm” をクリック

Page 24: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール Ambari-Agent のインストール指定したノードに Agent がインストールされます。

Installing をクリックするとログが確認できる。

Page 25: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール Agent インストール後の自動チェック

ntp が設定されているか、など事前にチェックしてくれる。 ここにまとめ結果が出る。後々困るので、このステップで潰しておきましょう。

大丈夫になったら、“Next”

Page 26: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール サービスの選択

まず、インストールするサービスを選ぶ。(依存関係は自動的に対処してくれるし、あとから追加もできるので、まず使いたいもののみ選択して OK )

下の方にある”Next” を探そう(再び)~~~~~~~~~~中略~~~~~~~~

Page 27: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール 管理サーバの割り当て選んだサービスの管理機能をインストールするサーバを設定して、“Next” 。

このプルダウンリストからノードを選択可能

Page 28: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール Slave とクライアントを install するノード選択トラブルを避けるために、管理ノード、 Slaveノード、クライアントを分けてました。

”Next” をクリック

Page 29: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール Install 時の設定

まずは、デフォルトで OK だが、赤いマークの必須の入力項目(パスワード)を実施して、 Next 。

”Next” をクリック推奨やワーニングが出るが、サラッと流して進めましょう。

Page 30: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール 確認画面

確認画面が表示されるので、問題なければ“Deploy”

Page 31: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール Install ドン!

全ノード install が同時に始まる。ネットワークがショボイとタイムアウトになる場合があるが、この辺りに Retryボタンが出るので、それで何度か実施すれば OK

Page 32: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

(4)管理、 slave ノードインストール 完了

インストールご、サービス起動、テストまで自動的に実施してくれる。

画面例ではうまくテストが動作していない。が、インストールは出来たので、“Next”

Page 33: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

Ambari ダッシュボード インストールが完了すると、 Ambari の管理がめんが表示されます。

Page 34: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

おめでとうございます! これで、 Hadoop を触る準備ができました。

これ以降は、オプションのサーバ高可用( HA) 化作業になります。

Page 35: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 管理サーバの高可用化

①画面左側のサービスの一覧から HDFS を選択

②「 Service Actions 」プルダウンリストから「 Enable Name Node HA 」をクリック

Page 36: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 Hbase 停止

HA 化のウィザードを起動すると、 Hbase を事前に停止するようにメッセージが出るので、先回りして停止する。

①画面左側のサービスの一覧から HBase を選択

②「 Service Actions 」プルダウンリストから「 Stop 」をクリック

Page 37: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 Nameservice ID を入力する

Page 38: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 コンポーネントのインストール先設定

Page 39: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 ノード設定の確認画面

Page 40: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 画面の指示に従って、 HDFS のチェックポイント作成など

[root@s01 ~]# sudo su hdfs -l -c 'hdfs dfsadmin -safemode enter'Safe mode is ON[root@s01 ~]# sudo su hdfs -l -c 'hdfs dfsadmin -saveNamespace'Save namespace successful

コマンドを実行したら”Next” がクリックできるようになる。

Page 41: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 サービス停止~コンポーネントインストール、起動(自動)

コマンドを実行したら”Next” がクリックできるようになる。

Page 42: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 JornalNode の初期化

ログインするべきサーバ名まで書いているので注意深く指示通り作業しましょう。

[root@s01 ~]# sudo su hdfs -l -c 'hdfs namenode -initializeSharedEdits'16/11/25 00:12:29 INFO namenode.NameNode: STARTUP_MSG:/************************************************************STARTUP_MSG: Starting NameNodeSTARTUP_MSG: user = hdfsSTARTUP_MSG: host = s01.hdp.local/192.168.0.1STARTUP_MSG: args = [-initializeSharedEdits]

~ 長いので後略~

Page 43: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 Zookeeper 、 Namenode の起動勝手にやってくれるので、無事終わるのを待って“Next”

Page 44: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 メタデータの初期化コマンド実行ノード名に注意して、指示された通り、実行。

[root@s01 ~]# sudo su hdfs -l -c 'hdfs zkfc -formatZK'16/11/25 00:17:43 INFO tools.DFSZKFailoverController: STARTUP_MSG:/************************************************************STARTUP_MSG: Starting DFSZKFailoverControllerSTARTUP_MSG: user = hdfsSTARTUP_MSG: host = s01.hdp.local/192.168.0.1

~ 長いので後略~

[root@s02 ~]# sudo su hdfs -l -c 'hdfs namenode -bootstrapStandby'16/11/25 00:19:54 INFO namenode.NameNode: STARTUP_MSG:/************************************************************STARTUP_MSG: Starting NameNodeSTARTUP_MSG: user = hdfsSTARTUP_MSG: host = s02.hdp.local/192.168.0.2STARTUP_MSG: args = [-bootstrapStandby]STARTUP_MSG: version = 2.7.3.2.5.0.0-1245

~ 長いので後略~

Page 45: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化 HA 化 確定処理。

Done !

Page 46: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

HDFS 高可用 (HA)化以上!

Page 47: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

まとめ OS がインストールされている状態から、事前に実施すべき、準備作業をまとめた。 事前準備されたサーバに対しての、 Ambair インストール手順を順にまとめた。 インストール後の HDFS HA 化についてまとめた。  (より簡単な YARN HA 化については省略)

次は、具体的に、 Hadoop を使う段階に入ります!

Page 48: お見合いで趣味を聞かれたときに 「IoTとビッグデータを少々」と答えたいSEが読む資料

付録 サーバスペック今回の検証では NEC のご好意により、 Hadoop など分散システムに向いている DX2000 を使用しています。

1 シャーシに 36 ノード Xeon D-1527(8core 2.2Ghz)CPU

32GBMem

SSD 256GBDISK

10Gbps Network※バリエーション有り