初心者が Ambari をデプロイし、Ambari を通じて Hadoop 関連コンポーネントをインストールする

目次

1. 準備

1.2 初期設定

1.2.1ホスト名の設定

1.2.2HOSTSファイル

1.2.3 ファイアウォールと selinux をオフにする

1.2.4 パスワード不要の構成 (単一マシンにも必要)

1.2.5 yum ソースを Alibaba ソースに変更する

1.2.6 JAVA環境変数を設定する(Java環境がインストールされていない場合は、最初にインストールする必要があります)

1.2.7NTPクロック同期

1.2.8 httpd サービスのインストール

1.2.9 MySQL のインストールとライブラリの作成

2.Ambari のデプロイ

2.1 パッケージのダウンロード

2.2 ローカルソースの構成

2.3 ambariのインストールと起動

 3. Ambari を通じて独自のコンポーネントをインストールする

4.Ambrai を介して Elk をインストールする

4.1 準備作業

4.1.1 関連するインストール パッケージをダウンロードする

4.1.2 解凍したコピーをアップロードする

4.2 インストール

5. インストールおよび展開中に発生した問題

5.1 エラー: JDBC Uri を使用してクライアント トランスポートを開けませんでした

5.2 ハイブサービス開始時のエラー

5.3 elasticsearch ユーザー名グループの問題

5.4 elasticsearch は format_hdp_stack_version をインポートできません

5.5 kibana は format_hdp_stack_version をインポートできません

5.6 kibana は format_hdp_stack_version をインポートできません

5.7 ホスト名が構成辞書に見つかりませんでした

5.8 マスタとスレーブの起動後の停止

5.9 親ディレクトリ /opt/elasticsearch/master/config が存在しません


 

1. 準備

1.1 環境リリースノート

アンバー:2.7.1.0-169

HDP:3.0.1.0-187

セントス: 3.10.0-123.el7.x86_64

IP:192.168.31.139

仮想マシンは 1 つだけなので、すべてがシングルノード モードになります。

1.2 初期設定

1.2.1ホスト名の設定

エコーマスター >> /etc/ホスト名

1.2.2 HOSTSファイル

cat > /etc/hosts <<EOF

192.168.31.139 マスター

終了後

1.2.3ファイアウォールと selinux をオフにする

#ファイアウォールを閉じる

systemctl は firewalld.service を停止します

systemctl で firewalld.service を無効にする

#ステータスの表示

ファイアウォール-cmd --state

#セリナックスを閉じる

セットフォース0

sed -i 's/SELINUX=*/SELINUX=disabled/g' /etc/sysconfig/selinux

sysctl -p /etc/sysconfig/selinux

1.2.4パスワード不要の構成 (単一マシンにも必要)

次のコマンドを実行します。

1)# ssh-keygen -t rsa

最後まで Enter キーを押します。/root/.ssh/ ディレクトリに、前者が秘密鍵、後者が公開鍵という 2 つのファイル id_rsa と id_rsa.pub が生成されます。

2)# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

1.2.5 yum ソースを Alibaba ソースに変更する

  1. まずはバックアップ

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

  1. リポジトリソースをダウンロードする

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

1.2.6 JAVA環境変数を構成する(Java環境がインストールされていない場合は、最初にインストールする必要があります)

注: デフォルトでは、jre 環境のみが存在し、jdk 開発環境はありません。

linux7 のデフォルトの実行環境 jre を表示する

# ls -lrt /etc/alternatives/java

次の設定をルート ディレクトリの .bash_profile に追加します (java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64 は組み込みの Java バージョンです)。

# jdk 設定

import JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64

import JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre

エクスポート CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

エクスポート PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

次に、環境変数をロードします

ソース .bash_profile

1.2.7 NTP クロック同期

#ntpdate コマンドをインストールする

# yum インストール ntpdate -y

#ネットワーク時刻と同期する

# ntpdate cn.pool.ntp.org

#時刻同期をスケジュールされたタスクに追加する

# crontab -e

* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

#crondサービスを再起動する

#サービスcrondの再起動

1.2.8 httpdサービスのインストール

httpd パッケージと依存パッケージをダウンロードします。

リンク: https://pan.baidu.com/s/1roRtXBkmfM2WOoLcoDfXAQ

