目次
1.問題のシナリオ
Ambari + HDPクラスターをインストールし、MySQLのデフォルトポートを変更します。インストール中に問題はありません。レンジャー管理者は、起動時に次のエラーを報告します。
問題の説明: Ambariページで、Rangerコンポーネントをインストールすると、バックグラウンドで使用されるMySQLデータベースのポートが次のように変更されました:デフォルト以外のポート3306。Ranger コンポーネントの起動と再起動時にエラーが報告されました:
/usr/jdk64/java/bin/java -cp /usr/hdp/current/... jdbc:mysql://namenode/ranger -u 'ranger' -p '******' -noheader ......
ポート番号がありません: 3906、実際には次のようになります。...... jdbc:mysql://namenode:3906/ranger ......
最終的なエラーは次のとおりです。
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンク障害問題を解決するためのこの情報によると、迂回後に問題の根本原因が見つかりませんでした。
二、解決策
問題解決プロセス1
最初は、それがMySQL接続タイムアウトの理由だと本当に思っていましたが、以前はMySQLのデフォルトのポートに問題がなかったため、まだわかりませんでした。
原因:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンク障害
データベースが再起動するか、データベースのアイドル接続が設定された最大タイムアウト時間を超えると、データベースは既存のリンクを強制的に切断します。最大タイムアウト時間は、次のコマンドでshow global variables like "wait_timeout";
照会できます。
mysql> show global variables like "wait_timeout";
+---------------+-------+
| VARIABLE_NAME | VALUE |
+---------------+-------+
| wait_timeout | 28800 |
+---------------+-------+
1 row in set (0.00 sec)
しかし、上記の設定を行った後、私なしで元に戻し、この可能性を排除したので、レンジャーの穴だと思ったので、インターネットで検索したところ、誰かが遭遇しました。
問題解決プロセス2
レンジャーのMBARIのビッグピット----ポートのデフォルトは、手動で変更する必要がある、3306です
ambariがレンジャーをインストールするときは、データベースに接続する必要があります。mysqlデータベースが使用されます。このとき、rootユーザーに接続して新しいユーザーを作成する必要があるため、データベースのrootユーザー名とパスワードを入力する必要があります。およびデータベース
実稼働環境でMySQLのデフォルトのポートが変更されたため、問題はここにありますが、レンジャーの開始スクリプトはデフォルトのMySQLポートを使用します。
/usr/jdk64/java/bin/java -cp /usr/hdp/current/... jdbc:mysql://namenode/ranger -u 'ranger' -p '******' -noheader ......
欠落しているポート番号:33066、実際には:...... jdbc:mysql://namenode:33066/ranger ......
そこで、起動スクリプトを入力しました:vim /usr/hdp/current/ranger-admin/db_setup.py jisql_cmd の場所を検索し、jdbc:mysql://の場所を見つけて、手動で変更します。Ambariのバージョンは異なります。 、およびjdbc:myqlの場所は異なる場合があります。
注意:最初の%sの後に変更されたMySQLポートです
可能性のある問題:/usr/hdp/current/ranger-admin/db_setup.pyは、ファイルを編集した後に保存することはできませんvimの、それは読み取り専用である、あなたが試すことができますのsudo vimのをroot権限でファイルを入力します。