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