抽出コード:q4my

rpmパッケージに従い、以下のコマンドを実行します。

rpm -ivh XXX.rpm

起動する:

#systemctl start httpd.service が
起動時に開始されます。

#systemctl httpd.service を有効にする

1.2.9 MySQL のインストールとライブラリの作成

1) インストール

https://mariadb.org/mariadb/all-releasesからダウンロードするバージョンを選択します

プロンプトに従って、yum ソース情報ファイル
#vi /etc/yum.repos.d/MariaDB.repoを作成します。

[マリアドブ]

名前 = マリアDB

Baseurl = https://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64

gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB

gpgcheck=1

# yum install -y MariaDB サーバー MariaDB クライアント

mariadb を起動します
systemctl mariadb を起動し
、起動時に自動的に起動するように設定します
systemctl enable mariadb

2) ライブラリ ambari および hive ライブラリを作成します。

データベース ambari 文字セット utf8 を作成します。  

ユーザー「ambari」@「%」を作成します。 「XXXXX によって識別されます

*.* のすべての権限を' xxxxx 'で識別された 'ambari'@'%' に付与します。

フラッシュ特権;

データベース ハイブ文字セット utf8 を作成します。  

ユーザー 'hive'@'%' を作成します。 ' XXXXX 'によって識別されます

 *.* のすべての権限を' XXXXX 'で識別された 'hive'@'%' に付与します

3) jdbcドライバーパッケージをダウンロードします。

mysqld の関連 jar は、MySQL::Download MySQL Connector/J (アーカイブ バージョン)からダウンロードして、/usr/share/java の下に配置できます。

2.Ambari のデプロイ

2.1 パッケージのダウンロード

Ambari HDP、HDP-UTILS、HDP-GPL ソース パッケージをダウンロード

# mkdir -p /var/www/html/ambari
将ambari 電影の包解へvar/www/html/ambari下
# tar -zxvf ambari-2.7.1.0-centos7.tar.gz -C /var/www/ html /ambari/
# HDP.zip を解凍します -C /var/www/html/ambari/
# tar -zxvf HDP-GPL-3.0.1.0-centos7-gpl.tar.gz -C /var/www/html/ambari/
# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/ambari/

httpd サービスが開始された後、コマンドcurl http://192.168.31.139:8000/ambari/を実行すると、次の戻り値が httpd サービスが正常であることを示します。

2.2 ローカルソースの構成

cd /etc/yum.repos.d/ 関連するリポジトリ ファイルを設定します

[root@master yum.repos.d]# cat hdp.gpl.repo

#VERSION_NUMBER=3.0.1.0-187

[HDP-GPL-3.0.1.0]

名前=HDP-GPL バージョン - HDP-GPL-3.0.1.0

Baseurl=http://192.168.31.139:8000/ambari/HDP-GPL/centos7/3.0.1.0-187/

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/HDP-GPL/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

有効=1

優先度=1

[root @ master yum . repos . d ] # cat ambari . repo

#VERSION_NUMBER=2.7.1.0-169

[アンバリ-2.7.1.0]

名前=ambari バージョン - ambari-2.7.1.0

Baseurl=http://192.168.31.139:8000/ambari/ambari/centos7/2.7.1.0-169/

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/ambari/centos7/2.7.1.0-169/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

有効=1

優先度=1

[root@master yum.repos.d]# cat hdp.repo

#VERSION_NUMBER=3.0.1.0-187

[HDP-3.0.1.0]

名前=HDP-3.0.1.0

Baseurl=http://192.168.31.139:8000/ambari/HDP/centos7/3.0.1.0-187/

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/HDP/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

有効=1

優先度=1

[HDP-UTILS-1.1.0.22]

名前=HDP-UTILS バージョン - HDP-UTILS-1.1.0.22/

Baseurl=http://192.168.31.139:8000/ambari/HDP-UTILS/centos7/1.1.0.22

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

有効=1

優先度=1

次に、次のコマンドを実行します。

#yum clean all //YUM キャッシュをクリア

#yum makecache //キャッシュを作成する

#yumリポリスト

2.3 ambariのインストールと起動

# yum install ambari-server -y

