著者:徐Dechang
時間:2018年7月26日
背景:Hadoopのエコシステム、クラスタノード間は、典型的には、通信するためにホスト名(ドメイン名)を使用します。現時点では、私たちのクラスタは、ホスト名とIPとの間のマッピングを行うために/ etc / hostsファイルを使用することです。ホストファイルを使用する利点はシンプルですが、非常に重大な欠点があるクラスタサイズの拡大とその維持費がどんどん大きくなり、故障のhostsファイルにクラスタ拡張が原因非常に頻繁に同期されていません。より良いソリューションは、ホスト名とIPとの間のマッピングを管理するためにDNSを使用することです。
まず、問題に対処する必要性
- 外部ホスト名は、クラスタ内で解決することができるが、
- クラスタ内のIPホストは、ソリューションに対抗することができます
- 既存のクラスタに基づいて、hostsファイルの互換性のあるホスト名が必要です
会社のDNSサーバは、抗IPソリューションをサポートしていないので、それは自作のDNSでなければなりません。そして、ホスト名は、クラスタ外に解決されることを保証するために、あなたは自分のDNS(内部)と外部のDNS(DNS統一会社)クラスター展開(新しいホスト名)の間、ホスト名を登録する必要があります。基本的なアーキテクチャを以下に示します。
二、DNSサーバの選択
最も一般的に使用される主にdnsmasqのサービスとバインドをDNS
- dnsmasqの:軽量、シンプルな構成のメンテナンス
- バインド:ヘビー級、フィールドは、業界標準のDNSで、同期および高可用性クラスタ構成をサポートしています
私たちは、DNSサーバとしてdnsmasqのを選んだので、現在のクラスタサイズや構成を考えると、私たちのニーズを満たすために、シンプルでdnsmasqのです。
第三に、自作のDNS設定
- ストックホスト名解決ファイル(元の/ etc / hosts)
- 新しいホスト名解決ファイル
- 会社に転送し、すべての外部のDNSドメイン名
第四に、ホストの構成
- 自作のDNSを指しているの/etc/resolv.conf
- オープンnscdを、DNSキャッシュ、自作のDNSハングクラスタへの影響を軽減
第五に、ホスト名(ドメイン名)の登録作業
矛盾があるかもしれない会社と内部DNS(外部の)DNS解決を回避するために、私たちは以下の仕様を行います。
- 192-168-1-1.xxx.com(xxx.comドメイン名サフィックス):IPとドメイン名は、ホストのIP 192.168.1.1、ホスト名と1対1のマッピング、1つです
- 内部DNS(DNSMASQ)に、定期的なスクリプトを介して、バランスシートに応じて自動的に文書の解析[1]ルールによって生成されました
- スクリプトを経由してDNSシステムの運営会社、完全自動で登録新しいホスト名