blog

ambari2.7.3+HDP3.1.0オフラインビルド HA高可用性クラスタ

インストール\nソフトウェアのバージョン\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n管理ソフトウェアのバージョンは...

Jul 6, 2020 · 15 min. read
シェア

インストール手順

  1. ソフトウェアバージョン

    ambari2.7.3.0hdp管理ソフトウェア
    HDP3.1.0.0
    ジェイディーケー1.8.0_181バージョンは1.8以上でなければなりません。
    mysql5.7.30バージョンは5.7以上でなければなりません。

  2. クラスタの計画は、現在の計画では、5つのノードを使用して、クラスタのインストールのためのHAを構築します。計画は以下の通りです:

環境チェック

  1. selinux をオフにします:

    # selinuxのステータスをチェックする
    getenforce
    Disabled #enforceingonの場合はpermissive、warningの場合はpermissive、offの場合はdisabledとなる。
    # オフになっている場合は、次のステップをスキップする。 オフになっていない場合は、次のステップを修正する。/etc/sysconfig/selinux
    vim /etc/sysconfig/selinux
    # 以下をdisabledに修正する。
    SELINUX=disabled
    # サーバーを再起動する
    reboot
    
  2. 各ノードでファイアウォールをオフにする必要があります:

    # ファイアウォールの状態をチェックする
    service firewalld status
    Redirecting to /bin/systemctl status firewalld.service
    firewalld.service
     Loaded: masked (/dev/null; bad)
     Active: inactive (dead)
     
    # ファイアウォールをオフにする
    service firewalld stop
    # ファイアウォールの自動起動を無効にする
    chkconfig firewalld off
    
  3. 各ノードに必要なJDKのインストール:

    # どのjavaを使用しているかを確認し、もしシステムに付属している場合はアンインストールしてからインストールする。
    which java
    /usr/java/jdk1.8.0_181/bin/java
    # システムにインストールされているjavaをチェックする。
    yum list installed | grep java
    # システムにインストールされているjavaをアンインストールする。
    yum remove -y java*
    # javaをインストールするには、まずtarボールをサーバーにアップロードする必要がある。
    mkdir /usr/local/java
    tar -zxvf jdk-8u188-linux-x64.tar.gz -C /usr/local/java
    # で環境変数を設定する。/etc/profile次の内容をファイルに追加する
    #JAVA_HOME
    export JAVA_HOME=/usr/local/java/jdk1.8.0_181
    export CLASSPATH=.:$JAVA_HOME/lib:/lib
    export PATH=$JAVA_HOME/bin:$PATH
    # 環境変数を追加すると、このエラーが表示される。
    source /etc/profile
    # 動作するか確認する
    java -version
    java version "1.8.0_181"
    Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot(TM) 64-Bit Server VM (build -b13, mixed mode)
    
  4. ホスト名の変更、各ノードの/etc/hostnameの下にそれぞれのホスト名を記入してください:

    noed1
  5. sshの設定です:

    # マスターノードnode1上の他のノードにリモートログインしてみて、リモートノードのホスト名が環境に対応したものに変更されていることに注意する。
    ssh node2
    Last login: Fri Aug : from .0.3
    ## 設定されていない場合は、パスワードなしのログインを設定する:
    # マスターノードで鍵ペアを生成する:
    ssh-keygen -t rsa
    # 公開鍵をコピーする
    cd ~/.ssh; cp id_rsa.pub authorized_keys
    ## 公開鍵を他のノードに配布する
    # 他のノード用のディレクトリを作成する
    mkdir ~/.ssh;
    # 方法1、rootのパスワードを知る:
    scp authorized_keys root@node2:~/.ssh/authorized_keys
    # 方法2、パスワードを知らない場合は、手動でキーをコピーするしかない。
    cat ~/.ssh/id_rsa.pub #  
    vim ~/.ssh/authorized_keys # 他のノードは、公開鍵を
    # 公開鍵をコピーし、他のノードがディレクトリのパーミッションを変更する
    chmod -R 600 ~/.ssh 
    # マスターノードで、他のノードにリモートログインしてみる。
    ssh node2
    
  6. ホストの設定:

    vim /etc/hosts
    # 修正する環境に合わせて、以下の内容を追加する:
    .0.81 node1
    .0.82 node2
    .0.83 node3
    .0.84 node4
    # ホストを他のノードに分散させる
    scp /etc/hosts root@node2:/etc/hosts
    

