目次


Ubuntu 14.04 が動作する IBM SoftLayer OpenPOWER 上に Apache Bigtop v1.1 を導入するためのクイック・スタート・ガイド

Comments

1. はじめに

Apache Bigtop ソリューションを試すには、IBM SoftLayer の最新のオファリングである IBM POWER8 アーキテクチャーを使用するのが理想的な手段です。install_bigtop.sh スクリプトを使用することで、ウェルカム・パッケージを受け取ってからわずか 45 分足らずで、IBM POWER8 プロセッサー・ベースの新しいベアメタル・サーバーに Hadoop と Sark およびその他多くのソフトウェアをインストールおよび構成して、事前にパッケージ化されたチュートリアルを Zeppelin ノートブック上で実行できる状態にすることができます。ただし、この install_bigtop.sh スクリプトは Ubuntu 14.04 がインストールされている環境で動作する前提であるため、SoftLayer ベアメタル・サーバーではこのスクリプトを使用することが必須となっているわけではありません。

Ubuntu 14.04 搭載の POWER8 に Apache Bigtop v1.1 をインストールする手順の概要

  1. クライアントが発注します。詳細については、以下の URL のページを参照してください。

今すぐ使い始めてください!販促コード FREEPOWER8 を使って、SoftLayer 内の POWER8 システムを各月の 1 日から利用し始めて最大で $2,238 相当まで利用できるクレジットを入手してください。

  1. クライアントがウェルカム・パッケージと、Web ポータルにアクセスするためのユーザー ID とパスワードを受け取ります。
  2. クライアントが SoftLayer POWER8 サーバーにアクセスし、インストールの準備を行います。
  3. クライアントが install_bigtop.sh スクリプトをダウンロードします。このスクリプトによって、Apache Hadoop、Spark、Zeppelin をはじめとし、その他にも Linux on Power に必要なパッケージがダウンロード、構成、インストールされます。
  4. クライアントが Apache Zeppelin にログインし、事前構成されたベンチマークを実行します。
  5. クライアントがサンプル株価ワークロードをアップロードし、簡単なパフォーマンス・テストを行うためにこのワークロードを実行します。

現在の IBM SoftLayer OpenPOWER が提供している、最適化された POWER8 オファリングは、4 つの便利なパッケージにバンドルされています。以下の図を参照してください。

図 1. SoftLayer POWER8 ベアメタル・サーバーの選択肢 (2016年 5月時点)

SoftLayer POWER8 ベアメタル・サーバーの詳細な構成と現在の価格設定については、SoftLayer POWER8 ベアメタル・サーバーのページを参照してください。

Bigtop の最小システム要件

  • 4 コア
  • 32 GB のメモリー
  • 50 GB の仮想 SCSI (Small Computer System Interface) ディスク
  • Linux Ubuntu 14.04.03 リトル・エンディアン

2. SoftLayer での開始手順

このセクションでは、SoftLayer POWER8 ベアメタル・サーバーにアクセスする方法を説明します。

SoftLayer POWER8 ベアメタル・サーバーにアクセスする

SoftLayer から送信されるウェルカム e-メールに、SoftLayer コントロール・パネルへのリンクとログイン情報が記載されています。

初めて SoftLayer コントロール・パネルにアクセスして SoftLayer システムを完全に構成する方法についての詳細は、「Getting Registered」チュートリアルを参照してください。

SoftLayer のチュートリアル動画で概説されている手順に従って、以下のタスクを完了します。

  • ログインします (初回アクセス)。
  • IBM SoftLayer POWER8 サーバーを構成するためのメニューを簡単に見て回ります。
  • オンライン・ツールにアクセスするための場所を、システム・イメージを再作成する方法を含めて把握します。

リモート仮想プライベート・ネットワーク (VPN) を開き、セキュア・シェル (SSH) を使用して仮想システムにアクセスします。

SoftLayer のセットアップと構成についての詳細は、knowledgelayer.softlayer.com を参照してください。

3. Bigtop をインストールするためのシステムの準備

install_bigtop.sh スクリプトは、45 分足らずで迅速かつ自動的に、Hadoop、Spark、そして Zeppelin (ベンチマークを実行するためのツール) を完全にインストールおよび構成します。

install_bigtop.sh スクリプトを実行するには、スーパー・ユーザー特権を持っていなければなりません。

install_bigtop.sh スクリプトのインストール先としては、新しくインストールした Ubuntu カーネルを強く推奨します。システムがすでに使用中の場合は、cleanup.sh スクリプトを実行してください。このスクリプトは、https://github.com/ibmsoe/bigtop/ に残りのパッケージと一緒に置かれています。

