JobManagerは、定期的なタスクやリソース管理を行うための責任があり、各アプリケーション、配備の調整をFLINK。
各クラスタは、JobMangager高可用性構築する必要があるので、jobManager FLINKは、問題がある場合jobManagerた後、新しいタスクを提出し、新しいタスクが失敗し実行することはできません、これは、単一障害点になります持っています。
同様の飼育係、だけでなく、次のような問題の一つは、他の利用可能なjobManagerがタスクを引き継ぐ場合は、可用性の高いjobManagerビルドした後、それがリーダーになります。タスクがFLINKが失敗したことはありません。JobManagerは、スタンドアロンおよびクラスタバージョンで構築することができます。
JobManger HA HA FLINKバージョンのスタンドアロンバージョンを構築し、次のスタート。
まず、我々はときに、プログラムが起動し、Telnetアクセスプログラムが起動しますので、無料のSSHログイン秘密を設定する必要があります。
コマンドを実行し、あなたは自分のマシンを避けるために秘密にログインすることができます。無料の機密ログインせずに、その後、「開始ポート22の接続を拒否した」ときに報告されますHadoopを開始します。
SSH-keygenは - トンRSA SSH -copy- ID -i〜/。sshの /id_rsa.pub huangqingshi @ localhostの
そして、Hadoopのバイナリファイルの公式ウェブサイトをダウンロードし、解凍し始めた、私はHadoopの-3.1.3バージョンのバージョンをダウンロードしました。Hadoopのインストール目的JobManager HadoopのFLINK高可用性のストレージ・メタデータ情報を使用することです。
私はあなたのHadoopクラスタのバージョンを構築することができ、Hadoopのスタンドアロンバージョンをインストールしました。次は、Hadoopの設定でした。
など/ Hadoopの/ coresite.xml設定メーリングリストのアドレスHDFSプロトコルは、名前ノードのファイルシステムおよび一時ファイルのディレクトリを指定しました。
<構成> <プロパティ> < - -名前ノードのHDFSプロトコル通信アドレス指定されたファイルシステム!> <名前> fs.defaultFS </名前> <値> HDFS:// 127.0.0.1:9000 </ value>の < /プロパティ> <プロパティ> <! - Hadoopのクラスタは、一時ファイルを格納するディレクトリを指定- > 。<名前> hadoop.tmp DIR </名前> <値>を/ tmp / Hadoopのを/ tmp </ value>の </プロパティ> </設定>
等/ Hadoopの/ HDFS-site.xmlのを構成するデータブロックが既知である場合、メタデータ格納場所が提供され、DFSのリスニングポート。
<構成> <プロパティ> <! -名前ノードのノードデータの格納場所(すなわち、メタデータ)複数のディレクトリは、フォールトトレランスを実現指定することができ、複数のディレクトリは、カンマで区切られた- > 。<名前> dfs.namenode.name DIRを < /名前> <値> / TMP / Hadoopの/名前ノード/データ</ value>の </プロパティ> <プロパティ> <! -格納位置にデータノードのノードデータ(すなわち、データブロック) - > <名前> dfs.datanode。 。データDIR </名前> <値>を/ tmp / Hadoopの/データノード/データ</ value>の </プロパティ> <プロパティ> <! -手動で設定リスニングポートDFS - > <名前> dfs.http.address < /名前> <値> 127.0。0.1:50070 </ value>の </ property>の </設定>
など/ Hadoopの/糸-site.xmlの設定、補助的なサービスは、ノードマネージャとするresourceManagerホスト名で実行するように構成されました。
< 設定> <! - サイトの特定の糸構成プロパティ- > < プロパティ> <! - 補助的なサービスが設定NodeManger上で実行されています。糸のmapreduce_shuffleのMapReduceプログラムの後に実行するように設定する必要があります> - < 名前> yarn.nodemanager.aux-サービス</ 名前> < 値> mapreduce_shuffle </ 値> </ プロパティ> < プロパティ> <! - このResourceManagerホスト名- > < 名前> yarn.resourcemanager.hostname < < 値>ローカルホスト</ 値> </ プロパティ> </ 構成>
など/ Hadoopの/ mapred-site.xmlの設定、MapReduceは糸にジョブの実行を指定しました。
< プロパティ> <! - 指定のMapReduce作业运行在糸上- > < 名前> mapreduce.framework.name </ 名前> < 値>糸</ 値> </ プロパティ> </ 設定>
フォーマット操作を実行するための名前ノードの必要性は、直接起動を行っていません「名前ノードがフォーマットされていない。」と報告されます。
ビン/ HDFS名前ノード-format
次のスタートHadoopのは、成功した場合、以下のURLにアクセスすることができます。
http:// localhostを:8088 / ビューのノードのクラスタを構成します
http:// localhostを:8042 /ノード ビューノード関連情報。
Hadoopのスタンドアローン構造は、上述の完成されています。
あなたはHadoopののプラグインFLINKをダウンロードする必要があります次に、開始時間または他FLINKは文句を言うでしょう。
FLINK libフォルダにプラグインファイルをダウンロードしてください。
見た目のconf FLINKフォルダ/ FLINK-conf.yamlを設定します。そして、HAモードでは、チェックポイントとリーダー選挙のためのマスター、飼育係FLINKを回復するための飼育係、メタデータストレージのパスを指定しました。最後のアドレスは、スタンドアロンのZooKeeperまたはクラスタとして。
高可用性:飼育係
の高availability.storageDir:HDFS://127.0.0.1:9000 / FLINK / haの
高availability.zookeeper.quorum:localhostを:2181
そのようなJobManager最大ヒープメモリのような他のデフォルト設定では、1G、各タスクマネージャタスクスロット、タスクのシリアル実行です。
次に、JobManagerを開始2つのマスターノードの構成FLINKのCONF /マスター。
localhost:8081
localhost:8082
配置flink的 conf/slaver 用于配置三个从节点TaskManager。
localhost
localhost
localhost
进入zookeeper路径并且启动zookeeper
bin/zkServer.sh start
进入flink路径并启动flink。
bin/start-cluster.sh conf/flink-conf.yaml
启动截图说明启动了两个节点的HA集群。
执行jps,两个JobManager节点和三个TaskManager节点:
浏览器访问 http://localhost:8081 和 http://localhost:8082,查看里边的日志,搜索granted leadership的说明是主JobManager,如下图。8082端口说明为主JobMaster
一个JobManager, 里边有三个TaskManager,两个JobManager共享这三个TaskManager:
接下来我们来验证一下集群的HA功能,我们已经知道8082为主JobManager,然后我们找到它的PID,使用如下命令:
ps -ef | grep StandaloneSession
我们将其kill掉,执行命令kill -9 51963,此时在访问localhost:8082 就不能访问了。localhost:8081 还可以访问,还可以提供服务。接下来咱们重新 启动flink的JobManager 8082 端口。
bin/jobmanager.sh start localhost 8082
此时8081已经成为leader了,继续提供高可用的HA了。
好了,到此就算搭建完成了。