# ambari サーバーのセットアップ

プロンプトに従ってインストールを選択します
1. y
2. Enter を押します
3. Ambari サーバーが GPL ライセンスの LZO パッケージをダウンロードしてインストールできるようにします [y/n] (n)
4. 詳細なデータベース構成を入力します [y/n] (n)? y
5 .選択肢 (1) を入力してください: 3
ホスト名 (localhost): 192.168.31.139
ポート (7306):
データベース名 (ambari): ambaridb
MySql スキーマ (ambari):
ユーザー名 (ambari): ambari
データベース パスワードを入力してください (ambari):Amvari -123
パスワードを再入力してください:
ambari データベースを構成しています...
------------------------------------- -- -------------------

サービスを開始します
#ambari-server start

サーバーは 8080
DB 構成の整合性チェックのリッスンを開始しました。エラーや警告は見つかりませんでした。
Ambari サーバーの「起動」が正常に完了しました。

Web 初期化構成クラスターにアクセスします
URL: http:192.168.31.139:8080
アカウント/パスワード: admin/admin

 3. Ambari を通じて独自のコンポーネントをインストールする

1) Ambari サービスが正常に開始されました。ブラウザに Ambari アドレスを入力します: http://192.168.31.139:8080。デフォルトのユーザー名は admin、パスワードは admin です。ログイン後、次のインターフェイスに入ります。

 2) 「LAUNCH INSTALL WIZARD」をクリックしてクラスターを作成し、次のインターフェースでクラスター名「HDPSKY」を入力し、名前をカスタマイズします。

 3) 「次へ」をクリックすると、次のインターフェースがポップアップ表示されます。「ローカル リポジトリを使用する」を選択し、セクションで対応する OS を選択し、各項目のベース URL にソース アドレスを入力します。これは、構成されている httpd サービス アドレスです。セクション 1.2.8 に記載されています

4) 「次へ」をクリックすると以下の画面が表示されますので、SSH 秘密鍵による認証方法、つまり 1.2.4 項で相互パスワード免除の設定を選択します。マスター マシン上の id_rsa 秘密キーをローカルにコピーし、[ファイルを選択] をクリックしてアップロードし、[次へ] をクリックします。

 注: 単一ノードの場合は、パスワードなしで構成する必要もあります。つまり、ssh ローカル アドレスのパスワードを入力する必要はありません。これは、構成が正しいことを意味します。それ以外の場合は、「次へ」をクリックした後、サーバー ログには次のエラーが報告されます。

 5) 「次へ」をクリックすると、以下の警告メッセージが表示されますが、ホストファイル解析用に設定されているドメイン名がマスターになっているため、無視して「続行」をクリックします。

6) インストールと構成用のサービスを選択します。デフォルトの選択で十分です。この時点でインストールされていない場合は、プロセスの完了後にインストール用に追加することもできます。

7) サービスマスターの設定

8) サービスのスレーブとクライアントセクションの構成

下のポップアップ ボックスに、関連するパスワードを入力します。デフォルトでは、このパスワードはユーザー名と同じです。

9) カスタマイズされたサービス構成 アラームが発生した場合は、プロンプトに従ってアドレスまたはパスワードを変更してください。

MySQL はすでにマスター ノードにインストールされているため、HIVE データベースを構成するときは、「Existing MySQL」オプションを選択することに注意してください。それ以外の場合は、次のエラーが報告されます。

 

上図の赤枠に注目してください。jdbc チャネルパッケージをダウンロードする必要があります。準備は 1.2.9 の手順 3) を参照してください。以下の操作を行うだけです。

設定変更が完了したら、「接続テスト」をクリックして接続テストを実行し、以下の画面が表示されれば成功です。

 

 

インストールが開始されると、次のプロンプトが表示されます。赤いボックスをクリックすると、分析と解決のためにログの詳細を表示できます。

4.Ambrai を介して Elk をインストールする

4.1 準備作業

4.1.1 関連するインストール パッケージをダウンロードする