: ~/bigtop/source ディレクトリーが存在していると、install_bigtop.sh スクリプトのインストールは失敗します。

  1. 非 root ユーザー (例: bigtop_user) として Bigtop をインストールしてから、以下の手順に従います。
    1. 新規ユーザーを追加します。
    2. 新規ユーザー・パスワードを設定します。
    3. 新規に追加したユーザーとしてログインします。
    4. カレント・ディレクトリーをユーザー・ホーム・ディレクトリーに変更します。
    5. github.com からダウンロードするための準備として git をインストールします。
    $ useradd bigtop_user –U –G sudo –m
    $ passwd bigtop_user (enter passwords)
    $ su bigtop_user
    $ cd ~
    $ sudo apt-get install git
  2. github.com から install_bigtop.sh スクリプトをダウンロードします。

    初めてダウンロードする際は、以下の git clone コマンドを使用します。

    git clone https://github.com/ibmsoe/bigtop

    以降の更新では、git pull コマンドを使用します。

    上記のコマンドにより、bigtop という名前のディレクトリーに以下のスクリプトがダウンロードされます。

    • cleanup.sh
    • install_bigtop.sh
    • restart-bigtop.sh
    • hadoopTest.sh
    • status.sh
    • sparkTest.sh

    または、wget コマンドを使用して個々のファイルをダウンロードすることもできます。例えば、install_bigtop.sh ファイルをダウンロードする場合は以下のコマンドを実行します。

    wget https://raw.githubusercontent.com/ibmsoe/bigtop/master/install_bigtop.sh
  3. カレント・ディレクトリーを bigtop に変更します。
    $ git clone https://github.com/ibmsoe/bigtop
    $ cd bigtop/
    ~/bigtop$ ls
    install_bigtop.sh  restart-bigtop.sh  status.sh              Stock_workload.json
    cleanup.sh          LICENSE.md         source             stockprices.csv.gz-aa
    hadoopTest.sh       README.md          sparkTest.sh       stockprices.csv.gz-ab
  4. プライベート IP とパブリック IP の両方を使用している場合は、/etc/hosts にプライベート IP と関連付けられたホスト名が設定されていることを確認します。
  5. Zeppelin を開くには、SoftLayer サーバーのプライベート IP アドレスを使用する必要があります。それには、VPN ポータルを開く必要があります。プライベート IP は、パブリック IP と一緒に SoftLayer ベアメタル・サーバー用の「Device Details (デバイスの詳細)」ページに表示されます。
    図 2. SoftLayer POWER8 ベアメタル・サーバー用の「Device Details (デバイスの詳細)」ページ
  6. デフォルトで設定されているオープン・ファイルの最大許容数を増やします。

    例: ファイルの制限値を 1000000 に設定します。

    sudo vi /etc/security/limits.conf を実行します。

    vi で開いたこの limits.conf ファイルに以下のコード行を追加します (この変更は、次回ログインしたときに、すべてのユーザーに適用されます)。

    *     soft    nofile          1000000 
    *     hard    nofile          1000000

    いったんログアウトしてからログインし、新しい制限値を有効にします。

4. Bigtop Hadoop のインストール

以下の手順に従って、install_bigtop.sh スクリプトを使用して Apache Hadoop パッケージ、Spark パッケージ、および Zeppelin パッケージをダウンロードしてインストールします。

  1. install_bigtop.sh スクリプトを実行します。

    例: ./install_bigtop.sh

    : インストール・プロセス中に表示される、Hadoop、YARN、またはその他のプロセスが開始されていないことに関連するエラー・メッセージは無視してください。これらのパッケージのインストール処理は行われていますが、この時点では、パッケージが実行を開始することを許可するようにはシステムが構成されていません。

    install_bigtop.sh スクリプトは、以下の処理を実行します。

    • すべての依存関係 (Java Open JDK1.8) をインストールします。
    • 最新の Apache Bigtop Hadoop 2.7.1 Debian パッケージをダウンロードしてインストールします。これらのパッケージには以下のものが含まれます。
      • Hadoop v 2.7.1
      • Bigtop-groovey v2.4.4
      • Jsvc v1.0.15
      • Tomcat v6.0.36
      • ZooKeeper v3.4.6
      • Scala v2.10.4
    • Hadoop 用に環境を構成します。
    • Hadoop 分散ファイルシステム (HDFS) をフォーマットします。
    • Apache Bigtop Spark 1.5.1 をダウンロードしてインストールします。
    • Zeppelin v0.5.6 をダウンロードしてインストールします。
    • 単一ノード上ですべての構成済みサービスを起動します。
  2. install_bigtop.sh スクリプトによるインストール処理が完了したら、status.sh スクリプトを使用して、すべてのプロセスが期待したとおりに起動されて実行されていることを確認します。

    例: $ ./status.sh

    図 3. Bigtop プロセスのステータス

    : Spark Thrift サーバーと Hadoop ZKFC は、このベンチマークには必要ありません。

5. Hadoop テスト・スクリプトのインストールと実行

hadoopTest.sh スクリプトを実行して、Hadoop が正常に機能していることを確認します。

例: $ ./hadoopTest.sh

6. Spark テスト・スクリプトのインストールと実行

sparkTest.sh スクリプトを実行します。

例: $ ./sparkTest.sh

結果を確認します。

$ sudo ./sparkTest.sh
Pi is roughly 3.1427

7. Zeppelin に関するチュートリアル

