2016年2月21日日曜日

テスト・開発環境をほぼ自動で作成する

目的:

Hadoop/HDPでトラブルシューティングなどをする際に、AmbariやHDPの異なるバージョンのVMを作りたい時があると思います。
その際いちいちマニュアルで作ると面倒なので、よく使う手順をBASHでまとめてみました。

本スクリプトでできること:

  • Dockerのインストールと指定した数のコンテナの作成
  • Ambari Serverのインストール(Agentはインストールしません)
  • オプション :HDP用のローカルレポジトリの作成

本スクリプトでしないこと:

  • HDP自体のインストールはしません (-aオプションでします)
    HDPのインストールを自動化されたい場合はAmbari Blueprintを参照してください


ステップ:

  1. Ubuntu OSをVM Guestとしてインストール
    AzureやAWSだと(OpenStackやvCenterでも)簡単にUbuntu 14.0.4か16.04をデプロイできるかと思います。
  2. VirtualBoxやVMWare Workstationなどでは、Ubuntuインストール後のVMをクローンできるようバックアップしておくことをお勧めします。
  3. Ubuntuに”root”としてログイン
  4. スクリプトをダウンロード
    wget https://raw.githubusercontent.com/hajimeo/samples/master/bash/start_hdp.sh -O ./start_hdp.sh
  5. 現在のユーザに実行権限
    chmod u+x ./start_hdp.sh
  6. スクリプトを自動モードで開始
    ./start_hdp.sh -a

    上記は全てデフォルトの設定でHDPのインストールまで完了します。
    もしインストール(設定ではなく)がうまくいかない場合、http://public-repo-1.hortonworks.com が繋がるか確認してください。
または、
  1. スクリプトをインストールモードで開始
    ./start_hdp.sh -i
  2. いくつかの質問に答えていきます。通常はデフォルトの値でOKです。
    • Run apt-get upgrade before setting up? [N]:
    • NTP Server [ntp.ubuntu.com]:
    • IP address for docker0 interface [172.17.0.1]:
    • Network Address (xxx.xxx.xxx.) for docker containers [172.17.100.]:
    • Domain Suffix for docker containers [.localdomain]:
    • Container OS type (small letters) [centos]:
    • Container OS version [6]:
    • How many nodes? [4]:
    • Hostname for docker host in docker private network? [dockerhost1]:
    • Ambari server hostname [node1.localdomain]:
    • Ambari version (used to build repo URL) [2.2.0.0]:
    • If you have set up a Local Repo, please change below
    • Ambari repo [http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.0.0/ambari.repo]:
    • Would you like to set up local repo for HDP? (may take long time to downlaod) [N]: Y
    • Local repository directory (Apache root) [/var/www/html]:
    • HDP (repo) version [2.3.4.0]:
    • URL for HDP repo tar.gz file [http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.3.4.0/HDP-2.3.4.0-centos6-rpm.tar.gz]:
    • URL for UTIL repo tar.gz file [http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz]:
    • INFO : Interview completed.
    • Would you like to save your response? [Y]:
    • INFO : Saved ./start_hdp.resp
    • Would you like to start setup this host? [Y]:
  3. 最後の質問をYesにするとインストールが始まります。
  4. パッケージのダウンロードが一番時間がかかりますが、Azure上だと10〜20分ぐらい待つと、スクリプトが完了する、またはエラーが有った場合はスクリプトが止まります。
  5. ambari-serverの起動に成功しているとブラウザーでアクセスできます。
    *注意* : このままだとローカルのPCからはコンテナ(node1)上のAmbariのポート8080には直接アクセスできません。
    簡単な方法としては、"ssh -D 18080 username@ubuntu-hostname"などでプロキシを作成するか、"ssh -L 8080:node1.localdomain:8080 username@ubuntu-hostname"などでポートフォーワーディングするなどがあります。
    個人的にはProxyとChromeのアドオン”SwitchySharp”などがおすすめです。

    ambari-serverが起動していなかった場合は、node1にログインして"ambari-server start"を試してください。
  6. Ambariにブラウザからアクセスできた場合は、普通通りにHDPをインストールしてください。またはBlueprintなど。
  7. HDPのローカルレポジトリを作成した場合は、Hostnameをdockerhost1.localdomain(最初のインタビュー時に変更可能)に変えてください。
  8. Private Keyは全てのノードの.ssh/id_rsaにあります

インストール完了後

Ubuntu VM再起動後には "./start_hdp. sh -s"でHDPサービスを起動できます。

0 件のコメント:

コメントを投稿