elasticsearch-6.4.2.tar.gz
kibana-6.4.2-linux-x86_64.tar.gz
Ambari-Elastic-Service-master.zip
ダウンロード アドレス:
https://www.elastic.co/cn/downloads/past- releases/elasticsearch-6-4-2
ダウンロード アドレス:
https://www.elastic.co/cn/downloads/past-releases/kibana-6-4-2
ダウンロード アドレス: https://github.com/BalaBalaYi/ Ambari-Elastic-Service

4.1.2 解凍したコピーをアップロードする


1) Ambari-Elastic-Service-master.zip
新しい /opt/es ディレクトリを作成し、Ambari-Elastic-Service-master.zip をこのディレクトリにアップロードして解凍します。

解凍したディレクトリに移動し、ELASTICSEARCH-6.4.x フォルダーと KIBANA-6.4.x フォルダーを /var/lib/ambari-server/resources/stacks/HDP/3.0/services ディレクトリにコピーします。

/var/lib/ambari-server/resources/stacks/HDP/3.0/services ディレクトリに入り、ELASTICSEARCH-6.4.x および KIBANA-6.4.x の名前を ELASTICSEARCH および KIBANA に変更します。

2) elasticsearch-6.4.2.tar.gz および kibana-6.4.2-linux-x86_64.tar.gz は、
新しい /var/www/html/es ディレクトリを作成し、kibana-6.4.2-linux-x86_64.tar を追加します。 .gz elasticsearch-6.4.2.tar.gz を含む 2 つの圧縮パッケージをこのディレクトリにアップロードし、ブラウザで http://192.168.31.139:8080/es と入力して、このディレクトリにアクセスできるかどうかをテストします (httpd サービスが必要です。セクション1.2.8)

3) ambari-server を再起動
#ambari-server restart

4.2 インストール

Ambari の「サービス」ページで「サービスの追加」をクリックします。

Elasticsearch と Kibana を確認する

マスターサービスとサーバーサービスがインストールされているノードを選択します

スレーブサービスがインストールされているノードを選択します

サービス構成インターフェイスには、完了する必要があることを示す赤い点があります。

Elasticsearch の Discovery Zen Ping Unicast Hosts パラメータ (以前に選択されたインストール済みノード、マスター)

Elasticsearch elasticsearch のダウンロード URL パラメータ (インストール パッケージのアドレス)

Kibana の Elasticsearch URL パラメーター (使用アドレス、プロンプトに従って構成)

kibana のサーバーホストパラメータ (以前にインストール用に選択したノード)

Kibana kibana のダウンロード URL (インストール パッケージのアドレス、4.1.2 を参照)

「次へ」をクリックし、「デプロイ」をクリックします。

5. インストールおよび展開中に発生した問題

5.1 エラー: JDBC Uri を使用してクライアント トランスポートを開けませんでした

Hadoop ファイル core-site.xmlの 構成情報は次のとおりです。Hadoop を再起動し、hiveserver2 と beeline を再度起動します。

<プロパティ>

<name>hadoop.proxyuser.root.hosts</name>

<値>*</値>

</プロパティ>

<プロパティ>

<name>hadoop.proxyuser.root.groups</name>

<値>*</値>

</プロパティ>

5.2 ハイブサービス開始時のエラー

エラー メッセージ: システム DB と情報スキーマがまだ作成されていません

解決策:
#cd /etc/hive/
#touch /etc/hive/sys.db.createdambari-server
を入力して再起動
#ambari-server restart

5.3 elasticsearchユーザー名グループの問題

错误情報:KeyError: u'elasticsearch'
エラー: エラー: カスタム フック スクリプト ['/usr/bin/python', '/var/lib/ambari-agent/cache/stack-hooks/before-ANY/ を実行できませんscripts/hook.py'、'ANY'、'/var/lib/ambari-agent/data/command-102.json'、'/var/lib/ambari-agent/cache/stack-hooks/before-ANY' , '/var/lib/ambari-agent/data/structurd-out-102.json', 'INFO', '/var/lib/ambari-agent/tmp', 'PROTOCOL_TLSv1_2', '']

解決する:

ambari-server リソースの構成パラメーターを変更し、ignore_groupsusers_create を false から true に変更してから、ユーザーとユーザー グループを手動で作成する必要があります
具体的な手順:

# cd /var/lib/ambari-server/resources/scripts

