まず、ハートビート・メカニズム
1、報告されたハートビート・コンセプト
データノードは、定期的にハートビート名前ノードにレポートを送信する、目的は、名前ノード自身の生存状況と利用可能なスペースを伝えることです。デフォルトの時間は3秒です。
2、心拍レポートの特定の役割
( 1)名前ノードに自身の生存状況と利用可能なスペースを報告
( 2)データノード名前ノードを実行するためにレポートのそれぞれに格納された情報ブロック、送信ブロックを名前ノードに報告します。
図3に示すように、メタデータが格納されている名前ノードの位置
( 1 )ハードディスク
/ホーム/ Hadoopの/データ/ hadoopdata /名前/現在
これは、 3つの部分を:
、抽象的なツリー
対応関係B、及びそれら、およびブロック
ストレージ位置C、データブロック
( 2 )メモリ
メタデータの読み込みおよび書き込み操作のリアルタイム操作。第1のメモリにメタデータ情報は、抽象ツリー、部分データとの対応関係のブロックを含む(/hadoop-2.7.6.tar.gz [blk01:[]、blk02は:[]])ブロックの格納位置を含みませんA。
ユーザーがメモリ位置のブロックから読み取る必要がある場合には、ブロック情報は、取得データノード名前ノードのハートビートの報告(レポートブロック)を送信する時間
HDP01 blk01 blk02 --->名前ノード
hdp03 blk01 blk02 --->名前ノード
/hadoop-2.7.6.tar.gz [blk01:[HDP01、hdp03]、blk02:[HDP01、hdp03]
4、データノードのダウンタイムを確認します
( 1 )ハートビートレポートの送信を停止し
連続したデフォルトのものが連続10 * 3 = 30代以降であるほどを受け入れるために10ビートを。これは、限り真ん中が再びレコードハートビートを受信した10倍です。
( 2 )名前ノード送信チェック
連続で 10名前ノードの後にデータノードレポートのハートビートを受信していない、名前ノードはデータノードは、バックグラウンドガード(ブロッキング)データノードに検査結果を待っているのプロセスを開きますチェックの名前ノードを送信するために、名前ノードのイニシアチブをフリーズすることが結論付けました。デフォルト5分:名前ノードデータノードの時刻を確認。
デフォルトのチェックは二回5分をチェックするには、2回の連続した検査(10分)には応答がダウンしてデータノード(送信待ち5分)ではないことを確認しました。10 * 3S + 300S *:名前ノードは、総所要時間のダウンタイムのデータノードを確認 2 = 630sを
第二に、戦略ラック
1つのコピーのストレージ戦略
保存された各データブロックの複数のコピーを決定する方法、各ブロック3のHDFSのデフォルトのコピーは、各ブロックの異なるノード上の複数のコピーに格納されています。
2、サーバルーム
U-サーバは、uは、いわゆる「PCサーバの1U」の単位であるEIA仕様、4.445センチメートル製品の厚さを満たすために形状です。
3、デフォルトのケース
デフォルトのコピー 3、デフォルトでフレーム2、10個のノード。配置戦略の複数のコピー:
( 1)クライアントノード上の最初のコピーを
重複データブロックを防ぐために、客観的には成功したアップロードではありません
保証の最初のコピー成功のアップロードの最大の度合い
クライアントはクラスタノードでない場合は 、ランダムにノードを選択
( 2)第二の異なるラックの最初のコピー内の任意のノードにコピーします
目的:データのセキュリティを確保するには
全体的な電源障害からラックを防ぐ ネットオフ
(第三のコピー上と同じラックの第2のコピー異なるノード3について)
目的:送信を容易にするために 、データ伝送の効率を高めるために、
図4に示すように、実際の生産
( 1)複数のラックを
可能なラック 3,4,5,6,7 ....
堆積物のコピーは、調整が発生しました
コピー 3
各ラックを堆積させます
(複数2)部屋
別の部屋に格納されたデータのコピー
別の部屋、別のラック、異なるノード
ラックストアポリシーは、異なるノードに格納されている構成異なるコピーせずに、デフォルトで、構成することができます。
第三に、ロード・バランシング
1、の概念
Hadoopクラスタの複数のデータノードは、それぞれ、すべてのかなりの負荷分散データノードのハードウェア関連のデータノードに格納されたデータを占めました。
総ストレージクラスタ 60グラム
HDP01 50グラム20G 40%
hdp02 50グラムの20グラムの40%
hdp03 50グラムの20グラムの40%
2、デフォルトのロード・バランシング
以下のためのクラスタノードのデータノード不均衡な自動負荷分散、負荷分散の負荷の下でそのスタートを見つけた場合、負荷名前ノードのためのHadoopクラスタを定期的にクラスタをチェックし、小さな割合を格納するデータノードのストレージノードの大部分のデータ移動データノードノード。
HDP01 50グラム40G 80%
hdp02 50グラムの20グラムの20%
hdp03 50グラム0グラム0%
ネットワークを介した伝送にデータを送信する基本的なネットワークトランスポート運動にHDP01 hdp03データブロック(それは、異なるノード間で送信されるため)をHDP01 hdp03に削除HDP01。
デフォルトでは、この帯域幅は小さい:デフォルトの帯域幅 1M / S
3、手動ロードバランシング
デフォルトの負荷分散、クラスタ内のノードはほとんど問題なく(送信する以下のもの)でロードバランシングをデフォルトしない場合。start-balancer.sh -t 10%:クラスタが多くの時間をノードた場合は、デフォルトのロードバランスが需要(詳細を送信するために何かを)達成することは困難である、手動の負荷分散を有効にする必要があります。
( 1)このコマンドがすぐに実行ガベージコレクション、すぐにクラスタを思い出させる効率の実現を加速する自由な時間に似JVMれることはありません。
( 2)10%を-t
代わって、負荷分散の要件の最後のストップは、唯一の相対的なバランスをとる絶対的負荷はありません。我々は、許容範囲内にバランス不良な負荷の割合について話している貧しいの最小割合-最大ノードが格納されている指定-tパラメータ。
42%を50gのHDP01
40%を50gのhdp02
38%を50gのhdp03
10 10%42%-38%= 4%負荷分散-tその
( 3)このコマンドは、帯域幅の調整を手動で実行する必要がありますが、実装し、負荷分散を達成するために、できるだけ早く自由時間外で、帯域幅は、一般的に少し上げます。
第四に、セーフモード
1、の概念
自己保護のトランキングモードでは、ユーザーが安全モードで関連の操作クラスタを再することはできません。
2、セーフモード
( 1 )クラスタが起動します
ブートシーケンスクラスター:
名前ノード---「データノード---」secondarynamenodeクラスタの再起動の名前ノードとデータノード時間はセーフモードでてきました。
、名前ノードを開始
HDFSメタデータ記憶:ディスク、永続ストレージ抽象ツリー、対応データとブロック記憶された位置データ片、メモリが永続することができない、すなわち、全てのクラスタを開く時には、クラスタをオフクリアディスク、抽象ツリー負荷との対応関係、及びデータ・ブロックからリロード。
メタデータがメモリディスクコピーにロードされたときに、HDFSノーメモリメタデータ情報を開始しない前に、すぐにのみ抽象ツリー、データおよびメタデータ情報ブロックとの対応をロードするロードするために、開始名前ノード。
B、データノードを開始
每一个启动完成datanode,这个datanode立即向namenode发送心跳发送块报告信息,namenode接受datanode的心跳报告统计块报告添加上块的每一个副本的存储节点块的存储位置。
C、启动secondarynamenode
secondarynamenode启动完成向namenode发送心跳
集群启动过程中执行步骤1步骤2的时候进行namenode元数据的完善阶段这个时候集群不能对外提供服务的处于自我保护的状态安全模式。
(2)集群运行过程
集群的块的汇报率 < 99.9%
datanode节点的汇报个数小于设置
namenode的元数据的存储目录的大小 <100m
3、离开安全模式
集群处于安全模式的时候对元数据相关信息做哪一些检查
(1) 每一个数据块的最小副本个数,保证有一个可用就可用
(2)可用数据块的汇报率,保证集群中的99.9%的数据块是可用的(每一个数据块只保证1个副本)
(3)可用的最小节点个数,默认0个
(4)安全模式的停留时长(指定系统退出安全模式时需要的延迟时间,默认为30(秒))
(5)检查元数据存储的文件夹大小,默认100M
符合以下的要求 才会离开安全模式:
(1)数据块的汇报率(每一个数据块最少保证1个副本)达到>=99.9%
(2)datanode的节点个数达到配置要求的时候 默认是0个
(3)当前两个条件都满足的时候 保证安全模式30s 保证保证集群数据汇报稳定的时候
(4)保证namenode每一个元数据的文件夹的存储预留大小达到100M以上
以上4个条件全部同时满足的时候会退出安全模式。
4、手动进入安全模式
一般情况下集群升级的时候hadoop2.7—》hadoop2.8 一般将集群进入安全模式,进行集群维护。
hdfs dfsadmin -safemode get/leave/enter/wait (在hadoop2.0之前可以用hadoop来代替hdfs)
(1)hdfs dfsadmin -safemode get 获取集群的当前的安全模式的状态
Safe mode is OFF 安全模式关闭的
(2)hdfs dfsadmin -safemode enter 进入安全模式
Safe mode is ON
(3)hdfs dfsadmin -safemode leave 离开安全模式
(4)hdfs dfsadmin -safemode wait 等待安全模式离开 了解
5、安全模式下的操作
(1)可执行
hadoop fs -ls /
hadoop fs -get /hadoop6 /home/hadoop/apps
hadoop fs -cat /hdfs-site.xml
hadoop fs -tail /hdfs-site.xml
这些操作查询相关的,只要不修改元数据的操作都可以执行(元数据1)目录树 2)文件--块 3)块的位置)
(2)不可执行
只要修改元数据的操作都不能执行
hadoop fs -put 本地 hdfs
hadoop fs -mkdir /dd
hadoop fs -touchz /rr
hadoop fs -rm -r -f
....