Apache Zeppelin は、用途の広い Web ベースの UI ノートブックです。Zeppelin をインストールすると、自分専用のノートブック・スクリプトを独自の方法で作成し始められるように、Scala で作成されたデフォルト・チュートリアルも一緒にインストールされます。Zeppelin チュートリアルを実行するには、以下の手順に従います。

  1. ブラウザーから Zeppelin にログインします。

    (例: http://<プライベート IP アドレス>:8080)

    図 4. Zeppelin のウェルカム・ページ
  2. 「Zeppelin Tutorial (Zeppelin チュートリアル)」をクリックしてチュートリアルのベンチマークを実行します。

    : 「Interpreter binding (インタープリター・バインディング)」セクションが開いてインタープリターが青で強調表示されたら (図 5 を参照)、「Save (保存)」をクリックします。

    図 5. デフォルト・インタープリター・グループの一部としてロードされたインタープリター
  3. 次に、「Run all paragraphs (すべてのパラグラフを実行)」アイコンをクリックしてチュートリアルを実行します。確認するよう促されたら、 「OK」 をクリックします。
    図 6. 「Run all paragraphs (すべてのパラグラフを実行)」アイコンが表示された Zeppelin UI
  4. ページをスクロールダウンして結果を表示します。
    図 7. Zeppelin チュートリアルのグラフによる結果

8. 株の日計り取引に関する Zeppelin のサンプル・ワークロード

必要に応じて、新しい Zeppelin JSON ファイルをダウンロードします。
wget https://github.com/ibmsoe/bigtop/raw/master/Stock_workload.json

: JSON ファイルは、Zeppelin ノートブックを表示するシステム上に配置する必要があります。

  1. Zeppelin のウェルカム・ページを表示します。
  2. 「Import note (ノートのインポート)」を選択します。
  3. 「Choose a JSON here (ここで JSON を選択)」パネルをクリックします。
  4. Stock_workload.json ファイルを参照して選択します。
  5. 選択した JSON ファイルを実行するために、ウェルカム・ページ上で新しく追加した Stock_workload.json ノートブックを選択します。
図 8. Zeppelin 上の株の日計り取引に関するワークロード・チュートリアル

サンプル株価ワークロード JSON ファイルを開始する前に、「Interpreter (インタープリター)」タブを使用して、システム構成に合わせて Spark プロパティーを最適化することができます。

Spark インタープリターの設定を最適化するには、以下の手順に従います。

  1. 「Interpreter (インタープリター)」タブをクリックします。
  2. 「edit (編集)」をクリックします (図 9 を参照)。
  3. システムに対して Spark のプロパティーが最大限の能力を発揮できるように値を変更します。具体的には、以下のプロパティーの値を変更することを検討してください。
    • spark.cores.max: 使用可能なすべてのプロセッサーを使用するには、値を空にします。
    • Spark.executor.memory: 16 GB 以上の値に設定します。
    • Zeppelin.spark.maxResults: (デフォルトは 1000 です)。良い結果を出すためには、40,000 以上の値に設定します。
  4. 変更内容を保存します。
  5. 「Notebook (ノートブック)」ドロップダウン・リストから「Stock_workload」ノートブックを選択して、このノートブックに戻ります。

: 以下の経験則が推奨されています。

例: SMT が 4 に設定され、64 GB のメモリーを備えた 8 コアの C812L-S というタイプの IBM POWER8 プロセッサー・ベースの SoftLayer ベアメタル・サーバーの場合、以下の設定のときに最良の結果が得られました。

  • spark.cores.max: 24
    (8 – 2) * 4 = 24
  • Spark.executormemory: 100 GB
  • Zeppelin.spark.maxResults: 16000000

例えば、512 GB のメモリーを備えた 10 コアの C812L-L というタイプの IBM POWER8 プロセッサー・ベースの SoftLayer ベアメタル・サーバーの場合、以下の設定のときに最良の結果が得られました。

  • spark.cores.max: 64
  • Spark.executor.memory: 100 GB
  • Zeppelin.spark.maxResults: 16000000
図 9. POWER8 C812L-S の構成が最大限の能力を発揮できるようにするための Spark インタープリターの設定例

: 初めてサンプル JSON ファイル Stock_workload を立ち上げて「Run all paragraphs (すべてのパラグラフを実行)」をクリックすると (図 6 を参照)、データ取り込み対象のすべてのワークロードが失敗したとレポートされます。スクリプトはデータをロードして実際のワークロードを時期尚早に開始したように見えます。以降の実行では、データ取り込みが失敗したと通知されます。これは既知のバグであり、失敗する理由は、stockprices.csv のデータがすでに /user/zeppelin/ ディレクトリーにコピーされているためです。stockprices.csv を削除するか、エラーを無視してください。

この同じ Zeppelin ワークロードを同等の x86 環境で試すと、Spark を使用して実行した場合に POWER8 プロセッサー・ベースの Linux on Power サーバーがもたらすメリットを確めることができます。


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=1035632
ArticleTitle=Ubuntu 14.04 が動作する IBM SoftLayer OpenPOWER 上に Apache Bigtop v1.1 を導入するためのクイック・スタート・ガイド
publish-date=08122016