# python configs.py -u admin -p admin -n cluster_es -l manager.node -t 8080 -a get -c クラスター環境 | grep -iignore_groupsusers_create

# python configs.py -u admin -p admin -nクラスターes -l manager.node -t 8080 -a set -cクラスター環境 -kignore_groupsusers_create -v true

5.4 elasticsearch はformat_hdp_stack_version をインポートできません

注: ImportError: 名前 format_hdp_stack_version をインポートできません

解決する:

最初の一歩、

#c d /var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts

#vim params.py

params.py ファイル内の format_hdp_stack_versionを削除します。

2 番目のステップは、すべての elasticsearch スレーブ ノードの ambari-agent キャッシュをクリアすることです。

# rm -rf /var/lib/ambari-agent/cache/*

ambari-server 側に入り、
#ambari-server restartを再起動します。

5.5 kibana は format_hdp_stack_version をインポートできません

解決策は上記と同じです。
#cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/KIBANA/package/scripts ディレクトリ。
キャッシュをクリアし、ambari サーバーとエージェント サービスを再起動して再インストールするか再試行しますが、次のエラーが発生します。

5.6 kibana は format_hdp_stack_version をインポートできません

エラー: kibana の _new__() は少なくとも 2 つの引数を取ります (1 つは指定されています)

解決策: kibana サーバーノード上に kibana ユーザーを作成します (グループはスクリプトによってすでに作成されています)。

useradd -g useradd

5.7ホスト名が構成辞書に見つかりませんでした

注:最上位テンプレート コード action.destructive_requires_name の「/var/lib/ambari-agent/cache/stacks/HDP/3.0/services/ELASTICSEARCH/package/templates/elasticsearch.master.yml.j2」、行 93
: { {action_destructive_requires_name}}
ファイル「/usr/lib/ambari-agent/lib/resource_management/libraries/script/config_dictionary.py」、73 行目、__getattr__
raise Fail("構成パラメーター '" + self.name + "' でした)構成ディクショナリに見つかりません!")
resource_management.core.Exceptions.Fail: 構成パラメータ 'hostname' が構成ディクショナリに見つかりません!

解決:

cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/configuration

elasticsearch-config.xml を編集し、discovery.zen.ping.unicast.hosts 属性の値が空であることを確認します。

インストール中にこのパラメータを入力し、このパラメータの値を入力しました。

<name>discovery.zen.ping.unicast.hosts</name>
<value>マスター</value>

cd

/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts
params.pyを編集すると、hostname=config['hostname']の書き方が2通りあることが分かりました。

両方の場所を次のように変更します。

ホスト名 = config['configurations']['elasticsearch-config'][' Discovery.zen.ping.unicast.hosts '] 

すべての elasticsearch スレーブ ノードの ambari-agent キャッシュをクリアします。
サーバーノードを再起動 ambari-server restart
スレーブノードを再起動 ambari-agent restart
elasticsearch サービスを再起動し、サービスが開始できることを確認します

5.8マスタとスレーブの起動後の停止

ログを見ると、次の 2 つのエラーが見つかります。

エラーメッセージ:

elasticsearch プロセスの最大ファイル記述子 [4096] が低すぎます。少なくとも [65536] まで増やしてください。
解決策:
各プロセスによって同時に開かれるファイルの最大数が少なすぎます。次の 2 つのコマンドで現在の数を確認できます。

ulimit -Hn
ulimit -Sn

/etc/security/limits.conf ファイルを変更し、構成 (すべてのマスターノードとスレーブノード) を追加します。

エラーメッセージ:

最大仮想メモリ領域 vm.max_map_count [65530] が低すぎるため、少なくとも [262144] まで増やしてください。
解決策:
/etc/sysctl.conf ファイルを変更し、構成 (すべてのマスター ノードとスレーブ ノード) を増やします。

vm.max_map_count=262144

次に、コマンド sysctl -p を実行して有効にします。

sysctl -p

5.9 親ディレクトリ /opt/elasticsearch/master/config が存在しません

このエラーは他の 2 つのスレーブ ノードでも発生しました。
解決策は簡単で、空のディレクトリを作成するだけです。

mkdir -p /opt/elasticsearch/master/config

おすすめ

転載: blog.csdn.net/weixin_40012925/article/details/129987082