(57)【要約】【課題】本発明はＨａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドを開示した。【解決手段】該読み込みメソッドはデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用される。該メソッドには：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、ユーザＩＤと小さなファイルの名前にしたがってＨＢａｓｅキャッシュモジュールを照会し、最初ファイルコンテンツが照会されたら、小さなファイルの書き込まれた最初ファイルコンテンツをＨＢａｓｅキャッシュモジュールにアップロードして更新し、照会されなかったら、ＨＤＦＳシステムのデータベースを照会し、第二ファイルコンテンツが照会されたら、小さなファイルの書き込まれた第二ファイルコンテンツをデータベースにアップロードして更新する。本発明の書き込みメソッドは小さなファイルの読み込み効率を向上させることができる。【選択図】図１
2019204473.tif 000002
【特許請求の範囲】
【請求項１】
Ｈａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドは、前記書き込みメソッドがデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、前記書き込みメソッドが以下を含む：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、その中に、前記小さなファイルの書き込みコマンドがユーザＩＤと小さなファイルの名前を含み、ユーザＩＤと前記小さなファイルの名前によって前記ＨＢａｓｅキャッシュモジュールを照会し、対応するファイル内容が出たら、前記ＨＢａｓｅキャッシュモジュールによって照会された最初のファイルコンテンツに戻り、前記小さなファイルを書き込み、小さなファイルの書き込まれた最初のファイルコンテンツを前記ＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応するファイル内容が出ないと、前記小さなファイルのファイル名によって前記ＨＤＦＳシステムのデータベースを照会して対応するファイルコンテツが照会されたかどうかを判断し、イエスであれば、前記データベースに照会された第二のファイルコンテンツに戻り、前記小さなファイルを書き込み、前記小さなファイルの書き込まれた第二のファイルコンテンツを前記データベースにアップロードして更新し、そうでなければ、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して前記小さなファイルのファイル名と対応するＨＡＲファイルにアクセスし、前記小さなファイルを書き込み、前記小さなファイルの書き込まれたＨＡＲファイルを前記データベースにアップロードして更新し、前記データマージモジュールが採用するデータマージメソッドは以下を含む：ステップＡ：クライアントがストレージされるファイルをアップロードした後で、ＨＤＦＳのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを組み合わせて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、その中に、前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードに基づき、ステップＢ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルを順にマージするキューに追加し、ステップＣ：前記マージするキューのすべてのファイルの総サイズが１２８  ＭＢを超えるかどうかを判断し、イエスであれば、ステップＤに進み、そうでなければ、ステップＥに進み、ステップＤ：前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＢに戻り、ステップＥ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルが全部前記マージするキューに追加されたかどうかを判断し、イエスであれば、前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＦに進み、そうでなければ、ステップＢに進む。ステップＦ：すべてのマージしたデータブロックをＨＤＦＳシステムにストレージする。前記プリファレンスモデルがユーザアクセスログレコードから統計され���もので、具体的には：前記ユーザアクセスログレコードからアクティブユーザセットを統計し、前記アクティブユーザセットにアクセスされた小さなファイルをＢｅａｎオブジェクトで表し、前記小さなファイルがサイズが２ＭＢ又は２ＭＢ以下のファイルに指し、その中に、前記オブジェクトのプロパティが該小さなファイルにアクセスユーザＩＤ、ユーザにアクセスされた小さなファイル名及び該小さなファイルがアクセスされた回数を含み、ＪＤＢＣテクノロジを合わせて、前記ｂｅａｎオブジェクトをＭｙｓｑｌデーターベースに永続化してストレージし、ストレージされたデータによって、任意の二つの異なるアクセス動作の類似性をアカウントし、任意の二つの異なるアクセス動作の類似性が正の場合、前記任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのＩＤを記録して関連ファイルセットによって類似ユーザにアクセスされ、関連付けられたファイルの情報をストレージし、前記関連ファイルセットによって、前記ユーザアクセスプリファレンスモデルを構築し、前記ＨＢａｓｅキャッシュモジュールが採用するキャッシュメソッドは：ユーザアクセスログレコードを取得し、前記ユーザアクセスログレコードからアクティブユーザセットを統計し、対数線形モデルを合わせ、前記アクティブユーザセットの各アクテイブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順でソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、前記ホットスポットファイルを取得し、Ｈｂａｓｅデータベースを使って前記ホットスポットファイルの関連情報をキャッシュする。前記前記ユーザアクセスログレコードからアクティブユーザセットを統計するについて、具体的には：アクセスされたソースの接尾辞がｊｐｇであるレコード行を前記ユーザアクセスログレコードからフィルタリングし、その中に、前記レコード行がユーザＩＤ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、ビジターＩＰを前記二次元配列でトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、前記ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、前記ＨａｓｈＭａｐコレクションをＶａｌｕｅ値の降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークし、対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、具体的には：ＡｒｒａｙＬｉｓｔコレクションから抽出されたビジターＩＰを、前記二次元配列から抽出されたビジターＩＰと照合し、一致が出たら、合致するビジターＩＰをキーワードとして、各ユーザのアクセス開始時刻を照会���て、対数線形モデルを合わせ、前記アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、前記対数線形モデルは：  
2019204473.tif 000013
であり、その中に、
2019204473.tif 000014
がファイルｉの人気予測値であり、
2019204473.tif 000015
がファイルｉが観測期間中のトラフィックであり、観測期間の長さがｔである。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータテクノロジー分野に関し、具体的には、Ｈａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドに関する。
【背景技術】
【０００２】
Ｈａｄｏｏｐは２００５年にＡｐａｃｈｅ  ＦｏｕｎｄａｔｉｏｎによってＬｕｃｅｎｅのサブプロジェクトであるＮｕｔｃｈの一部分として正式に導入されたものである。Ｈａｄｏｏｐの最も重要な二つの設計はＨＤＦＳとＭａｐＲｅｄｕｃｅである。ＨＤＦＳは大量なデータをストレージし、ファイルがデータブロックの形でシステムにストレージされる。また、ＨＤＦＳのデータブロックは通常のディスクに定義されたデータブロック（通常は５１２Ｂ）よりも遥かに大きく、ＨＤＦＳの現在のデフォルトブロックサイズは１２８ＭＢである。もしＨＤＦＳにストレージされたファイルのサイズが１２８に超えると、ＨＤＦＳは該ファイルを複数のブロックサイズのブロックに分割し、別々にストレージする。また、ＨＤＦＳが絶えずに小さなファイルをＴＢひいてはＰＢレベルまでストレージし続けると、小さなファイルの問題が発生し、此れは、大量のメタデータがＨＤＦＳのプライマリノードのｎａｍｅｎｏｄｅにストレージされるため、ｎａｍｅｎｏｄｅの負荷が大幅に増加し、システムの読み取りパフォーマンスに影響するためである。その中に、小さなファイルのサイズが２ＭＢに定義され、つまり、ＨＤＦＳがファイルをストレージする中で、ファイルのサイズが２Ｍまたは２Ｍ以下であると、小さなファイルとして定義される。
【０００３】
大量な小さなファイルの処理について、現有の技術においては、若干の小さなファイルを一つのブロックサイズの大きなファイルにマージすることであり、ファイル間の関連性を考慮せず、小さなファイルの読み込み効率が望ましくなくなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】中国特許出願公開第１０３６０５４７９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施例が提供するＨａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドは、小さなファイルのマージ及びＨＢａｓｅキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
【課題を解決するための手段】
【０００６】
本発明の実施例が提供するＨａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドについては、前記書き込みメソッドがデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、前記書き込みメソッドが：
【０００７】
ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、その中に、前記小さなファイルの書き込みコマンドがユーザＩＤと小さなファイルの名前を含み、
【０００８】
ユーザＩＤと前記小さなファイルの名前によって前記ＨＢａｓｅキャッシュモジュールを照会し、
【０００９】
対応するファイル内容が出たら、前記ＨＢａｓｅキャッシュモジュールによって照会された最初のファイルコンテンツに戻り、前記小さなファイルを書き込み、小さなファイルの書き込まれた最初のファイルコンテンツを前記ＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応するファイル内容が出ないと、前記小さなファイルのファイル名によって前記ＨＤＦＳシステムのデータベースを照会し、対応するファイルコンテツが照会されたかどうかを判断し、
【００１０】
イエスであれば、前記データベースに照会された第二のファイルコンテンツに戻り、前記小さなファイルを書き込み、前記小さなファイルの書き込まれた第二のファイルコンテンツを前記データベースにアップロードして更新し、          
【００１１】
そうでなければ、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して前記小さなファイルのファイル名と対応するＨＡＲファイルにアクセスし、前記小さなファイルを書き込み、前記小さなファイルの書き込まれたＨＡＲファイルを前記データベースにアップロードして更新する。
【００１２】
更に、前記データマージモジュールが採用するデータマージメソッドは：
【００１３】
ステップＡ：クライアントがストレージされるファイルをアップロードした後で、ＨＤＦＳのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを組み合わせて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、その中に、前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードに基づき、
【００１４】
ステップＢ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルを順にマージするキューに追加する。
【００１５】
ステップＣ：前記マージするキューのすべてのファイルの総サイズが１２８  ＭＢを超えるかどうかを判断し、イエスであれば、ステップＤに進み、そうでなければ、ステップＥに進み、
【００１６】
ステップＤ：前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＢに戻り、
【００１７】
ステップＥ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルが全部前記マージするキューに追加されたかどうかを判断し、イエスであれば、前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＦに進み、そうでなければ、ステップＢに進む。
【００１８】
ステップＦ：すべてのマージしたデータブロックをＨＤＦＳシステムにストレージする。
【００１９】
更に、その特徴は、前記プリファレンスモデルがユーザアクセスログレコードから統計されたもので、具体的には：
【００２０】
前記ユーザアクセスログレコードからアクティブユーザセットを統計し、
【００２１】
前記アクティブユーザセットにアクセスされた小さなファイルをＢｅａｎオブジェクトで表し、前記小さなファイルがサイズが２ＭＢ又は２ＭＢ以下のファイルに指し、その中に、前記オブジェクトのプロパティが該小さなファイルにアクセスユーザＩＤ、ユーザにアクセスされた小さなファイル名及び該小さなファイルがアクセスされた回数を含み、
【００２２】
ＪＤＢＣテクノロジを合わせて、前記ｂｅａｎオブジェクトをＭｙｓｑｌデーターベースに永続化してストレージし、ストレージされたデータによって、任意の二つの異なるアクセス動作の類似性をアカウントし、
【００２３】
任意の二つの異なるアクセス動作の類似性が正の場合、前記任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのＩＤを記録して関連ファイルセットによって類似ユーザにアクセスされ、関連付けられたファイルの情報をストレージし、
【００２４】
前記関連ファイルセットによって、前記ユーザアクセスプリファレンスモデルを構築する。
【００２５】
更に、その特徴は、前記ＨＢａｓｅキャッシュモジュールが採用するキャッシュメソッドは：
【００２６】
ユーザアクセスログレコードを取得し、前記ユーザアクセスログレコードからアクティブユーザセットを統計し、
【００２７】
対数線形モデルを合わせ、前記アクティブユーザセットの各アクテイブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順でソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、
【００２８】
前記ホットスポットファイルを取得し、Ｈｂａｓｅデータベースを使って前記ホットスポットファイルの関連情報をキャッシュする。
【００２９】
更に、前記前記ユーザアクセスログレコードからアクティブユーザセットを統計するについて、具体的には：
【００３０】
アクセスされたソースの接尾辞がｊｐｇであるレコード行を前記ユーザアクセスログレコードからフィルタリングし、その中に、前記レコード行がユーザＩＤ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、
【００３１】
レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、
【００３２】
ビジターＩＰを前記二次元配列でトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、前記ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、
【００３３】
前記ＨａｓｈＭａｐコレクションをＶａｌｕｅ値の降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークし、
【００３４】
更に、対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、具体的には：
【００３５】
ＡｒｒａｙＬｉｓｔコレクションから抽出されたビジターＩＰを、前記二次元配列から抽出されたビジターＩＰと照合し、
【００３６】
一致が出たら、合致するビジターＩＰをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを合わせ、前記アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、
【００３７】
前記対数線形モデルは：  
2019204473.tif 000003
であり、
【００３８】
その中に、
2019204473.tif 000004
がファイルｉの人気予測値であり、
2019204473.tif 000005
がファイルｉが観測期間中のトラフィックであり、観測期間の長さがｔである。
【００３９】
本発明の実施例を実施すると、以下の有益効果が出る：
【００４０】
本発明の実施例が提供するＨａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドについては、該書き込みメソッドはデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、該読み込みメソッドは：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、その中に、小さなファイルの書き込みコマンドがユーザーＩＤと小さなファイルの名前を含み、ユーザＩＤと小さなファイルの名前によってＨＢａｓｅキャッシュモジュールを照会し、対応する最初のファイルコンテンツが照会されたら、最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた最初のファイルコンテンツをＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応する最初のファイルコンテンツが照会されなかったら、ＨＤＦＳデータベースを照会し、成功すれば、照会された第二のファイルコンテンツに戻り、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新し、失敗すれば、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して対応するＨＡＲファイルにアクセスし、小さなファイルを書き込み、小さなファイルの書き込まれたＨＡＲファイルをデータベースにアップロードして更新する。小さなファイル間の関連性とホットスポットファイルを考慮しない既存技術と比べ、本発明の書き込みメソッドは小さなファイルのマージ及びＨＢａｓｅキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
【発明の効果】
【００４１】
本発明の実施例を実施すると、以下の有益効果が出る：
【００４２】
本発明の実施例が提供するＨａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドについては、該書き込みメソッドはデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、該読み込みメソッドは：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、その中に、小さなファイルの書き込みコマンドがユーザーＩＤと小さなファイルの名前を含み、ユーザＩＤと小さなファイルの名前によってＨＢａｓｅキャッシュモジュールを照会し、対応する最初のファイルコンテンツが照会されたら、最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた最初のファイルコンテンツをＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応する最初のファイルコンテンツが照会されなかったら、ＨＤＦＳデータベースを照会し、成功すれば、照会された第二のファイルコンテンツに戻り、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新し、失敗すれば、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して対応するＨＡＲファイルにアクセスし、小さなファイルを書き込み、小さなファイルの書き込まれたＨＡＲファイルをデータベースにアップロードして更新する。小さなファイル間の関連性とホットスポットファイルを考慮しない既存技術と比べ、本発明の書き込みメソッドは小さなファイルのマージ及びＨＢａｓｅキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
【図面の簡単な説明】
【００４３】
【図１】図１は本発明の提供するＨａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドの実施例のプロセス見取り図である。
【図２】図２は本発明の提供するデータマージメソッドの実施例のプロセス見取り図である。
【図３】図３は本発明の提供するキャッシュメソッドの実施例のプロセス見取り図である。
【図４】図４は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。
【発明を実施するための形態】
【００４４】
下記に本発明の実施例の中の附図を交え、本発明の実施例の技術方案を明確にはっきり説明し、説明した実施例がただ本発明の一部分の実施例で、全部の実施例ではないである。本発明の実施例に基づいて、本領域の普通技術者が創造的な労働を払わないことを前提に得る全部のその他の実施例は本発明の保護範囲に所属する
【００４５】
図１を参照し、本発明の提供するＨａｄｏｏｐに基づく大量の小さなファイルの書き込みメソッドの実施例のプロセス見取り図であり、該メソッドがステップ１０１からステップ１０６までを含む。該書き込みメソッドはデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、各ステップは以下を含む：
【００４６】
ステップ１０１：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、その中に、前記小さなファイルの書き込みコマンドがユーザＩＤと小さなファイルの名前を含む。
【００４７】
ステップ１０２：ユーザＩＤと前記小さなファイルの名前によって前記ＨＢａｓｅキャッシュモジュールを照会し、対応するファイルコンテンツが照会されたかどうかを判断し、イエスであれば、ステップ１０５に進み、そうでなければ、ステップ１０３に進む。
【００４８】
ステップ１０３：小さなファイルの名前により前記ＨＤＦＳシステムのデータベースを照会し、対応する第二のファイルコンテンツが照会されたかどうかを判断し、イエスであれば、ステップ１０６に進み、そうでなければ、ステップ１０４に進む。
【００４９】
ステップ１０４：ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して小さなファイルのファイル名と対応するＨＡＲファイルにアクセスし、小さなファイルの書き込まれたＨＡＲファイルをデータベースにアップロードして更新する。
【００５０】
ステップ１０５：最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた最初のファイルコンテンツをＨＢａｓｅキャッシュモジュールにアップロードして更新する。
【００５１】
ステップ１０６：データベースに照会された第二のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新する。
【００５２】
図２を参照し、図２は本発明の提供するデータマージメソッドの実施例のプロセス見取り図であり、本発明のデータマージモジュールには図２の示すデータマージメソッドが採用され、ステップＡからステップＦまでを含み、各ステップは以下のように：
【００５３】
ステップＡ：クライアントがストレージされるファイルをアップロードした後で、ＨＤＦＳのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを組み合わせて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、その中に、前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードに基づき、
【００５４】
本実施例において、ユーザアクセスプリファレンスモデルがユーザアクセスログレコードから統計されたもので、具体的には：ユーザアクセスログレコードからアクティブユーザセットを統計し、アクティブユーザセットにアクセスされた小さなファイルをｂｅａｎオブジェクトで表し、小さなファイルがサイズが２ＭＢ又は２ＭＢ以下のファイルであり、その中に、ｂｅａｎオブジェクトのプロパティが該小さなファイルにアクセスしたユーザＩＤ、ユーザにアクセスされた小さなファイルの名前及び該小さなファイルがアクセスされた回数を含み、ＪＤＢＣテクノロジを合わせて、ｂｅａｎオブジェクトをＭｙｓｑｌデータベースに永続化してストレージし、ストレージされたデータによって、任意の二つの異なるアクセス動作の類似性をアカウントし、任意の二つの異なるアクセス動作の類似性が正であれば、任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのＩＤを記録して関連ファイルセットを使ってすべての類似ユーザにアクセスされ、関連付けられたファイル情報をストレージし、関連ファイルセットによって、ユーザアクセスプリファレンスモデルを構築する。
【００５５】
本実施例において、ユーザアクセスログレコードからアクティブユーザセットを統計し、具体的には：アクセスされたソースの接尾辞がｊｐｇであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザＩＤ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、ビジターＩＰを二次元配列でトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、ＨａｓｈＭａｐコレクションをＶａｌｕｅ値の降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークする。
【００５６】
本発明のモデルの構築過程をもっとよく説明するために、下記の例えにより説明し、具体的な実現する過程が以下のように：
【００５７】
（１）正規表現を使用してアクセスされたソースの接尾辞がｊｐｇであるレコード行をフィルタリングする。
【００５８】
（２）ログ解析クラスを作成してレコード行の五つのコンポーネントを別々に解析し、二次元配列を使ってビジターＩＰと小さなファイルの名前をストレージする。
【００５９】
（３）二次元配列のビジターＩＰ要素をトラバースし、各ビジターＩＰのトラフィックをカウンタするカウンタを設計する。ＨａｓｈＭａｐコレクションを使って、ビジターＩＰをＫｅｙ値とし、Ｖａｌｕｅ値が該ビジターのトラフィックである。
【００６０】
（４）ステップ３で生成されたＨａｓｈＭａｐコレクションをＶａｌｕｅ値にしたがって降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションで該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークする。
【００６１】
（５）一つのｂｅａｎオブジェクトによってアクティブユーザセットにアクセスされた小さなファイルを抽象に表し、オブジェクトのプロパティが該小さなファイルをアクセスしたユーザＩＤ、ユーザにアクセスされた小さなファイルの名前及び該小さなファイルがアクセスされた回数を含む。メソッドはプロパティを取得するｇｅｔ及びｓｅｔメソッドである。
【００６２】
（６）ＪＤＢＣテクノロジｂｅａｎオブジェクトをＭｙｓｑｌデータベースに結合して永続にストレージし、以下の形式のテーブルが形成される：
【００６３】
2019204473.tif 000006
【００６４】
（７）２０行の二行の間にデータを取り込み、数式
2019204473.tif 000007
によって二つの異なるユーザアクセス作動の類似性をカウンタする。その中に、本発明はピアソン相関係数を使用して類似のユーザを決定し、スコアリング行列Ｒを指定し、ユーザａとユーザｂの類似性をｓｉｍ（ａ，ｂ）で表し、ｒａ及びｒｂが「ユーザ−トラフィック」ストアリングマトリックスのストアリングデータである。
【００６５】
（８）ここで、ｓｉｍ（ａ，ｂ）の値が正の値であれば、二人の異なるユーザが類似ユーザであると判定され、そのユーザＩＤが記録される。
【００６６】
（９）類似ユーザのユーザＩＤに基づいて、一つのコレクションを使用して、類似ユーザにアクセスされ、関連付けられているすべてのファイル情報をストレージする。
【００６７】
ステップＢ：関連ファイルコレクションのミドルファイルとストレージされるファイルを順にマージするキューに追加する。
【００６８】
ステップＣ：マージするキューのすべてのファイルの総サイズが１２８  ＭＢを超えるかどうかを判断し、イエスであれば、ステップＤに進み、そうでなければ、ステップＥに進む。
【００６９】
ステップＤ：マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＢに戻る。
【００７０】
ステップＥ：関連ファイルコレクションのミドルファイルとストレージされるファイルが全部マージするキューに追加されたかどうかを判断し、イエスであれば、マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＦに進み、そうでなければ、ステップＢに進む。
【００７１】
ステップＦ：すべてのマージしたデータブロックをＨＤＦＳシステムにストレージする。
【００７２】
図３を参照し、図３は本発明が提供するキャッシュメソッドの実施例のプロセス見取り図である。本発明のＨＢａｓｅキャッシュモデルが図３のキャッシュメソッドを採用し、該メソッドはステップ３０１からステップ３０３までを含み、各ステップが以下のように：
【００７３】
ステップ３０１：ユーザアクセスログレコードを取得し、ユーザアクセスログレコードからアクティブユーザセットを統計する。
【００７４】
本実施例の中に、ステップ３０１においてユーザアクセスログレコードからアクティブユーザセットを統計し、具体的には：アクセスされたソースの接尾辞がｊｐｇであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザＩＰ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況及びアクセストラフィックを含み、ログ解析クラスを作成してレコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、二次元配列のビジターＩＰをトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、ＨａｓｈＭａｐコレクションをＶａｌｕｅ値によって降順にソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージしてアクティブユーザセットとしてマークする。
【００７５】
本発明のステップ３０１においてアクティブユーザセットをカウントする目的は、小さなファイルへのユーザのアクセスが均一なランダムではなくパレート分布法則に近いのである。すなわち、ほとんどのＩ／Ｏが少量の人気データへのアクセスをリクエストし、トラフィックの８０％がデータの２０％に集中している。したがって、ファイルシステムにストレージされた大量の小さなファイルからモデルを介してホットスポットファイルを予測してキャッシュすることができれば、ユーザのデータへのアクセスの効率を上げられる。
【００７６】
ステップ３０２：対数線形モデルをあわせて、アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークする。
【００７７】
本実施例において、ステップ３０２は具体的には：ＡｒｒａｙＬｉｓｔコレクションから抽出されたビジターＩＰを、二次元配列から抽出されたビジターＩＰと照合し、一致が出たら、合致するビジターＩＰをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを合わせ、アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークする。
【００７８】
対数線形モデルは：  
2019204473.tif 000008
であり、
【００７９】
その中に、
2019204473.tif 000009
がファイルｉの人気予測値であり、
2019204473.tif 000010
がファイルｉが観測期間中のトラフィックであり、観測期間の長さがｔである。
2019204473.tif 000011
と
2019204473.tif 000012
が線形関係の関連パラメータであり、線形回帰法によって最適値をアカウントすることができる。
【００８０】
本発明の対数線形モデルにおいて記載された観測期間の長さｔの定義は：ユーザアクセスログレコードのレコード行のアクセス開始時刻要素とユーザアクセスログレコードを収集した時刻との時間差である。例えば、収集されたユーザアクセスログレコードの時点が３０／Ｊａｎ／２０１８：１７：３８：２０で、ユーザアクセスログレコードのレコード行のアクセス開始時刻が２９／Ｊａｎ／２０１８：１０：３５：１５で、観測期間の長さが２９／Ｊａｎ／２０１８：１０：３５：１５から３０／Ｊａｎ／２０１８：１７：３８：２０までの時間差であり、アカウントしやすいために、期間の長さが時間単位にする。
【００８１】
ステップ３０３：ホットスポットファイルを取得し、Ｈｂａｓｅデータベースを採用してホットスポットファイルの関連情報をキャッシュする。
【００８２】
本実施例においては、Ｈｂａｓｅデータベースを採用してホットスポットファイルの関連情報をキャッシュし、ＨＢａｓｅのテーブル名値がビジターＩＤであり、ＨＢａｓｅのＲｏｗＫｅｙが小さなファイルの名前であり、ＨＢａｓｅのファミリ名が「ファイルコンテンツ」であり、Ｖａｌｕｅ値すなわちセル値が小さなファイルのコンテンツである。ユーザがＨＢａｓｅの小さなファイルにアクセス時に、ユーザＩＤをテーブル名とし、アクセスする小さなファイルの名前をＨＢａｓｅのｇｅｔ（）メソッドのパラメータとすれば、対応する小さなファイルのコンテンツを取得できる。
【００８３】
本発明のキャッシュメソッドをもっと詳しく説明するため、図４を参照し、図４は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。図４が示すように、該プロセスが：ユーザアクセスレコードセット→正規表現が需要するレコード行をフィルタリングする→レコード行を解析する→ｂｅａｎオブジェクトでレコード行情報をカプセル化する→ＪＤＢＣ  ＡＰＩを調査研究してｂｅａｎオブジェクトをＭｙｓｑｌデータベースに永続化する→二次元配列によってビジターＩＰと小さなファイルの名前情報をストレージする→配列をトラバースし、ビジタートラフィックを統計する→ビジタートラフィックによってサーとし、ＡｒｒａｙＬｉｓｔコレクションを使ってアクティブユーザセットのユーザＩＰをストレージする→二次元配列をアクティブユーザセットのビジターＩＰと照合する→一致が出たら、ビジターＩＰをキーワードとして、ユーザアクセス開始時刻とトラフィックを抽出する→ファイル人気予測数式によってファイル人気値をアカウントする→ファイル人気値をサートし、ホットスポットファイルをマークする→ＨＢａｓｅによってホットスポットファイルの関連情報をキャッシュする。
【００８４】
上記からわかったことは、本発明の実施例の提供するＨａｄｏｏｐに基づく大量の小さなファイルの読み込みメソッドにおいて、該読み込みメソッドがデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用される。該読み込みメソッドは、ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザＩＤと小さなファイルの名前を含み、ユーザＩＤと小さなファイルの名前でＨＢａｓｅキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツに戻り、対応するファイルコンテンツが出ないと、ＨＤＦＳシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツに戻り、失敗したら、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出し、対応するＨＡＲファイルにアクセスしてＨＡＲファイルに戻る。現有技術と比べて、小さなファイルの間のアソシエーションとホットスポットファイルを問わず、本発明の読み込みメソッドは小さなファイルとＨＢａｓｅキャッシングメカニズムがマージされた後で、小さなファイルの読み込み効率を上げられる。
【００８５】
更に、本発明はデータマージメソッドを提供し、小さなファイルの読み込み効率を高め、ＨＤＦＳシステムでのｎａｍｅｎｏｄｅメモリの消費を削減する。
【００８６】
更に、本発明のデータマージメソッドには、複数の関連付けられた小さなファイルが一つの大きなファイルにマージされてシステムにストレージされ、システムのｎａｍｅｎｏｄｅノードが一つの大きなファイルの対応するメタデータをストレージし、ｎａｍｅｎｏｄｅノードの維持する必要のあるメタデータの量が大幅に減少し、メモリ消費量も減少になる。
【００８７】
更に、本発明のデータマージメソッドには、関連ファイルが同じの一つの大きなファイルにストレージされ、ファイルがマージされた後で同じデータノードの同じデータブロックの中にストレージされる。ファイルへのユーザのリクエストに強い関連性があれば、すなわち、ユーザに耐えずにアクセスされた小さなファイルが同じ大きなファイルにマージされば、ファイルアクセスの原則によると、システムはより近いｄａｔａｎｏｄｅノードのデータブロックを読み込み、つまり絶えずに同じｄａｔａｎｏｄｅのデータブロックからデータを読み込み、こうして異なるファイルにアクセス時に異なるデータノードの間にジャンプしなくで済み、ディスクアドレッシングのオーバーヘッドが削減され、占められるシステムリソースが比較的に少なくなり、ファイルの読み込み効率を大きく高める。
【００８８】
更に、本発明が提供するキャッシュメソッドには、現有技術と比べてユーザにアクセスされたホットスポットファイルを考慮せず、本発明はＨＢａｓｅによってホッとスポットファイルをキャッシュし、キャッシュヒット率を高めるだけでなく、ファイルの読み込み効率も上げる。
【００８９】
当業者は、上記の実施形態を実施するプロセスの全部または一部を理解することができ、コンピュータプログラムによって関連するハードウェアを指示することで完了することができ、前記のプログラムがコンピュター可読記憶媒体にストレージされることができ、該プログラムが実行される時に、上記の各メソッドの実施例のプロセスが含まれる。その中に、前記の記憶媒体が磁気ディスク、光ディスク、読み出し専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ，ＲＯＭ）またはランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ，ＲＡＭ）であってもよい。
【００９０】
以上に述べたのは本発明の優先された実施形態であり、注意すべきのは、本技術分野の一般的な技術員にとって、本発明の原理から離れないことを前提として、若干な改善や飾りができ、これらの改善や飾りも本発明の保護範囲に含まれる。
【図１】
2019204473.tif 000016
【図２】
2019204473.tif 000017
【図３】
2019204473.tif 000018
【図４】
2019204473.tif 000019
【手続補正書】
【提出日】令和1年9月10日(2019.9.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｈａｄｏｏｐに基づいて、データマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳに複数の２ＭＢ以下の小さなファイルを書き込む方法であって、前記ＨＤＦＳが以下を実行する：
ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザＩＤと小さなファイルの名前を含み、ユーザＩＤと前記小さなファイルの名前によって前記ＨＢａｓｅキャッシュモジュールを照会し、対応するファイル内容が出たら、前記ＨＢａｓｅキャッシュモジュールによって照会された第一のファイルコンテンツに前記小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツを前記ＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応するファイル内容が出ないと、前記小さなファイルのファイル名によって前記ＨＤＦＳシステムのデータベースを照会して対応するファイルコンテツが照会されたかどうかを判断し、イエスであれば、前記データベースに照会された第二のファイルコンテンツに前記小さなファイルを書き込み、前記小さなファイルの書き込まれた第二のファイルコンテンツを前記データベースにアップロードして更新し、そうでなければ、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して前記小さなファイルのファイル名と対応するＨＡＲファイルにアクセスし、前記小さなファイルを書き込み、前記小さなファイルの書き込まれたＨＡＲファイルを前記データベースにアップロードして更新し、前記データマージモジュールが採用するデータマージメソッドは以下を含む：ステップＡ：クライアントがストレージされるファイルをアップロードした後で、ＨＤＦＳのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを用いて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、ここで、前記ユーザアクセスプリファレンスモデルはユーザアクセスログレコードに基づいている、ステップＢ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルを順にマージするキューに追加し、ステップＣ：前記マージするキューのすべてのファイルの総サイズが１２８  ＭＢを超えるかどうかを判断し、イエスであれば、ステップＤに進み、そうでなければ、ステップＥに進み、ステップＤ：前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＢに戻り、ステップＥ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルが全部前記マージするキューに追加されたかどうかを判断し、イエスであれば、前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＦに進み、そうでなければ、ステップＢに進む。ステップＦ：すべてのマージしたデータブロックをＨＤＦＳシステムにストレージする。前記プリファレンスモデルがユーザアクセスログレコードから統計されたもので、具体的には：前記ユーザアクセスログレコードからアクティブユーザセットを統計し、前記アクティブユーザセットにアクセスされた小さなファイルをＢｅａｎオブジェクトで表し、前記小さなファイルがサイズが２ＭＢ又は２ＭＢ以下のファイルに指し、その中���、前記オブジェクトのプロパティが該小さなファイルにアクセスユーザＩＤ、ユーザにアクセスされた小さなファイル名及び該小さなファイルがアクセスされた回数を含み、ＪＤＢＣテクノロジを用いて、前記ｂｅａｎオブジェクトをＭｙｓｑｌデーターベースに永続化してストレージし、ストレージされたデータによって、任意の二つの異なるアクセス動作の類似性をアカウントし、任意の二つの異なるアクセス動作の類似性が正の場合、前記任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのＩＤを記録して関連ファイルセットによって類似ユーザにアクセスされ、関連付けられたファイルの情報をストレージし、前記関連ファイルセットによって、前記ユーザアクセスプリファレンスモデルを構築し、前記ＨＢａｓｅキャッシュモジュールが採用するキャッシュメソッドは：ユーザアクセスログレコードを取得し、前記ユーザアクセスログレコードからアクティブユーザセットを統計し、対数線形モデルを用いて、前記アクティブユーザセットの各アクテイブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順でソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、前記ホットスポットファイルを取得し、Ｈｂａｓｅデータベースを使って前記ホットスポットファイルの関連情報をキャッシュする。前記前記ユーザアクセスログレコードからアクティブユーザセットを統計するについて、具体的には：アクセスされたソースの接尾辞がｊｐｇであるレコード行を前記ユーザアクセスログレコードからフィルタリングし、その中に、前記レコード行がユーザＩＤ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、ビジターＩＰを前記二次元配列でトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、前記ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、前記ＨａｓｈＭａｐコレクションをＶａｌｕｅ値の降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークし、対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、具体的には：ＡｒｒａｙＬｉｓｔコレクションから抽出されたビジターＩＰを、前記二次元配列から抽出されたビジターＩＰと照合し、一致が出たら、合致するビジターＩＰをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを用いて、前記アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、前記対数線形モ���ルは：  
2019204473.tif 000020
であり、その中に、
2019204473.tif 000021
がファイルｉの人気予測値であり、
2019204473.tif 000022
がファイルｉが観測期間中のトラフィックであり、観測期間の長さがｔである。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータテクノロジー分野に関し、具体的には、Ｈａｄｏｏｐに基づいて、データマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳに複数の２ＭＢ以下の小さなファイルを書き込む方法に関する。
【背景技術】
【０００２】
Ｈａｄｏｏｐは２００５年にＡｐａｃｈｅ  ＦｏｕｎｄａｔｉｏｎによってＬｕｃｅｎｅのサブプロジェクトであるＮｕｔｃｈの一部分として正式に導入されたものである。Ｈａｄｏｏｐの最も重要な二つの設計はＨＤＦＳとＭａｐＲｅｄｕｃｅである。ＨＤＦＳは大量なデータをストレージし、ファイルがデータブロックの形でシステムにストレージされる。また、ＨＤＦＳのデータブロックは通常のディスクに定義されたデータブロック（通常は５１２Ｂ）よりも遥かに大きく、ＨＤＦＳの現在のデフォルトブロックサイズは１２８ＭＢである。もしＨＤＦＳにストレージされたファイルのサイズが１２８に超えると、ＨＤＦＳは該ファイルを複数のブロックサイズのブロックに分割し、別々にストレージする。また、ＨＤＦＳが絶えずに小さなファイルをＴＢひいてはＰＢレベルまでストレージし続けると、小さなファイルの問題が発生し、此れは、大量のメタデータがＨＤＦＳのプライマリノードのｎａｍｅｎｏｄｅにストレージされるため、ｎａｍｅｎｏｄｅの負荷が大幅に増加し、システムの読み取りパフォーマンスに影響するためである。その中に、小さなファイルのサイズが２ＭＢに定義され、つまり、ＨＤＦＳがファイルをストレージする中で、ファイルのサイズが２Ｍまたは２Ｍ以下であると、小さなファイルとして定義される。
【０００３】
大量な小さなファイルの処理について、現有の技術においては、若干の小さなファイルを一つのブロックサイズの大きなファイルにマージすることであり、ファイル間の関連性を考慮せず、小さなファイルの読み込み効率が望ましくなくなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】中国特許出願公開第１０３６０５４７９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施例が提供するＨａｄｏｏｐに基づいて、データマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳに複数の２ＭＢ以下の小さなファイルを書き込む方法は、小さなファイルのマージ及びＨＢａｓｅキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
【課題を解決するための手段】
【０００６】
本発明の実施例が提供するＨａｄｏｏｐに基づいて、データマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳに複数の２ＭＢ以下の小さなファイルを書き込む方法については、前記書き込みメソッドがデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、前記書き込みメソッドが：
【０００７】
ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザＩＤと小さなファイルの名前を含み、
【０００８】
ユーザＩＤと前記小さなファイルの名前によって前記ＨＢａｓｅキャッシュモジュールを照会し、
【０００９】
対応するファイル内容が出たら、前記ＨＢａｓｅキャッシュモジュールによって照会された第一のファイルコンテンツに前記小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツを前記ＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応するファイル内容が出ないと、前記小さなファイルのファイル名によって前記ＨＤＦＳシステムのデータベースを照会し、対応するファイルコンテツが照会されたかどうかを判断し、
【００１０】
イエスであれば、前記データベースに照会された第二のファイルコンテンツに前記小さなファイルを書き込み、前記小さなファイルの書き込まれた第二のファイルコンテンツを前記データベースにアップロードして更新し、          
【００１１】
そうでなければ、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して前記小さなファイルのファイル名と対応するＨＡＲファイルにアクセスし、前記小さなファイルを書き込み、前記小さなファイルの書き込まれたＨＡＲファイルを前記データベースにアップロードして更新する。
【００１２】
更に、前記データマージモジュールが採用するデータマージメソッドは：
【００１３】
ステップＡ：クライアントがストレージされるファイルをアップロードした後で、ＨＤＦＳのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを用いて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、ここで、前記ユーザアクセスプリファレンスモデルはユーザアクセスログレコードに基づいている、
【００１４】
ステップＢ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルを順にマージするキューに追加する。
【００１５】
ステップＣ：前記マージするキューのすべてのファイルの総サイズが１２８  ＭＢを超えるかどうかを判断し、イエスであれば、ステップＤに進み、そうでなければ、ステップＥに進み、
【００１６】
ステップＤ：前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＢに戻り、
【００１７】
ステップＥ：前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルが全部前記マージするキューに追加されたかどうかを判断し、イエスであれば、前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＦに進み、そうでなければ、ステップＢに進む。
【００１８】
ステップＦ：すべてのマージしたデータブロックをＨＤＦＳシステムにストレージする。
【００１９】
更に、その特徴は、前記プリファレンスモデルがユーザアクセスログレコードから統計されたもので、具体的には：
【００２０】
前記ユーザアクセスログレコードからアクティブユーザセットを統計し、
【００２１】
前記アクティブユーザセットにアクセスされた小さなファイルをＢｅａｎオブジェクトで表し、前記小さなファイルがサイズが２ＭＢ又は２ＭＢ以下のファイルに指し、その中に、前記オブジェクトのプロパティが該小さなファイルにアクセスユーザＩＤ、ユーザにアクセスされた小さなファイル名及び該小さなファイルがアクセスされた回数を含み、
【００２２】
ＪＤＢＣテクノロジを用いて、前記ｂｅａｎオブジェクトをＭｙｓｑｌデーターベースに永続化してストレージし、ストレージされたデータによって、任意の二つの異なるアクセス動作の類似性をアカウントし、
【００２３】
任意の二つの異なるアクセス動作の類似性が正の場合、前記任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのＩＤを記録して関連ファイルセットによって類似ユーザにアクセスされ、関連付けられたファイルの情報をストレージし、
【００２４】
前記関連ファイルセットによって、前記ユーザアクセスプリファレンスモデルを構築する。
【００２５】
更に、その特徴は、前記ＨＢａｓｅキャッシュモジュールが採用するキャッシュメソッドは：
【００２６】
ユーザアクセスログレコードを取得し、前記ユーザアクセスログレコードからアクティブユーザセットを統計し、
【００２７】
対数線形モデルを用いて、前記アクティブユーザセットの各アクテイブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順でソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、
【００２８】
前記ホットスポットファイルを取得し、Ｈｂａｓｅデータベースを使って前記ホットスポットファイルの関連情報をキャッシュする。
【００２９】
更に、前記前記ユーザアクセスログレコードからアクティブユーザセットを統計するについて、具体的には：
【００３０】
アクセスされたソースの接尾辞がｊｐｇであるレコード行を前記ユーザアクセスログレコードからフィルタリングし、その中に、前記レコード行がユーザＩＤ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、
【００３１】
レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、
【００３２】
ビジターＩＰを前記二次元配列でトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、前記ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、
【００３３】
前記ＨａｓｈＭａｐコレクションをＶａｌｕｅ値の降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークし、
【００３４】
更に、対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、具体的には：
【００３５】
ＡｒｒａｙＬｉｓｔコレクションから抽出されたビジターＩＰを、前記二次元配列から抽出されたビジターＩＰと照合し、
【００３６】
一致が出たら、合致するビジターＩＰをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを用いて、前記アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークし、
【００３７】
前記対数線形モデルは：  
2019204473.tif 000023
であり、
【００３８】
その中に、
2019204473.tif 000024
がファイルｉの人気予測値であり、
2019204473.tif 000025
がファイルｉが観測期間中のトラフィックであり、観測期間の長さがｔである。
【００３９】
本発明の実施例を実施すると、以下の有益効果が出る：
【００４０】
本発明の実施例が提供するＨａｄｏｏｐに基づいて、データマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳに複数の２ＭＢ以下の小さなファイルを書き込む方法については、該書き込みメソッドはデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、該読み込みメソッドは：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザＩＤと小さなファイルの名前によってＨＢａｓｅキャッシュモジュールを照会し、対応する最初のファイルコンテンツが照会されたら、最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツをＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応する最初のファイルコンテンツが照会されなかったら、ＨＤＦＳデータベースを照会し、成功すれば、照会された第二のファイルコンテンツに戻り、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新し、失敗すれば、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して対応するＨＡＲファイルにアクセスし、小さなファイルを書き込み、小さなファイルの書き込まれたＨＡＲファイルをデータベースにアップロードして更新する。小さなファイル間の関連性とホットスポットファイルを考慮しない既存技術と比べ、本発明の書き込みメソッドは小さなファイルのマージ及びＨＢａｓｅキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
【発明の効果】
【００４１】
本発明の実施例を実施すると、以下の有益効果が出る：
【００４２】
本発明の実施例が提供するＨａｄｏｏｐに基づいて、データマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳに複数の２ＭＢ以下の小さなファイルを書き込む方法については、該書き込みメソッドはデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、該読み込みメソッドは：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザＩＤと小さなファイルの名前によってＨＢａｓｅキャッシュモジュールを照会し、対応する最初のファイルコンテンツが照会されたら、最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツをＨＢａｓｅキャッシュモジュールにアップロードして更新し、対応する最初のファイルコンテンツが照会されなかったら、ＨＤＦＳデータベースを照会し、成功すれば、照会された第二のファイルコンテンツに戻り、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新し、失敗すれば、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して対応するＨＡＲファイルにアクセスし、小さなファイルを書き込み、小さなファイルの書き込まれたＨＡＲファイルをデータベースにアップロードして更新する。小さなファイル間の関連性とホットスポットファイルを考慮しない既存技術と比べ、本発明の書き込みメソッドは小さなファイルのマージ及びＨＢａｓｅキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
【図面の簡単な説明】
【００４３】
【図１】図１は本発明の提供するＨａｄｏｏｐに基づく大量の小さなファイルの書き    込みメソッドの実施例のプロセス見取り図である。
【図２】図２は本発明の提供するデータマージメソッドの実施例のプロセス見取り図である。
【図３】図３は本発明の提供するキャッシュメソッドの実施例のプロセス見取り図である。
【図４】図４は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。
【発明を実施するための形態】
【００４４】
下記に本発明の実施例の中の附図を交え、本発明の実施例の技術方案を明確にはっきり説明し、説明した実施例がただ本発明の一部分の実施例で、全部の実施例ではないである。本発明の実施例に基づいて、本領域の普通技術者が創造的な労働を払わないことを前提に得る全部のその他の実施例は本発明の保護範囲に所属する
【００４５】
図１を参照し、本発明の提供するＨａｄｏｏｐに基づいて、データマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳに複数の２ＭＢ以下の小さなファイルを書き込む方法の実施例のプロセス見取り図であり、該メソッドがステップ１０１からステップ１０６までを含む。該書き込みメソッドはデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用され、各ステップは以下を含む：
【００４６】
ステップ１０１：ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザＩＤと小さなファイルの名前を含む。
【００４７】
ステップ１０２：ユーザＩＤと前記小さなファイルの名前によって前記ＨＢａｓｅキャッシュモジュールを照会し、対応するファイルコンテンツが照会されたかどうかを判断し、イエスであれば、ステップ１０５に進み、そうでなければ、ステップ１０３に進む。
【００４８】
ステップ１０３：小さなファイルの名前により前記ＨＤＦＳシステムのデータベースを照会し、対応する第二のファイルコンテンツが照会されたかどうかを判断し、イエスであれば、ステップ１０６に進み、そうでなければ、ステップ１０４に進む。
【００４９】
ステップ１０４：ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出して小さなファイルのファイル名と対応するＨＡＲファイルにアクセスし、小さなファイルの書き込まれたＨＡＲファイルをデータベースにアップロードして更新する。
【００５０】
ステップ１０５：最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツをＨＢａｓｅキャッシュモジュールにアップロードして更新する。
【００５１】
ステップ１０６：データベースに照会された第二のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新する。
【００５２】
図２を参照し、図２は本発明の提供するデータマージメソッドの実施例のプロセス見取り図であり、本発明のデータマージモジュールには図２の示すデータマージメソッドが採用され、ステップＡからステップＦまでを含み、各ステップは以下のように：
【００５３】
ステップＡ：クライアントがストレージされるファイルをアップロードした後で、ＨＤＦＳのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを用いて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、ここで、前記ユーザアクセスプリファレンスモデルはユーザアクセスログレコードに基づいている、
【００５４】
本実施例において、ユーザアクセスプリファレンスモデルがユーザアクセスログレコードから統計されたもので、具体的には：ユーザアクセスログレコードからアクティブユーザセットを統計し、アクティブユーザセットにアクセスされた小さなファイルをｂｅａｎオブジェクトで表し、小さなファイルがサイズが２ＭＢ又は２ＭＢ以下のファイルであり、その中に、ｂｅａｎオブジェクトのプロパティが該小さなファイルにアクセスしたユーザＩＤ、ユーザにアクセスされた小さなファイルの名前及び該小さなファイルがアクセスされた回数を含み、ＪＤＢＣテクノロジを用いて、ｂｅａｎオブジェクトをＭｙｓｑｌデータベースに永続化してストレージし、ストレージされたデータによって、任意の二つの異なるアクセス動作の類似性をアカウントし、任意の二つの異なるアクセス動作の類似性が正であれば、任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのＩＤを記録して関連ファイルセットを使ってすべての類似ユーザにアクセスされ、関連付けられたファイル情報をストレージし、関連ファイルセットによって、ユーザアクセスプリファレンスモデルを構築する。
【００５５】
本実施例において、ユーザアクセスログレコードからアクティブユーザセットを統計し、具体的には：アクセスされたソースの接尾辞がｊｐｇであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザＩＤ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、ビジターＩＰを二次元配列でトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、ＨａｓｈＭａｐコレクションをＶａｌｕｅ値の降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークする。
【００５６】
本発明のモデルの構築過程をもっとよく説明するために、下記の例えにより説明し、具体的な実現する過程が以下のように：
【００５７】
（１）正規表現を使用してアクセスされたソースの接尾辞がｊｐｇであるレコード行をフィルタリングする。
【００５８】
（２）ログ解析クラスを作成してレコード行の五つのコンポーネントを別々に解析し、二次元配列を使ってビジターＩＰと小さなファイルの名前をストレージする。
【００５９】
（３）二次元配列のビジターＩＰ要素をトラバースし、各ビジターＩＰのトラフィックをカウンタするカウンタを設計する。ＨａｓｈＭａｐコレクションを使って、ビジターＩＰをＫｅｙ値とし、Ｖａｌｕｅ値が該ビジターのトラフィックである。
【００６０】
（４）ステップ３で生成されたＨａｓｈＭａｐコレクションをＶａｌｕｅ値にしたがって降順でソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションで該ＩＰサブセットをストレージし、アクティブユーザセットとしてマークする。
【００６１】
（５）一つのｂｅａｎオブジェクトによってアクティブユーザセットにアクセスされた小さなファイルを抽象に表し、オブジェクトのプロパティが該小さなファイルをアクセスしたユーザＩＤ、ユーザにアクセスされた小さなファイルの名前及び該小さなファイルがアクセスされた回数を含む。メソッドはプロパティを取得するｇｅｔ及びｓｅｔメソッドである。
【００６２】
（６）ＪＤＢＣテクノロジｂｅａｎオブジェクトをＭｙｓｑｌデータベースに結合して永続にストレージし、以下の形式のテーブルが形成される：
【００６３】
2019204473.tif 000026
【００６４】
（７）２０行の二行の間にデータを取り込み、数式
2019204473.tif 000027
によって二つの異なるユーザアクセス作動の類似性をカウンタする。その中に、本発明はピアソン相関係数を使用して類似のユーザを決定し、スコアリング行列Ｒを指定し、ユーザａとユーザｂの類似性をｓｉｍ（ａ，ｂ）で表し、ｒａ及びｒｂが「ユーザ−トラフィック」ストアリングマトリックスのストアリングデータである。
【００６５】
（８）ここで、ｓｉｍ（ａ，ｂ）の値が正の値であれば、二人の異なるユーザが類似ユーザであると判定され、そのユーザＩＤが記録される。
【００６６】
（９）類似ユーザのユーザＩＤに基づいて、一つのコレクションを使用して、類似ユーザにアクセスされ、関連付けられているすべてのファイル情報をストレージする。
【００６７】
ステップＢ：関連ファイルコレクションのミドルファイルとストレージされるファイルを順にマージするキューに追加する。
【００６８】
ステップＣ：マージするキューのすべてのファイルの総サイズが１２８  ＭＢを超えるかどうかを判断し、イエスであれば、ステップＤに進み、そうでなければ、ステップＥに進む。
【００６９】
ステップＤ：マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＢに戻る。
【００７０】
ステップＥ：関連ファイルコレクションのミドルファイルとストレージされるファイルが全部マージするキューに追加されたかどうかを判断し、イエスであれば、マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップＦに進み、そうでなければ、ステップＢに進む。
【００７１】
ステップＦ：すべてのマージしたデータブロックをＨＤＦＳシステムにストレージする。
【００７２】
図３を参照し、図３は本発明が提供するキャッシュメソッドの実施例のプロセス見取り図である。本発明のＨＢａｓｅキャッシュモデルが図３のキャッシュメソッドを採用し、該メソッドはステップ３０１からステップ３０３までを含み、各ステップが以下のように：
【００７３】
ステップ３０１：ユーザアクセスログレコードを取得し、ユーザアクセスログレコードからアクティブユーザセットを統計する。
【００７４】
本実施例の中に、ステップ３０１においてユーザアクセスログレコードからアクティブユーザセットを統計し、具体的には：アクセスされたソースの接尾辞がｊｐｇであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザＩＰ、アクセスページＵＲＬ、アクセス開始時刻、アクセス状況及びアクセストラフィックを含み、ログ解析クラスを作成してレコード行を解析し、二次元配列を使用してビジターＩＰと小さなファイルの名前をストレージし、二次元配列のビジターＩＰをトラバースし、ＨａｓｈＭａｐコレクションを使用して各ビジターＩＰのトラフィックを統計し、ＨａｓｈＭａｐコレクションのＫｅｙ値がビジターＩＰであり、Ｖａｌｕｅ値がトラフィックであり、ＨａｓｈＭａｐコレクションをＶａｌｕｅ値によって降順にソートし、ビジターＩＰの上位２０％をフィルタリングし、ＡｒｒａｙＬｉｓｔコレクションを使用して該ＩＰサブセットをストレージしてアクティブユーザセットとしてマークする。
【００７５】
本発明のステップ３０１においてアクティブユーザセットをカウントする目的は、小さなファイルへのユーザのアクセスが均一なランダムではなくパレート分布法則に近いのである。すなわち、ほとんどのＩ／Ｏが少量の人気データへのアクセスをリクエストし、トラフィックの８０％がデータの２０％に集中している。したがって、ファイルシステムにストレージされた大量の小さなファイルからモデルを介してホットスポットファイルを予測してキャッシュすることができれば、ユーザのデータへのアクセスの効率を上げられる。
【００７６】
ステップ３０２：対数線形モデルをあわせて、アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークする。
【００７７】
本実施例において、ステップ３０２は具体的には：ＡｒｒａｙＬｉｓｔコレクションから抽出されたビジターＩＰを、二次元配列から抽出されたビジターＩＰと照合し、一致が出たら、合致するビジターＩＰをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを用いて、アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位２０％をホットスポットファイルとしてマークする。
【００７８】
対数線形モデルは：  
2019204473.tif 000028
であり、
【００７９】
その中に、
2019204473.tif 000029
がファイルｉの人気予測値であり、
2019204473.tif 000030
がファイルｉが観測期間中のトラフィックであり、観測期間の長さがｔである。
2019204473.tif 000031
と
2019204473.tif 000032
が線形関係の関連パラメータであり、線形回帰法によって最適値をアカウントすることが
できる。
【００８０】
本発明の対数線形モデルにおいて記載された観測期間の長さｔの定義は：ユーザアクセスログレコードのレコード行のアクセス開始時刻要素とユーザアクセスログレコードを収集した時刻との時間差である。例えば、収集されたユーザアクセスログレコードの時点が３０／Ｊａｎ／２０１８：１７：３８：２０で、ユーザアクセスログレコードのレコード行のアクセス開始時刻が２９／Ｊａｎ／２０１８：１０：３５：１５で、観測期間の長さが２９／Ｊａｎ／２０１８：１０：３５：１５から３０／Ｊａｎ／２０１８：１７：３８：２０までの時間差であり、アカウントしやすいために、期間の長さが時間単位にする。
【００８１】
ステップ３０３：ホットスポットファイルを取得し、Ｈｂａｓｅデータベースを採用してホットスポットファイルの関連情報をキャッシュする。
【００８２】
本実施例においては、Ｈｂａｓｅデータベースを採用してホットスポットファイルの関連情報をキャッシュし、ＨＢａｓｅのテーブル名値がビジターＩＤであり、ＨＢａｓｅのＲｏｗＫｅｙが小さなファイルの名前であり、ＨＢａｓｅのファミリ名が「ファイルコンテンツ」であり、Ｖａｌｕｅ値すなわちセル値が小さなファイルのコンテンツである。ユーザがＨＢａｓｅの小さなファイルにアクセス時に、ユーザＩＤをテーブル名とし、アクセスする小さなファイルの名前をＨＢａｓｅのｇｅｔ（）メソッドのパラメータとすれば、対応する小さなファイルのコンテンツを取得できる。
【００８３】
本発明のキャッシュメソッドをもっと詳しく説明するため、図４を参照し、図４は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。図４が示すように、該プロセスが：ユーザアクセスレコードセット→正規表現が需要するレコード行をフィルタリングする→レコード行を解析する→ｂｅａｎオブジェクトでレコード行情報をカプセル化する→ＪＤＢＣ  ＡＰＩを調査研究してｂｅａｎオブジェクトをＭｙｓｑｌデータベースに永続化する→二次元配列によってビジターＩＰと小さなファイルの名前情報をストレージする→配列をトラバースし、ビジタートラフィックを統計する→ビジタートラフィックによってサーとし、ＡｒｒａｙＬｉｓｔコレクションを使ってアクティブユーザセットのユーザＩＰをストレージする→二次元配列をアクティブユーザセットのビジターＩＰと照合する→一致が出たら、ビジターＩＰをキーワードとして、ユーザアクセス開始時刻とトラフィックを抽出する→ファイル人気予測数式によってファイル人気値をアカウントする→ファイル人気値をサートし、ホットスポットファイルをマークする→ＨＢａｓｅによってホットスポットファイルの関連情報をキャッシュする。
【００８４】
上記からわかったことは、本発明の実施例の提供するＨａｄｏｏｐに基づく大量の小さなファイルの読み込みメソッドにおいて、該読み込みメソッドがデータマージモジュールとＨＢａｓｅキャッシュモジュールを備えるＨＤＦＳシステムに適用される。該読み込みメソッドは、ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、前記書き込みコマンド中にユーザＩＤと小さなファイルの名前を含み、ユーザＩＤと小さなファイルの名前でＨＢａｓｅキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツに戻り、対応するファイルコンテンツが出ないと、ＨＤＦＳシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツに戻り、失敗したら、ＨａｄｏｏｐａｒｃｈｉｖｅツールのＡＰＩを呼び出し、対応するＨＡＲファイルにアクセスしてＨＡＲファイルに戻る。現有技術と比べて、小さなファイルの間のアソシエーションとホットスポットファイルを問わず、本発明の読み込みメソッドは小さなファイルとＨＢａｓｅキャッシングメカニズムがマージされた後で、小さなファイルの読み込み効率を上げられる。
【００８５】
更に、本発明はデータマージメソッドを提供し、小さなファイルの読み込み効率を高め、ＨＤＦＳシステムでのｎａｍｅｎｏｄｅメモリの消費を削減する。
【００８６】
更に、本発明のデータマージメソッドには、複数の関連付けられた小さなファイルが一つの大きなファイルにマージされてシステムにストレージされ、システムのｎａｍｅｎｏｄｅノードが一つの大きなファイルの対応するメタデータをストレージし、ｎａｍｅｎｏｄｅノードの維持する必要のあるメタデータの量が大幅に減少し、メモリ消費量も減少になる。
【００８７】
更に、本発明のデータマージメソッドには、関連ファイルが同じの一つの大きなファイルにストレージされ、ファイルがマージされた後で同じデータノードの同じデータブロックの中にストレージされる。ファイルへのユーザのリクエストに強い関連性があれば、すなわち、ユーザに耐えずにアクセスされた小さなファイルが同じ大きなファイルにマージされば、ファイルアクセスの原則によると、システムはより近いｄａｔａｎｏｄｅノードのデータブロックを読み込み、つまり絶えずに同じｄａｔａｎｏｄｅのデータブロックからデータを読み込み、こうして異なるファイルにアクセス時に異なるデータノードの間にジャンプしなくで済み、ディスクアドレッシングのオーバーヘッドが削減され、占められるシステムリソースが比較的に少なくなり、ファイルの読み込み効率を大きく高める。
【００８８】
更に、本発明が提供するキャッシュメソッドには、現有技術と比べてユーザにアクセスされたホットスポットファイルを考慮せず、本発明はＨＢａｓｅによってホッとスポットファイルをキャッシュし、キャッシュヒット率を高めるだけでなく、ファイルの読み込み効率も上げる。
【００８９】
当業者は、上記の実施形態を実施するプロセスの全部または一部を理解することができ、コンピュータプログラムによって関連するハードウェアを指示することで完了することができ、前記のプログラムがコンピュター可読記憶媒体にストレージされることができ、該プログラムが実行される時に、上記の各メソッドの実施例のプロセスが含まれる。その中に、前記の記憶媒体が磁気ディスク、光ディスク、読み出し専用メモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ，ＲＯＭ）またはランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ，ＲＡＭ）であってもよい。
【００９０】
以上に述べたのは本発明の優先された実施形態であり、注意すべきのは、本技術分野の一般的な技術員にとって、本発明の原理から離れないことを前提として、若干な改善や飾りができ、これらの改善や飾りも本発明の保護範囲に含まれる。