centosローカルソースの作成

centosローカルソースは、システムが最小で外部ネットワークがない場合にのみ作成されます。

  1. ダウンロードする centos-dvd または everything の対応するバージョンを選択してください:CentOS Linux ISO イメージのダウンロード

  2. httpd サービスがインストールされ、自己起動しています:

    rpm -ivh mailcap-2.1.48-2.mga7.noarch.rpm
    rpm -ivh apr-1.4.8-5.el7.x86_64.rpm
    rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm 
    rpm -ivh httpd-tools-2.4.6-93.el7.centos.x86_64.rpm
    rpm -ivh httpd-2.4.6-93.el7.centos.x86_64.rpm 
    service httpd start
    chkconfig httpd on
    
  3. ダウンロードしたCentOS-7-x86_64-DVD-1810.isoをサーバーの/opt/osディレクトリにアップロードしてマウントします:

    # -o loop:デバイスのマウント方法を指定する。loopは、システム上のパーティションとしてファイルをマウントすることを意味する。
    # -t iso9660:ファイルシステムのタイプを指定し、ISOファイルタイプはiso9660に対応し、他のファイルタイプは、独自の情報を検索することができる。
    mount -o loop -t iso9660 /opt/os/CentOS-7-x86_64-DVD-1810.iso /var/www/html/centos
    mount: /dev/loop0 書き込み禁止、読み取り専用でマウントされる
    
  4. 既存のyumライブラリを削除します:

    cd /etc/yum.repos.d/
    mkdir ../etc/yum.repos.d.bak
    mv ./* ../etc/yum.repos.d.bak
    
  5. /etc/yum.repos.d/base.repo以下の項目を記入してください:

    [centos] name=centos baseurl=http://.../os enabled=1 gpgcheck=0 #パラメータの意味 # name:yumソースの名前 # baseurl:yumソースのsoftwareディレクトリ。"http://"これは、umソースがtpプロトコルのリモートumソースであることを意味する。もちろん、tpや他のファイル転送プロトコルであることもある; # enabled:yumコンフィギュレーションセクションが有効かどうかを示す。 # gpgcheck:は、yumのソースにパッケージのセキュリティチェックサムを指定するかどうかを示し、0はチェックサムがないことを意味し、ローカルにマウントされたイメージは、ソフトウェアが安全であると考えることができ、チェックする必要はない;
  6. コマンドを実行してyumソースを更新すると、yum経由でisoからいくつかのパッケージをインストールできます:

    yum clean all
    yum update
    

依存ライブラリのプリインストール

  1. システムが最小限の場合、以下のライブラリが欠落しており、インストールする必要があります。欠落している場合は、インストール中のエラーを避けるために、ライブラリが存在するかどうかを確認することをお勧めします;

  2. システムライブラリのインストール:

    yum install -y redhat-lsb yum-utils createrepo net-tools
    
  3. 依存ライブラリのインストール、mysqlとhdpなどを使用する必要があります:

    yum install -y libaio libaio-devel postgresql-devel
    # libtirpcなしでcentos dvdだけをマウントする-develネットワークがない場合は、対応するrpmパッケージをダウンロードしてアップロードし、手動でインストールする必要がある。
    rpm -ivh libtirpc-0.2.4-0.16.el7.x86_64.rpm
    rpm -ivh libtirpc-devel-0.2.4-0.16.el7.x86_64.rpm
    

mysqlのインストール

  1. linuxからのmysqlのアンインストール

    rpm -qa | grep mysql
    rpm -e --nodeps mysql-connector-java-5.1.25-3.el7.noarch
    
  2. linuxのmariadbをアンインストールします。

    rpm -qa | grep mariadb
    rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
    #mysqlの設定ファイルを削除する
    rm -f /etc/myf
    
  3. mysql のユーザとグループがあるかどうかを確認します:

    cat /etc/passwd | grep mysql
    cat /etc/group | grep mysql
    #存在しない場合は、ログインしないユーザーとグループを作成する。
    useradd -s /sbin/nologin mysql
    
  4. mysqlのインストール

    rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm 
    rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
    
    1. mysqlを再起動します:service mysqld start

    2. 文字セット情報を表示します:chkconfig mysqld on

  5. rootとしてログインし、hiveデータベースとambariデータベース、およびそれらに対応するユーザーを作成し、パスワードが自分のものに変更されていることに注意してください:

    [client] default-character-set=utf8mb4 [mysql] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4'

hdpインストール

  1. hdpのインストール中に、すべてのノードにJDK8がインストールされていることを確認し、マスターノードから他のノードにSSHフリーログインできるようにSSHを設定し、ファイアウォールとSELinuxをオフにします;

  2. 以下のファイルを含むインストール・ファイルをマスター・ノードにアップロードします:

    chown -R mysql:mysql /var/lib/mysql
    chown -R mysql:mysql /var/run/mysqld/
    chown mysql:mysql /var/log/mysqld.log
    
  3. yumツールライブラリをインストールします:

    CREATE DATABASE hive CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    CREATE DATABASE ambari CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    CREATE USER 'hive'@'%'IDENTIFIED BY 'Hive_123';
    CREATE USER 'ambari'@'%'IDENTIFIED BY 'Ambari_123';
    GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%' identified by 'Hive_123';
    GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'%' identified by 'Ambari_123';
    flush privileges;
    
  4. マスターノードはapache httpdをインストールし、サービスを開始し、ブートするように設定します:

    ambari-2.7.3.0-centos7.tar.gz
    HDP-3.1.0.0-centos7-rpm.tar.gz
    HDP-GPL-3.1.0.0-centos7-gpl.tar.gz
    HDP-UTILS-1.1.0.22-centos7.tar.gz
    
  5. httpdによって生成された/var/www/htmlディレクトリにambariとhdpディレクトリを作成します。

    yum install -y yum-utils
    yum install -y createrepo
    yum repolist
    #オフラインインストールは以下のコマンドで行う:
    rpm -ivh ./yum-utils-1.1.31-54.el7_8.noarch.rpm
    rpm -ivh ./createrepo-0.9.9-28.el7.noarch.rpm
    
  6. ambariとhdpのインストールファイルを対応するhtmlディレクトリに展開します:

    yum install -y httpd
    #オフラインインストールは以下のコマンドで行う:
    rpm -ivh mailcap-2.1.48-2.mga7.noarch.rpm
    rpm -ivh apr-1.4.8-5.el7.x86_64.rpm
    rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm 
    rpm -ivh httpd-tools-2.4.6-93.el7.centos.x86_64.rpm
    rpm -ivh httpd-2.4.6-93.el7.centos.x86_64.rpm 
    
  7. mkdir /var/www/html/ambari mkdir /var/www/html/hdp ambariのローカルリポジトリを設定し、 , に何かを書き込み、baseurlとgpgkeyがローカルパスであることに注意してください:

    mkdir /var/www/html/ambari
    mkdir /var/www/html/hdp
    
  8. tar -zxvf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/ambari/ tar -zxvf HDP-3.1.0.0-centos7-rpm.tar.gz -C /var/www/html/hdp/ tar -zxvf HDP-GPL-3.1.0.0-centos7-gpl.tar.gz -C /var/www/html/hdp/ tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/ hdpのローカルレポ****を以下のように設定します:

    tar -zxvf ambari-2.7.3.0-centos7.tar.gz -C /var/www/html/ambari/
    tar -zxvf HDP-3.1.0.0-centos7-rpm.tar.gz -C /var/www/html/hdp/
    tar -zxvf HDP-GPL-3.1.0.0-centos7-gpl.tar.gz -C /var/www/html/hdp/
    tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/
    
  9. 地元のソースを生成します:

    #VERSION_NUMBER=2.7.3.0-139 [ambari-2.7.3.0] #json.url = http://--..//_.on name=ambari Version - ambari-2.7.3.0 #baseurl=http://--..///.//...0 baseurl=http://...////...-39 gpgcheck=1 #gpgkey=http://--..///.//.../--/---ns gpgkey=http://...////...-/--/---ns enabled=1 priority=1

    ブラウザで「http://192.168.0.251"/ambari/」と 「http://192.168.0.251"/hdp/」を 開くと、次のように表示されます:

  10. yumのソースを変更します:

    #VERSION_NUMBER=3.1.0.0-78 [HDP-3.1.0.0] name=HDP Version - HDP-3.1.0.0 baseurl=http://...///s7/ gpgcheck=1 gpgkey=http://...////...-/--/---ns enabled=1 priority=1 [HDP-GPL-3.1.0.0] name=HDP-GPL Version - HDP-GPL-3.1.0.0 baseurl=http://...//-/s7/ gpgcheck=1 gpgkey=http://...//-//...-/--/---ns enabled=1 priority=1 [HDP-UTILS-1.1.0.22] name=HDP-UTILS Version - HDP-UTILS-1.1.0.22 baseurl=http://...//-/s7/ gpgcheck=1 gpgkey=http://...//-//.../--/---ns enabled=1 priority=1

  11. マスターノードにambari-serverをインストール

    1. サーバ上の任意のディレクトリにmysqlドライバをアップロードします。

    2. ambari-serverをインストールします:createrepo /var/www/html/ambari/ambari/centos7 createrepo /var/www/html/hdp/HDP/centos7 createrepo /var/www/html/hdp/HDP-UTILS/centos7 createrepo /var/www/html/hdp/HDP-GPL/centos7

    3. ambariデータベースの初期化:

      createrepo /var/www/html/ambari/ambari/centos7
      createrepo /var/www/html/hdp/HDP/centos7
      createrepo /var/www/html/hdp/HDP-UTILS/centos7
      createrepo /var/www/html/hdp/HDP-GPL/centos7
      
    4. 全ノードがアンバリのユーザー***を作成します:

      yum clean all
      yum update
      yum repolist
      
    5. ambariユーザーにsudo権限を追加するには、/etc/sudoersに以下を追加します:

      mysql -u ambari -p
      use ambari;
      source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
      show tables;
      #合計111テーブル
      
  12. アンバリのサービス開始

    useradd ambari
    passwd ambari
    
  13. hdpのインストール:

    1. ログインambari ui:192.168.0.251:8080、デフォルトのユーザー名とパスワードはadmin:adminです。

    2. クラスタ名を設定します:

    3. ambari ALL=(ALL) NOPASSWD:ALL バージョン情報を追加し、ドロップダウンし、バージョンを追加を選択し、以前のhttpdサービスのHDPのHDP-3.1.0.0-78.xmlファイルのパスを記入し、ここに、hdpのインストールにこのバージョン情報を追加した後です:

    4. HDPのバージョンを選択し、ここでUse Local Repositoryにチェックを入れ、redhat7を残して他のOSを削除し、対応するhttpパスを記入します:

      ambari ALL=(ALL) NOPASSWD:ALL

    5. ノードと鍵を設定します。鍵はマスターノードのルートユーザーの秘密鍵で、デフォルトのパスは~/.ssh/id_rsaです:

    6. ambari-server setupノードを選択し、インストールを待ち、エラーがあれば修正する必要があります:

    7. ambari-server start ここではhbaseとkafkaは必要ありません

    8. マスター構成は、コンポーネントの以前のクラスタ計画に基づいています:

    9. スレーブ構成で、コンポーネントは前回のクラスタ計画に従って構成されています:

    10. http://...////...-/-...-.mlhiveの接続設定は、データベースのURLは、mysqlの対応するノードに記入することができます: 、接続をテストするためにアカウントのパスワードを記入し、接続エラーが実行しようとした場合:データベースドライバを指定し、再試行してください:

      データディレクトリおよびその他の設定は、デフォルトでは、データディレクトリを手動で作成する必要はありませんが、すでにhdfsを確保する必要が存在する場合:hadoopユーザーとグループは、読み取りと書き込みのアクセス許可を持って、そうでない場合は、サービスの起動がエラーになりますディスクマウントによると、ディスク領域のデータディレクトリを変更するディレクトリになりますディスクマウントの状況を表示するには、df -ahを介して、大きいです;

    11. レビュー

    12. サービスをインストールし、開始します:

      インストールが完了した後、いくつかのサービスが手動で再起動しようとする管理ページに入るために起動に失敗する可能性があり、ログによると、理由を見つけるために、それらのほとんどは、ディレクトリのアクセス許可またはポート占有の理由です:

      最後に以下のコンポーネントが正しく起動することを確認してください:

hdfs HAビルド

HAは、完全に分散されたクラスタをセットアップし、サービスを開始した後に構築されます。

  1. HDFSサービスのHA設定を開始します:

  2. HAクラスタの名前空間を設定します:

  3. 追加の NameNode を配置するノードを選択します:

  4. ノード間で削除および追加されたコンポーネントのリスト:

  5. NameNodeノードにログインしてチェックポイントを設定し、手順に従って内部のコマンドを実行します:

  6. コンポーネント構成:

  7. NameNodeノードにログインし、指定されたコマンドを実行するだけです:

  8. サービスの設置

  9. ZKFCフォーマットとNameNodeメタデータの初期セッション:

  10. サービス開始

ヤーンHAのセットアップ

ambari-server start
  1. ヤーンコンポーネントでヤーンHAを有効にした後

  2. ResourceManagerサービスをインストールするノードを選択します:

  3. サービスリストの追加と削除

  4. 設置サービス

hiveserver2 HA

  1. hostsでextraとiveserver2をロードするノードに移動します:

  2. Add to install で hiveserver2 を選択するだけです:

サービスアクティベーション

すべてのサービスをインストールした後、その後のサービスの管理はrootユーザーの起動で維持するのではなく、ここではambariで管理します:

  1. まず、ambari-uiのすべてのサービスを停止してから、ambariのサービスを停止してください:

    http://...///s7/
    http://...//-/s7/
    http://...//-/s7/
    
  2. その後、ambariユーザーに切り替えて再起動し、ambariサービスを開始してから、ambari-uiにログインしてクラスタサービスを立ち上げます:

    yarnHAのセットアップも、完全に分散したクラスタをセットアップし、サービスを開始した後に行う。
    
  3. 最終的には、利用したいサービスを選択して起動するだけです:

問題解決

  1. # すべてのノードで実行する service ambari-agent stop # マスターノードが service ambari-server stop # すべてのノードで実行する chown -R ambari:ambari /var/log/ambari-agent/ /var/log/ambari-server/ chown -R ambari:ambari /var/lib/ambari-agent /var/lib/ambari-server chown -R ams:hadoop /var/lib/ambari-metrics-monitor/ chown -R ambari:ambari /var/run/ambari-agent /var/run/ambari-server :

    # すべてのノードで実行する su ambari # マスターノードが sudo service ambari-server start # すべてのノードで実行する sudo service ambari-agent start pythonのstrのデフォルトはasciiエンコーディングですが、これはunicodeエンコーディングと衝突し、このエラーを報告します:

    # Sobetoを使用して、次の内容を実装する。
    service ambari-agent stop
    # マスタ・ノードが
    service ambari-server stop
    # すべてのノードで実行する
    chown -R ambari:ambari /var/log/ambari-agent/ /var/log/ambari-server/
    chown -R ambari:ambari /var/lib/ambari-agent /var/lib/ambari-server
    chown -R ams:hadoop /var/lib/ambari-metrics-monitor/
    chown -R ambari:ambari /var/run/ambari-agent /var/run/ambari-server
    
Read next

双方向データバインディングを実装するいくつかの方法

ユーザがテキストを入力したり、ボタンをクリックしたりするなどの DOM イベント。 () を使用して、セッター、ゲッターをハイジャックし、データが変更されたときにサブスクライバにメッセージを発行し、対応するリスナー・コールバックをトリガーします。

Jul 6, 2020 · 1 min read