JP2019204472A - Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法 - Google Patents

Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法 Download PDF

Info

Publication number
JP2019204472A
JP2019204472A JP2018147288A JP2018147288A JP2019204472A JP 2019204472 A JP2019204472 A JP 2019204472A JP 2018147288 A JP2018147288 A JP 2018147288A JP 2018147288 A JP2018147288 A JP 2018147288A JP 2019204472 A JP2019204472 A JP 2019204472A
Authority
JP
Japan
Prior art keywords
file
user
small
files
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018147288A
Other languages
English (en)
Other versions
JP6695537B2 (ja
Inventor
魏文国
Wenguo Wei
謝桂園
Guiyuan Xie
蔡君
Jun Cai
趙慧民
Huimin Zhao
彭建烽
Jianfeng Peng
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Polytechnic Normal University
Original Assignee
Guangdong Polytechnic Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Polytechnic Normal University filed Critical Guangdong Polytechnic Normal University
Publication of JP2019204472A publication Critical patent/JP2019204472A/ja
Application granted granted Critical
Publication of JP6695537B2 publication Critical patent/JP6695537B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】本発明はHadoopに基づく大量の小さなファイルの読み込みメソッドを開示した。【解決手段】該読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用される。該メソッドには:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドが前記ユーザIDと小さなファイルの名前を含み、前記ユーザIDと小さなファイルの名前にしたがってHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツに戻り、対応するファイルコンテンツが出ないと、HDFSシステムのダータベースを照会する。本発明の読み込みメソッドは小さなファイルのマージ及びHBaseキャッシングメカニズムと合わせた後で、小さなファイルの読み込み効率を高める。【選択図】図1

Description

本発明はコンピュータテクノロジー分野に関し、具体的には、Hadoopに基づく大量の小さなファイルの読み込みメソッドに関する。
Hadoopは2005年にApache FoundationによってLuceneのサブプロジェクトであるNutchの一部分として正式に導入されたものである。Hadoopの最も重要な二つの設計はHDFSとMapReduceである。HDFSは大量なデータをストレージし、ファイルがデータブロックの形でシステムにストレージされる。また、HDFSのデータブロックは通常のディスクに定義されたデータブロック(通常は512B)よりも遥かに大きく、HDFSの現在のデフォルトブロックサイズは128MBである。もしHDFSにストレージされたファイルのサイズが128に超えると、HDFSは該ファイルを複数のブロックサイズのブロックに分割し、別々にストレージする。また、HDFSが絶えずに小さなファイルをTBひいてはPBレベルまでストレージし続けると、小さなファイルの問題が発生し、此れは、大量のメタデータがHDFSのプライマリノードのnamenodeにストレージされるため、namenodeの負荷が大幅に増加し、システムの読み取りパフォーマンスに影響するためである。その中に、小さなファイルのサイズが2MBに定義され、つまり、HDFSがファイルをストレージする中で、ファイルのサイズが2Mまたは2M以下であると、小さなファイルとして定義される。
大量な小さなファイルの処理について、現有の技術においては、若干の小さなファイルを一つのブロックサイズの大きなファイルにマージすることであり、ファイル間の関連性を考慮せず、小さなファイルの読み込み効率が望ましくなくなる。
中国特許出願公開第102799639号明細書
本発明の実施例ではHadoopに基づく大量の小さなファイルの読み込みメソッドが打ち出され、ファイルマージとHBaseキャッシングメカニズムを組み合わせた後で、小さなファイルの読み込み効率を改善することができる。
本発明の実施例ではHadoopに基づく大量の小さなファイルの読み込みメソッドが打ち出され、ファイルマージとHBaseキャッシングメカニズムを組み合わせた後で、小さなファイルの読み込み効率を改善することができる。
本発明の実施例はHadoopに基づく大量の小さなファイルの読み込みメソッドを提供し、前記読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、前記読み込みメソッドには:
ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、其中、その中に、前記小さなファイルの読み込みコマンドが前記ユーザIDと小さなファイルの名前を含み、
前記ユーザIDと前記小さなファイルの名前にしたがって前記HBaseキャッシュモジュールを照会し、
対応するファイルコンテンツが出たら、前記HBaseキャッシュモジュールによって照会されたファイルコンテンツに戻り、そうでなければ、前記小さなファイルの名前によって前記HDFSシステムのデータベースを照会して対応するファイルコンテンツが照会されたかどうかを判断し、
イエスであれば前記データベースによって照会されたファイルコンテンツに戻り、
そうでなければ、HadooparchiveツールのAPIを呼び出して前記小さなファイルの名前の対応するHARファイルにアクセスして前記HARファイルに戻り、
更に、前記データマージモジュールの採用するデータマージメソッドが以下のように:
ステップA:クライアントがストレージされるファイルをアップロードした後で、HDFSのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを組み合わせて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、その中に、前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードに基づいている。
ステップB:前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルを順にマージするキューに追加する。
ステップC:前記マージするキューのすべてのファイルの総サイズが128 MBを超えるかどうかを判断し、イエスであれば、ステップDに進み、そうでなければ、ステップEに進む。
ステップD:前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップBに戻る。
ステップE:前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルが全部前記マージするキューに追加されたかどうかを判断し、イエスであれば、前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップFに進み、そうでなければ、ステップBに進む。
ステップF:すべてのマージしたデータブロックをHDFSシステムにストレージする。
更に、その特徴は、前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードから統計されたものであり、具体的には:
前記ユーザアクセスログレコードからアクティブユーザセットを統計し、
beanオブジェクトが前記アクティブユーザセットによってアクセスされた小さなファイルを表すために使用され、前記小さなファイルがサイズが2MBまたは2MB以上のファイルを指し、その中に、前記beanオブジェクトのプロパティが該小さなファイルをアクセスするユーザID、ユーザがアクセスした小さなファイルの名前及び該小さなファイルがアクサスされた回数を含み、
JDBCテクノロジを合わせて、前記beanオブジェクトを永続にMysql前記データベースにストレージし、ストレージされたデータにしたがって、任意の二つの異なるアクセス動作の類似性を計算し、
前記任意の二つの異なるアクセス動作の類似性が正の場合、前記任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのIDを記録し、関連ファイルコレクションを使って、類似ユーザによってアクサスされ、関連付けられたファイル情報をストレージし、
前記関連ファイルコレクションにしたがって、前記ユーザアクセスプリファレンスモデルを構築し、
更に、その特徴は、前記HBaseキャッシュモジュールの採用するキャッシュメソッドは:
ユーザアクセスログレコードを取得し、前記ユーザアクセスログレコードより前記アクティブユーザセットを統計し、
対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、
前記ホットスポットファイルを取得し、Hbaseデータベースを採用して前記ホットスポットファイルの関連情報をキャッシュし、
更に、前記前記ユーザアクセスログレコードからアクティブユーザセットを統計するについて、具体的には、
アクセスされたソースの接尾辞がjpgであるレコード行を前記ユーザアクセスログレコードからフィルタリングし、前記レコード行がユーザID、アクセスページURL、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、
レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターIPと小さなファイルの名前をストレージし、
ビジターIPを前記二次元配列でトラバースし、HashMapコレクションを使用して各ビジターIPのトラフィックを統計し、前記HashMapコレクションのKey値がビジターIPであり、Value値がトラフィックであり、
前記HashMapコレクションをValue値の降順でソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションを使用して該IPサブセットをストレージし、アクティブユーザセットとしてマークし、
更に、前記対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、具体的には:
ArrayListコレクションから抽出されたビジターIPを、前記二次元配列から抽出されたビジターIPと照合し、
一致が出たら、合致するビジターIPをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを合わせ、前記アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、
前記対数線形モデルは:
Figure 2019204472
であり、
その中に、
Figure 2019204472
がファイルiの人気予測値であり、
Figure 2019204472
がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
本発明の実施例を実施すると、以下の有益効果が出る:
本発明の実施例が提供するHadoopに基づく大量の小さなファイルの読み込みメソッドについては、該読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、該読み込みメソッドは:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含み、ユーザIDと小さなファイルの名前にしたがってHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツに戻り、そうでなければ、HDFSシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツに戻り、そうでなければ、HadooparchiveツールのAPIを呼び出して対応するHARファイルにアクセスしてHARファイルに戻る。小さなファイル間の関連性とホットスポットファイルを考慮しない現有技術と比べ、本発明の読み込みメソッドは小さなファイルのマージとHBaseキャッシングメカニズムが組み合わせられた後で、小さなファイルの読み込み効率を改善できる。
本発明の実施例を実施すると、以下の有益効果が出る:
本発明の実施例が提供するHadoopに基づく大量の小さなファイルの読み込みメソッドについては、該読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、該読み込みメソッドは:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含み、ユーザIDと小さなファイルの名前にしたがってHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツに戻り、そうでなければ、HDFSシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツに戻り、そうでなければ、HadooparchiveツールのAPIを呼び出して対応するHARファイルにアクセスしてHARファイルに戻る。小さなファイル間の関連性とホットスポットファイルを考慮しない現有技術と比べ、本発明の読み込みメソッドは小さなファイルのマージとHBaseキャッシングメカニズムが組み合わせられた後で、小さなファイルの読み込み効率を改善できる。
図1は本発明の提供するHadoopに基づく大量の小さなファイルの読み込みメソッドの実施例のプロセス見取り図である。 図2は本発明の提供するデータマージメソッドの実施例のプロセス見取り図である。 図3は本発明の提供するキャッシュメソッドの実施例のプロセス見取り図である。 図4は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。
図1を参照し、本発明のHadoopに基づく大量の小さなファイルの読み込みメソッドの実施例のプロセス見取り図であり、そのメソッドはステップ101からステップ105を含む。該当読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、各ステップは以下のように:
ステップ101:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含む。
ステップ102:ユーザIDと小さなファイルの名前にしたがってHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが照会されたかどうかを判断し、イエスであればステップ105に進み、そうでなければステップ103に進む。
ステップ103:小さなファイルの名前にしたがってHDFSシステムのデータベースを照会し、対応するファイルコンテンツが照会されたかどうかを判断し、イエスであればステップ105に進み、そうでなければ104に進む。
ステップ104:HadooparchiveツールのAPIを呼び出し、小さなファイルの名前が対応するHARファイルにアクセスし、そのHARファイルに戻る。
ステップ105:照会されたファイルコンテンツに戻る。
図2を参照し、図2は本発明の提供するデータマージメソッドの実施例のプロセス看取り図であり、本発明のデータマージモジュールは図2の示すデータマージメソッドを採用し、ステップAからステップFまでを含み、各ステップが以下のように:
ステップA:クライアントがストレージされるファイルをアップロードした後で、HDFSのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを組み合わせて、ストレージされるファイルの関連ファイルコレクションを見つけ、その中に、ユーザアクセスプリファレンスモデルがユーザアクセスログレコードに基づいている。
本実施例の中で、ユーザアクセスプリファレンスモデルがユーザアクセスログレコードに基づいて統計されたもので、具体的には:ユーザアクセスログレコードからアクティブユーザセットを統計し、beanオブジェクトがアクティブユーザセットによってアクセスされた小さなファイルを表すために使用され、小さなファイルがサイズが2MBまたは2MB以上のファイルを指し、その中に、beanオブジェクトのプロパティが該小さなファイルをアクセスするユーザID、ユーザがアクセスした小さなファイルの名前及び該小さなファイルがアクサスされた回数を含み、JDBCテクノロジによって、beanオブジェクトを永続にMysqlデータベースにストレージし、ストレージされたデータにしたがって、任意の二つの異なるアクセス動作の類似性を計算し、任意の二つの異なるアクセス動作の類似性が正の場合、任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのIDを記録し、関連ファイルコレクションを使って、類似ユーザによってアクサスされ、関連付けられたファイル情報をストレージし、関連ファイルコレクションにしたがって、ユーザアクセスプリファレンスモデルを構築する。
本実施例の中で、ユーザアクセスログレコードよりアクティブユーザセットを統計し、具体的には:アクセスされたソースの接尾辞がjpgであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザID、アクセスページURL、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、レコード解析クラスを作成してレコード行を解析し、二次元配列を使用してビジターIPと小さなファイルの名前をストレージし、二次元配列のビジターIPをトラバースし、HashMapコレクションを使用して各ビジターIPのトラフィックを統計し、HashMapコレクションのKey値がビジターIPであり、Value値がトラフィックであり、HashMapコレクションをValue値の降順でソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションを使用して該IPサブセットをストレージし、アクティブユーザセットとしてマークする。
本発明のモデルの構築過程をもっとよく説明するために、下記の例えにより説明し、具体的な実現する過程が以下のように:
(1)正規表現を使用してアクセスされたソースの接尾辞がjpgであるレコード行をフィルタリングする。
(2)ログ解析クラスを作成してレコード行の五つのコンポーネントを別々に解析し、二次元配列を使ってビジターIPと小さなファイルの名前をストレージする。
(3)二次元配列のビジターIP要素をトラバースし、各ビジターIPのトラフィックをカウンタするカウンタを設計する。HashMapコレクションを使って、ビジターIPをKey値とし、Value値が該ビジターのトラフィックである。
(4)ステップ3で生成されたHashMapコレクションをValue値にしたがって降順でソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションで該IPサブセットをストレージし、アクティブユーザセットとしてマークする。
(5)一つのbeanオブジェクトによってアクティブユーザセットにアクセスされた小さなファイルを抽象に表し、オブジェクトのプロパティが該小さなファイルをアクセスしたユーザID、ユーザにアクセスされた小さなファイルの名前及び該小さなファイルがアクセスされた回数を含む。メソッドはプロパティを取得するget及びsetメソッドである。
(6)JDBCテクノロジbeanオブジェクトをMysqlデータベースに結合して永続にストレージし、以下の形式のテーブルが形成される:
Figure 2019204472
(7)20行の二行の間にデータを取り込み、数式
Figure 2019204472
によって二つの異なるユーザアクセス作動の類似性をカウンタする。その中に、本発明はピアソン相関係数を使用して類似のユーザを決定し、スコアリング行列Rを指定し、ユーザaとユーザbの類似性をsim(a,b)で表し、r及びrが「ユーザ−トラフィック」ストアリングマトリックスのストアリングデータである。
(8)ここで、sim(a,b)の値が正の値であれば、二人の異なるユーザが類似ユーザであると判定され、そのユーザIDが記録される。
(9)類似ユーザのユーザIDに基づいて、一つのコレクションを使用して、類似ユーザにアクセスされ、関連付けられているすべてのファイル情報をストレージする。
ステップB:関連ファイルコレクションのミドルファイルとストレージされるファイルを順にマージするキューに追加する。
ステップC:マージするキューのすべてのファイルの総サイズが128 MBを超えるかどうかを判断し、イエスであれば、ステップDに進み、そうでなければ、ステップEに進む。
ステップD:マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップBに戻る。
ステップE:関連ファイルコレクションのミドルファイルとストレージされるファイルが全部マージするキューに追加されたかどうかを判断し、イエスであれば、マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップFに進み、そうでなければ、ステップBに進む。
ステップF:すべてのマージしたデータブロックをHDFSシステムにストレージする。
図3を参照し、図3は本発明が提供するキャッシュメソッドの実施例のプロセス見取り図である。本発明のHBaseキャッシュモデルが図3のキャッシュメソッドを採用し、該メソッドはステップ301からステップ303までを含み、各ステップが以下のように:
ステップ301:ユーザアクセスログレコードを取得し、ユーザアクセスログレコードからアクティブユーザセットを統計する。
本実施例の中に、ステップ301においてユーザアクセスログレコードからアクティブユーザセットを統計し、具体的には:アクセスされたソースの接尾辞がjpgであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザIP、アクセスページURL、アクセス開始時刻、アクセス状況及びアクセストラフィックを含み、ログ解析クラスを作成してレコード行を解析し、二次元配列を使用してビジターIPと小さなファイルの名前をストレージし、二次元配列のビジターIPをトラバースし、HashMapコレクションを使用して各ビジターIPのトラフィックを統計し、HashMapコレクションのKey値がビジターIPであり、Value値がトラフィックであり、HashMapコレクションをValue値によって降順にソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションを使用して該IPサブセットをストレージしてアクティブユーザセットとしてマークする。
本発明のステップ301においてアクティブユーザセットをカウントする目的は、小さなファイルへのユーザのアクセスが均一なランダムではなくパレート分布法則に近いのである。すなわち、ほとんどのI/Oが少量の人気データへのアクセスをリクエストし、トラフィックの80%がデータの20%に集中している。したがって、ファイルシステムにストレージされた大量の小さなファイルからモデルを介してホットスポットファイルを予測してキャッシュすることができれば、ユーザのデータへのアクセスの効率を上げられる。
ステップ302:対数線形モデルをあわせて、アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークする。
本実施例において、ステップ302は具体的には:ArrayListコレクションから抽出されたビジターIPを、二次元配列から抽出されたビジターIPと照合し、一致が出たら、合致するビジターIPをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを合わせ、アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークする。
対数線形モデルは:
Figure 2019204472
であり、
その中に、
Figure 2019204472
がファイルiの人気予測値であり、
Figure 2019204472
がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
Figure 2019204472

Figure 2019204472
が線形関係の関連パラメータであり、線形回帰法によって最適値をアカウントすることができる。
本発明の対数線形モデルにおいて記載された観測期間の長さtの定義は:ユーザアクセスログレコードのレコード行のアクセス開始時刻要素とユーザアクセスログレコードを収集した時刻との時間差である。例えば、収集されたユーザアクセスログレコードの時点が30/Jan/2018:17:38:20で、ユーザアクセスログレコードのレコード行のアクセス開始時刻が29/Jan/2018:10:35:15で、観測期間の長さが29/Jan/2018:10:35:15から30/Jan/2018:17:38:20までの時間差であり、アカウントしやすいために、期間の長さが時間単位にする。
ステップ303:ホットスポットファイルを取得し、Hbaseデータベースを採用してホットスポットファイルの関連情報をキャッシュする。
本実施例においては、Hbaseデータベースを採用してホットスポットファイルの関連情報をキャッシュし、HBaseのテーブル名値がビジターIDであり、HBaseのRowKeyが小さなファイルの名前であり、HBaseのファミリ名が「ファイルコンテンツ」であり、Value値すなわちセル値が小さなファイルのコンテンツである。ユーザがHBaseの小さなファイルにアクセス時に、ユーザIDをテーブル名とし、アクセスする小さなファイルの名前をHBaseのget()メソッドのパラメータとすれば、対応する小さなファイルのコンテンツを取得できる。
本発明のキャッシュメソッドをもっと詳しく説明するため、図4を参照し、図4は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。図4が示すように、該プロセスが:ユーザアクセスレコードセット→正規表現が需要するレコード行をフィルタリングする→レコード行を解析する→beanオブジェクトでレコード行情報をカプセル化する→JDBC APIを調査研究してbeanオブジェクトをMysqlデータベースに永続化する→二次元配列によってビジターIPと小さなファイルの名前情報をストレージする→配列をトラバースし、ビジタートラフィックを統計する→ビジタートラフィックによってサーとし、ArrayListコレクションを使ってアクティブユーザセットのユーザIPをストレージする→二次元配列をアクティブユーザセットのビジターIPと照合する→一致が出たら、ビジターIPをキーワードとして、ユーザアクセス開始時刻とトラフィックを抽出する→ファイル人気予測数式によってファイル人気値をアカウントする→ファイル人気値をサートし、ホットスポットファイルをマークする→HBaseによってホットスポットファイルの関連情報をキャッシュする。
上記からわかったことは、本発明の実施例の提供するHadoopに基づく大量の小さなファイルの読み込みメソッドにおいて、該読み込みメソッドがデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用される。該読み込みメソッドは、ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含み、ユーザIDと小さなファイルの名前でHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツに戻り、対応するファイルコンテンツが出ないと、HDFSシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツに戻り、失敗したら、HadooparchiveツールのAPIを呼び出し、対応するHARファイルにアクセスしてHARファイルに戻る。現有技術と比べて、小さなファイルの間のアソシエーションとホットスポットファイルを問わず、本発明の読み込みメソッドは小さなファイルとHBaseキャッシングメカニズムがマージされた後で、小さなファイルの読み込み効率を上げられる。
更に、本発明はデータマージメソッドを提供し、小さなファイルの読み込み効率を高め、HDFSシステムでのnamenodeメモリの消費を削減する。
更に、本発明のデータマージメソッドには、複数の関連付けられた小さなファイルが一つの大きなファイルにマージされてシステムにストレージされ、システムのnamenodeノードが一つの大きなファイルの対応するメタデータをストレージし、namenodeノードの維持する必要のあるメタデータの量が大幅に減少し、メモリ消費量も減少になる。
更に、本発明のデータマージメソッドには、関連ファイルが同じの一つの大きなファイルにストレージされ、ファイルがマージされた後で同じデータノードの同じデータブロックの中にストレージされる。ファイルへのユーザのリクエストに強い関連性があれば、すなわち、ユーザに耐えずにアクセスされた小さなファイルが同じ大きなファイルにマージされば、ファイルアクセスの原則によると、システムはより近いdatanodeノードのデータブロックを読み込み、つまり絶えずに同じdatanodeのデータブロックからデータを読み込み、こうして異なるファイルにアクセス時に異なるデータノードの間にジャンプしなくで済み、ディスクアドレッシングのオーバーヘッドが削減され、占められるシステムリソースが比較的に少なくなり、ファイルの読み込み効率を大きく高める。
更に、本発明が提供するキャッシュメソッドには、現有技術と比べてユーザにアクセスされたホットスポットファイルを考慮せず、本発明はHBaseによってホッとスポットファイルをキャッシュし、キャッシュヒット率を高めるだけでなく、ファイルの読み込み効率も上げる。
当業者は、上記の実施形態を実施するプロセスの全部または一部を理解することができ、コンピュータプログラムによって関連するハードウェアを指示することで完了することができ、前記のプログラムがコンピュター可読記憶媒体にストレージされることができ、該プログラムが実行される時に、上記の各メソッドの実施例のプロセスが含まれる。その中に、前記の記憶媒体が磁気ディスク、光ディスク、読み出し専用メモリ(Read−Only Memory,ROM)またはランダムアクセスメモリ(Random Access Memory,RAM)であってもよい。
以上に述べたのは本発明の優先された実施形態であり、注意すべきのは、本技術分野の一般的な技術員にとって、本発明の原理から離れないことを前提として、若干な改善や飾りができ、これらの改善や飾りも本発明の保護範囲に含まれる。
本発明はコンピュータテクノロジー分野に関し、具体的には、Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法に関する。
Hadoopは2005年にApache FoundationによってLuceneのサブプロジェクトであるNutchの一部分として正式に導入されたものである。Hadoopの最も重要な二つの設計はHDFSとMapReduceである。HDFSは大量なデータをストレージし、ファイルがデータブロックの形でシステムにストレージされる。また、HDFSのデータブロックは通常のディスクに定義されたデータブロック(通常は512B)よりも遥かに大きく、HDFSの現在のデフォルトブロックサイズは128MBである。もしHDFSにストレージされたファイルのサイズが128に超えると、HDFSは該ファイルを複数のブロックサイズのブロックに分割し、別々にストレージする。また、HDFSが絶えずに小さなファイルをTBひいてはPBレベルまでストレージし続けると、小さなファイルの問題が発生し、此れは、大量のメタデータがHDFSのプライマリノードのnamenodeにストレージされるため、namenodeの負荷が大幅に増加し、システムの読み取りパフォーマンスに影響するためである。その中に、小さなファイルのサイズが2MBに定義され、つまり、HDFSがファイルをストレージする中で、ファイルのサイズが2MB以下であると、小さなファイルとして定義される。
大量な小さなファイルの処理について、現有の技術においては、若干の小さなファイルを一つのブロックサイズの大きなファイルにマージすることであり、ファイル間の関連性を考慮せず、小さなファイルの読み込み効率が望ましくなくなる。
中国特許出願公開第102799639号明細書
本発明の実施例ではHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法が打ち出され、ファイルマージとHBaseキャッシングメカニズムを組み合わせた後で、小さなファイルの読み込み効率を改善することができる。
本発明の実施例ではHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法が打ち出され、ファイルマージとHBaseキャッシングメカニズムを組み合わせた後で、小さなファイルの読み込み効率を改善することができる。
本発明の実施例はHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法を提供し、前記読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、前記読み込みメソッドには:
ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、前記読み込みコマンド中に前記ユーザIDと小さなファイルの名前を含み、
前記ユーザIDと前記小さなファイルの名前にしたがって前記HBaseキャッシュモジュールを照会し、
対応するファイルコンテンツが出たら、前記HBaseキャッシュモジュールによって照会されたファイルコンテンツを戻し、そうでなければ、前記小さなファイルの名前によって前記HDFSシステムのデータベースを照会して対応するファイルコンテンツが照会されたかどうかを判断し、
イエスであれば前記データベースによって照会されたファイルコンテンツを戻し
そうでなければ、HadooparchiveツールのAPIを呼び出して前記小さなファイルの名前の対応するHARファイルにアクセスして前記HARファイルを戻し
更に、前記データマージモジュールの採用するデータマージメソッドが以下のように:
ステップA:クライアントがストレージされるファイルをアップロードした後で、HDFSのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを用いて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、ここで、前記ユーザアクセスプリファレンスモデルユーザアクセスログレコードに基づいている。
ステップB:前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルを順にマージするキューに追加する。
ステップC:前記マージするキューのすべてのファイルの総サイズが128 MBを超えるかどうかを判断し、イエスであれば、ステップDに進み、そうでなければ、ステップEに進む。
ステップD:前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップBを戻す
ステップE:前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルが全部前記マージするキューに追加されたかどうかを判断し、イエスであれば、前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップFに進み、そうでなければ、ステップBに進む。
ステップF:すべてのマージしたデータブロックをHDFSシステムにストレージする。
更に、その特徴は、前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードから統計されたものであり、具体的には:
前記ユーザアクセスログレコードからアクティブユーザセットを統計し、
beanオブジェクトが前記アクティブユーザセットによってアクセスされた小さなファイルを表すために使用され、その中に、前記beanオブジェクトのプロパティが該小さなファイルをアクセスするユーザID、ユーザがアクセスした小さなファイルの名前及び該小さなファイルがアクサスされた回数を含み、
JDBCテクノロジを用いて、前記beanオブジェクトを永続にMysql前記データベースにストレージし、ストレージされたデータにしたがって、任意の二つの異なるアクセス動作の類似性を計算し、
前記任意の二つの異なるアクセス動作の類似性が正の場合、前記任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのIDを記録し、関連ファイルコレクションを使って、類似ユーザによってアクサスされ、関連付けられたファイル情報をストレージし、
前記関連ファイルコレクションにしたがって、前記ユーザアクセスプリファレンスモデルを構築し、
更に、その特徴は、前記HBaseキャッシュモジュールの採用するキャッシュメソッドは:
ユーザアクセスログレコードを取得し、前記ユーザアクセスログレコードより前記アクティブユーザセットを統計し、
対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、
前記ホットスポットファイルを取得し、Hbaseデータベースを採用して前記ホットスポットファイルの関連情報をキャッシュし、
更に、前記前記ユーザアクセスログレコードからアクティブユーザセットを統計するについて、具体的には、
アクセスされたソースの接尾辞がjpgであるレコード行を前記ユーザアクセスログレコードからフィルタリングし、前記レコード行がユーザID、アクセスページURL、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、
レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターIPと小さなファイルの名前をストレージし、
ビジターIPを前記二次元配列でトラバースし、HashMapコレクションを使用して各ビジターIPのトラフィックを統計し、前記HashMapコレクションのKey値がビジターIPであり、Value値がトラフィックであり、
前記HashMapコレクションをValue値の降順でソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションを使用して該IPサブセットをストレージし、アクティブユーザセットとしてマークし、
更に、前記対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、具体的には:
ArrayListコレクションから抽出されたビジターIPを、前記二次元配列から抽出されたビジターIPと照合し、
一致が出たら、合致するビジターIPをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデを用いて、前記アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、
前記対数線形モデルは:
Figure 2019204472
であり、
その中に、
Figure 2019204472
がファイルiの人気予測値であり、
Figure 2019204472
がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
本発明の実施例を実施すると、以下の有益効果が出る:
本発明の実施例が提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法については、該読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、該読み込みメソッドは:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含み、ユーザIDと小さなファイルの名前にしたがってHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツを戻し、そうでなければ、HDFSシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツを戻し、そうでなければ、HadooparchiveツールのAPIを呼び出して対応するHARファイルにアクセスしてHARファイルを戻す。小さなファイル間の関連性とホットスポットファイルを考慮しない現有技術と比べ、本発明の読み込みメソッドは小さなファイルのマージとHBaseキャッシングメカニズムが組み合わせられた後で、小さなファイルの読み込み効率を改善できる。
本発明の実施例を実施すると、以下の有益効果が出る:
本発明の実施例が提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法については、該読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、該読み込みメソッドは:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含み、ユーザIDと小さなファイルの名前にしたがってHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツを戻し、そうでなければ、HDFSシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツを戻し、そうでなければ、HadooparchiveツールのAPIを呼び出して対応するHARファイルにアクセスしてHARファイルを戻す。小さなファイル間の関連性とホットスポットファイルを考慮しない現有技術と比べ、本発明の読み込みメソッドは小さなファイルのマージとHBaseキャッシングメカニズムが組み合わせられた後で、小さなファイルの読み込み効率を改善できる。
図1は本発明の提供するHadoopに基づく大量の小さなファイルの読み 込みメソッドの実施例のプロセス見取り図である。 図2は本発明の提供するデータマージメソッドの実施例のプロセス見取り図 である。 図3は本発明の提供するキャッシュメソッドの実施例のプロセス見取り図で ある。 図4は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス 見取り図である。
図1を参照し、本発明のHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法の実施例のプロセス見取り図であり、そのメソッドはステップ101からステップ105を含む。該当読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、各ステップは以下のように:
ステップ101:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含む。
ステップ102:ユーザIDと小さなファイルの名前にしたがってHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが照会されたかどうかを判断し、イエスであればステップ105に進み、そうでなければステップ103に進む。
ステップ103:小さなファイルの名前にしたがってHDFSシステムのデータベースを照会し、対応するファイルコンテンツが照会されたかどうかを判断し、イエスであればステップ105に進み、そうでなければ104に進む。
ステップ104:HadooparchiveツールのAPIを呼び出し、小さなファイルの名前が対応するHARファイルにアクセスし、そのHARファイルを戻す
ステップ105:照会されたファイルコンテンツを戻す
図2を参照し、図2は本発明の提供するデータマージメソッドの実施例のプロセス看取り図であり、本発明のデータマージモジュールは図2の示すデータマージメソッドを採用し、ステップAからステップFまでを含み、各ステップが以下のように:
ステップA:クライアントがストレージされるファイルをアップロードした後で、HDFSのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを用いて、ストレージされるファイルの関連ファイルコレクションを見つけ、ここで、ユーザアクセスプリファレンスモデルユーザアクセスログレコードに基づいている。
本実施例の中で、ユーザアクセスプリファレンスモデルユーザアクセスログレコードに基づいて統計されたもので、具体的には:ユーザアクセスログレコードからアクティブユーザセットを統計し、beanオブジェクトがアクティブユーザセットによってアクセスされた小さなファイルを表すために使用され、その中に、beanオブジェクトのプロパティが該小さなファイルをアクセスするユーザID、ユーザがアクセスした小さなファイルの名前及び該小さなファイルがアクサスされた回数を含み、JDBCテクノロジによって、beanオブジェクトを永続にMysqlデータベースにストレージし、ストレージされたデータにしたがって、任意の二つの異なるアクセス動作の類似性を計算し、任意の二つの異なるアクセス動作の類似性が正の場合、任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのIDを記録し、関連ファイルコレクションを使って、類似ユーザによってアクサスされ、関連付けられたファイル情報をストレージし、関連ファイルコレクションにしたがって、ユーザアクセスプリファレンスモデルを構築する。
本実施例の中で、ユーザアクセスログレコードよりアクティブユーザセットを統計し、具体的には:アクセスされたソースの接尾辞がjpgであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザID、アクセスページURL、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、レコード解析クラスを作成してレコード行を解析し、二次元配列を使用してビジターIPと小さなファイルの名前をストレージし、二次元配列のビジターIPをトラバースし、HashMapコレクションを使用して各ビジターIPのトラフィックを統計し、HashMapコレクションのKey値がビジターIPであり、Value値がトラフィックであり、HashMapコレクションをValue値の降順でソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションを使用して該IPサブセットをストレージし、アクティブユーザセットとしてマークする。
本発明のモデルの構築過程をもっとよく説明するために、下記の例えにより説明し、具体的な実現する過程が以下のように:
(1)正規表現を使用してアクセスされたソースの接尾辞がjpgであるレコード行をフィルタリングする。
(2)ログ解析クラスを作成してレコード行の五つのコンポーネントを別々に解析し、二次元配列を使ってビジターIPと小さなファイルの名前をストレージする。
(3)二次元配列のビジターIP要素をトラバースし、各ビジターIPのトラフィックをカウンタするカウンタを設計する。HashMapコレクションを使って、ビジターIPをKey値とし、Value値が該ビジターのトラフィックである。
(4)ステップ3で生成されたHashMapコレクションをValue値にしたがって降順でソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションで該IPサブセットをストレージし、アクティブユーザセットとしてマークする。
(5)一つのbeanオブジェクトによってアクティブユーザセットにアクセスされた小さなファイルを抽象に表し、オブジェクトのプロパティが該小さなファイルをアクセスしたユーザID、ユーザにアクセスされた小さなファイルの名前及び該小さなファイルがアクセスされた回数を含む。メソッドはプロパティを取得するget及びsetメソッドである。
(6)JDBCテクノロジbeanオブジェクトをMysqlデータベースに結合して永続にストレージし、以下の形式のテーブルが形成される:
Figure 2019204472
(7)20行の二行の間にデータを取り込み、数式
Figure 2019204472
によって二つの異なるユーザアクセス作動の類似性をカウンタする。その中に、本発明はピアソン相関係数を使用して類似のユーザを決定し、スコアリング行列Rを指定し、ユーザaとユーザbの類似性をsim(a,b)で表し、ra及びrbが「ユーザ−トラフィック」ストアリングマトリックスのストアリングデータである。
(8)ここで、sim(a,b)の値が正の値であれば、二人の異なるユーザが類似ユーザであると判定され、そのユーザIDが記録される。
(9)類似ユーザのユーザIDに基づいて、一つのコレクションを使用して、類似ユーザにアクセスされ、関連付けられているすべてのファイル情報をストレージする。
ステップB:関連ファイルコレクションのミドルファイルとストレージされるファイルを順にマージするキューに追加する。
ステップC:マージするキューのすべてのファイルの総サイズが128 MBを超えるかどうかを判断し、イエスであれば、ステップDに進み、そうでなければ、ステップEに進む。
ステップD:マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップBを戻す
ステップE:関連ファイルコレクションのミドルファイルとストレージされるファイルが全部マージするキューに追加されたかどうかを判断し、イエスであれば、マージするキューのすべてのファイルを一つのデータブロックにマージし、マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップFに進み、そうでなければ、ステップBに進む。
ステップF:すべてのマージしたデータブロックをHDFSシステムにストレージする。
図3を参照し、図3は本発明が提供するキャッシュメソッドの実施例のプロセス見取り図である。本発明のHBaseキャッシュモデルが図3のキャッシュメソッドを採用し、該メソッドはステップ301からステップ303までを含み、各ステップが以下のように:
ステップ301:ユーザアクセスログレコードを取得し、ユーザアクセスログレコードからアクティブユーザセットを統計する。
本実施例の中に、ステップ301においてユーザアクセスログレコードからアクティブユーザセットを統計し、具体的には:アクセスされたソースの接尾辞がjpgであるレコード行をユーザアクセスログレコードからフィルタリングし、その中に、レコード行がユーザIP、アクセスページURL、アクセス開始時刻、アクセス状況及びアクセストラフィックを含み、ログ解析クラスを作成してレコード行を解析し、二次元配列を使用してビジターIPと小さなファイルの名前をストレージし、二次元配列のビジターIPをトラバースし、HashMapコレクションを使用して各ビジターIPのトラフィックを統計し、HashMapコレクションのKey値がビジターIPであり、Value値がトラフィックであり、HashMapコレクションをValue値によって降順にソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションを使用して該IPサブセットをストレージしてアクティブユーザセットとしてマークする。
本発明のステップ301においてアクティブユーザセットをカウントする目的は、小さなファイルへのユーザのアクセスが均一なランダムではなくパレート分布法則に近いのである。すなわち、ほとんどのI/Oが少量の人気データへのアクセスをリクエストし、トラフィックの80%がデータの20%に集中している。したがって、ファイルシステムにストレージされた大量の小さなファイルからモデルを介してホットスポットファイルを予測してキャッシュすることができれば、ユーザのデータへのアクセスの効率を上げられる。
ステップ302:対数線形モデルをあわせて、アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークする。
本実施例において、ステップ302は具体的には:ArrayListコレクションから抽出されたビジターIPを、二次元配列から抽出されたビジターIPと照合し、一致が出たら、合致するビジターIPをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデを用いて、アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークする。
対数線形モデルは:
Figure 2019204472
であり、
その中に、
Figure 2019204472
がファイルiの人気予測値であり、
Figure 2019204472
がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
Figure 2019204472

Figure 2019204472
が線形関係の関連パラメータであり、線形回帰法によって最適値をアカウントすることができる。
本発明の対数線形モデルにおいて記載された観測期間の長さtの定義は:ユーザアクセスログレコードのレコード行のアクセス開始時刻要素とユーザアクセスログレコードを収集した時刻との時間差である。例えば、収集されたユーザアクセスログレコードの時点が30/Jan/2018:17:38:20で、ユーザアクセスログレコードのレコード行のアクセス開始時刻が29/Jan/2018:10:35:15で、観測期間の長さが29/Jan/2018:10:35:15から30/Jan/2018:17:38:20までの時間差であり、アカウントしやすいために、期間の長さが時間単位にする。
ステップ303:ホットスポットファイルを取得し、Hbaseデータベースを採用してホットスポットファイルの関連情報をキャッシュする。
本実施例においては、Hbaseデータベースを採用してホットスポットファイルの関連情報をキャッシュし、HBaseのテーブル名値がビジターIDであり、HBaseのRowKeyが小さなファイルの名前であり、HBaseのファミリ名が「ファイルコンテンツ」であり、Value値すなわちセル値が小さなファイルのコンテンツである。ユーザがHBaseの小さなファイルにアクセス時に、ユーザIDをテーブル名とし、アクセスする小さなファイルの名前をHBaseのget()メソッドのパラメータとすれば、対応する小さなファイルのコンテンツを取得できる。
本発明のキャッシュメソッドをもっと詳しく説明するため、図4を参照し、図4は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。図4が示すように、該プロセスが:ユーザアクセスレコードセット→正規表現が需要するレコード行をフィルタリングする→レコード行を解析する→beanオブジェクトでレコード行情報をカプセル化する→JDBC APIを調査研究してbeanオブジェクトをMysqlデータベースに永続化する→二次元配列によってビジターIPと小さなファイルの名前情報をストレージする→配列をトラバースし、ビジタートラフィックを統計する→ビジタートラフィックによってサーとし、ArrayListコレクションを使ってアクティブユーザセットのユーザIPをストレージする→二次元配列をアクティブユーザセットのビジターIPと照合する→一致が出たら、ビジターIPをキーワードとして、ユーザアクセス開始時刻とトラフィックを抽出する→ファイル人気予測数式によってファイル人気値をアカウントする→ファイル人気値をサートし、ホットスポットファイルをマークする→HBaseによってホットスポットファイルの関連情報をキャッシュする。
上記からわかったことは、本発明の実施例の提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法において、該読み込みメソッドがデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用される。該読み込みメソッドは、ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、その中に、小さなファイルの読み込みコマンドがユーザIDと小さなファイルの名前を含み、ユーザIDと小さなファイルの名前でHBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、照会されたファイルコンテンツを戻し、対応するファイルコンテンツが出ないと、HDFSシステムのデータベースを照会し、成功したら、照会されたファイルコンテンツを戻し、失敗したら、HadooparchiveツールのAPIを呼び出し、対応するHARファイルにアクセスしてHARファイルを戻す。現有技術と比べて、小さなファイルの間のアソシエーションとホットスポットファイルを問わず、本発明の読み込みメソッドは小さなファイルとHBaseキャッシングメカニズムがマージされた後で、小さなファイルの読み込み効率を上げられる。
更に、本発明はデータマージメソッドを提供し、小さなファイルの読み込み効率を高め、HDFSシステムでのnamenodeメモリの消費を削減する。
更に、本発明のデータマージメソッドには、複数の関連付けられた小さなファイルが一つの大きなファイルにマージされてシステムにストレージされ、システムのnamenodeノードが一つの大きなファイルの対応するメタデータをストレージし、namenodeノードの維持する必要のあるメタデータの量が大幅に減少し、メモリ消費量も減少になる。
更に、本発明のデータマージメソッドには、関連ファイルが同じの一つの大きなファイルにストレージされ、ファイルがマージされた後で同じデータノードの同じデータブロックの中にストレージされる。ファイルへのユーザのリクエストに強い関連性があれば、すなわち、ユーザに耐えずにアクセスされた小さなファイルが同じ大きなファイルにマージされば、ファイルアクセスの原則によると、システムはより近いdatanodeノードのデータブロックを読み込み、つまり絶えずに同じdatanodeのデータブロックからデータを読み込み、こうして異なるファイルにアクセス時に異なるデータノードの間にジャンプしなくで済み、ディスクアドレッシングのオーバーヘッドが削減され、占められるシステムリソースが比較的に少なくなり、ファイルの読み込み効率を大きく高める。
更に、本発明が提供するキャッシュメソッドには、現有技術と比べてユーザにアクセスされたホットスポットファイルを考慮せず、本発明はHBaseによってホッとスポットファイルをキャッシュし、キャッシュヒット率を高めるだけでなく、ファイルの読み込み効率も上げる。
当業者は、上記の実施形態を実施するプロセスの全部または一部を理解することができ、コンピュータプログラムによって関連するハードウェアを指示することで完了することができ、前記のプログラムがコンピュター可読記憶媒体にストレージされることができ、該プログラムが実行される時に、上記の各メソッドの実施例のプロセスが含まれる。その中に、前記の記憶媒体が磁気ディスク、光ディスク、読み出し専用メモリ(Read−Only Memory,ROM)またはランダムアクセスメモリ(Random Access Memory,RAM)であってもよい。
以上に述べたのは本発明の優先された実施形態であり、注意すべきのは、本技術分野の一般的な技術員にとって、本発明の原理から離れないことを前提として、若干な改善や飾りができ、これらの改善や飾りも本発明の保護範囲に含まれる。

Claims (1)

  1. Hadoopに基づく大量の小さなファイルの読み込みメソッド、その特徴は:前記読み込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、前記読み込みメソッドは:ユーサーによってインプットされる小さなファイルの読み込みコマンドを受信し、其中、その中に、前記小さなファイルの読み込みコマンドが前記ユーザIDと小さなファイルの名前を含み、前記前記ユーザIDと前記小さなファイルの名前にしたがって前記HBaseキャッシュモジュールを照会し、対応するファイルコンテンツが出たら、前記HBaseキャッシュモジュールによって照会されたファイルコンテンツに戻り、そうでなければ、前記小さなファイルの名前によって前記HDFSシステムのデータベースを照会して対応するファイルコンテンツが照会されたかどうかを判断し、イエスであれば前記データベースによって照会されたファイルコンテンツに戻り、そうでなければ、HadooparchiveツールのAPIを呼び出して前記小さなファイルの名前の対応するHARファイルにアクセスして前記HARファイルに戻り、前記データマージモジュールの採用するデータマージメソッドが以下を含む:ステップA:クライアントがストレージされるファイルをアップロードした後で、HDFSのすべてのファイルをトラバースし、ユーザアクセスプリファレンスモデルを組み合わせて、前記ストレージされるファイルの関連ファイルコレクションを見つけ、その中に、前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードに基づいている,ステップB:前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルを順にマージするキューに追加する,ステップC:前記マージするキューのすべてのファイルの総サイズが128 MBを超えるかどうかを判断し、イエスであれば、ステップDに進み、そうでなければ、ステップEに進む,ステップD:前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップBに戻る,ステップE:前記関連ファイルコレクションのミドルファイルと前記ストレージされるファイルが全部前記マージするキューに追加されたかどうかを判断し、イエスであれば、前記マージするキューのすべてのファイルを一つのデータブロックにマージし、前記マージするキューのファイル情報をクリアし、マージしたファイルのソースファイルを削除して、ステップFに進み、そうでなければ、ステップBに進む,ステップF:すべてのマージしたデータブロックをHDFSシステムにストレージする,前記ユーザアクセスプリファレンスモデルがユーザアクセスログレコードから統計されたものであり、具体的には:ユーザアクセスログレコードからアクティブユーザセットを統計し、beanオブジェクトが前記アクティブユーザセットによってアクセスされた小さなファイルを表すために使用され、前記小さなファイルがサイズが2MBまたは2MB以上のファイルを指し、その中に、前記beanオブジェクトのプロパティが該小さなファイルをアクセスするユーザID、ユーザがアクセスした小さなファイルの名前及び該小さなファイルがアクサスされた回数を含み、JDBCテクノロジを合わせて、前記beanオブジェクトを永続にMysql前記データベースにストレージし、ストレージされたデータにしたがって、任意の二つの異なるアクセス動作の類似性を計算し、前記任意の二つの異なるアクセス動作の類似性が正の場合、前記任意の二つのアクセス動作のユーザが類似ユーザであり、類似ユーザのIDを記録し、関連ファイルコレクションを使って、類似ユーザによってアクサスされ、関連付けられたファイル情報をストレージし、前記関連ファイルコレクションにしたがって、前記ユーザアクセスプリファレンスモデルを構築し、前記HBaseキャッシュモジュールの採用するキャッスメソッドにおいて、ユーザアクセスログレコードを取得し、前記ユーザアクセスログレコードより前記アクティブユーザセットを統計し、対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、前記ホットスポットファイルを取得し、Hbaseデータベースを採用して前記ホットスポットファイルの関連情報をキャッシュし、前記前記ユーザアクセスログレコードからアクティブユーザセットを統計するについて、具体的には、アクセスされたソースの接尾辞がjpgであるレコード行を前記ユーザアクセスログレコードからフィルタリングし、前記レコード行がユーザID、アクセスページURL、アクセス開始時刻、アクセス状況、アクセストラフィックを含み、レコード解析クラスを作成して前記レコード行を解析し、二次元配列を使用してビジターIPと小さなファイルの名前をストレージし、ビジターIPを前記二次元配列でトラバースし、HashMapコレクションを使用して各ビジターIPのトラフィックを統計し、前記HashMapコレクションのKey値がビジターIPであり、Value値がトラフィックであり、前記HashMapコレクションをValue値の降順でソートし、ビジターIPの上位20%をフィルタリングし、ArrayListコレクションを使用して該IPサブセットをストレージし、アクティブユーザセットとしてマークし、前記対数線形モデルをあわせて、前記アクティブユーザセットの各アクティブユーザにアクサスされたファイルの人気予測値をアカウントして、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、具体的には、ArrayListコレクションから抽出されたビジターIPを、前記二次元配列から抽出されたビジターIPと照合し、一致が出たら、合致するビジターIPをキーワードとして、各ユーザのアクセス開始時刻を照会して、対数線形モデルを合わせ、前記アクティブユーザセットの各アクティブユーザにアクセスされたファイルの人気予測値をアカウントし、人気予測値によって各ファイルを降順にソートし、ファイルの上位20%をホットスポットファイルとしてマークし、前記対数線形モデルは:
    Figure 2019204472
    であり、その中に、
    Figure 2019204472
    がファイルiの人気予測値であり、
    Figure 2019204472
    がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
JP2018147288A 2018-05-22 2018-08-04 Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法 Expired - Fee Related JP6695537B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810499647.1 2018-05-22
CN201810499647.1A CN108804566B (zh) 2018-05-22 2018-05-22 一种基于Hadoop的海量小文件读取方法

Publications (2)

Publication Number Publication Date
JP2019204472A true JP2019204472A (ja) 2019-11-28
JP6695537B2 JP6695537B2 (ja) 2020-05-20

Family

ID=64091399

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018147288A Expired - Fee Related JP6695537B2 (ja) 2018-05-22 2018-08-04 Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法

Country Status (2)

Country Link
JP (1) JP6695537B2 (ja)
CN (1) CN108804566B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367857A (zh) * 2020-03-03 2020-07-03 中国联合网络通信集团有限公司 数据存储方法、装置、ftp服务器及存储介质
CN111460229A (zh) * 2020-02-23 2020-07-28 华中科技大学 单用户多工作负载之间json解析优化方法和***
CN111930684A (zh) * 2020-07-28 2020-11-13 苏州亿歌网络科技有限公司 基于hdfs的小文件处理方法、装置、设备及存储介质
CN113190577A (zh) * 2021-03-11 2021-07-30 新华三大数据技术有限公司 一种表连接查询方法、装置及存储介质
CN117519608A (zh) * 2023-12-27 2024-02-06 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766318B (zh) * 2018-12-17 2021-03-02 新华三大数据技术有限公司 文件读取方法及装置
CN109656958B (zh) * 2018-12-18 2021-11-16 北京小米移动软件有限公司 数据查询方法以及***
CN110647497A (zh) * 2019-07-19 2020-01-03 广东工业大学 一种基于hdfs的高性能文件存储与管理***
CN111190926B (zh) * 2019-11-25 2023-04-07 腾讯云计算(北京)有限责任公司 资源缓存方法、装置、设备及存储介质
CN111159120A (zh) * 2019-12-16 2020-05-15 西门子电力自动化有限公司 电力***处理文件的方法、装置与***
CN112532724A (zh) * 2020-11-27 2021-03-19 上海爱数信息技术股份有限公司 一种文件传输***及其方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294374B (zh) * 2015-05-15 2019-06-04 北京国双科技有限公司 小文件合并的方法和数据查询***
CN104820714B (zh) * 2015-05-20 2018-02-09 国家电网公司 基于hadoop的海量瓦片小文件存储管理方法
CN107577809A (zh) * 2017-09-27 2018-01-12 北京锐安科技有限公司 离线小文件处理方法及装置
CN108053863B (zh) * 2017-12-22 2020-09-11 中国人民解放军第三军医大学第一附属医院 适合大小文件的海量医疗数据存储***及数据存储方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111460229A (zh) * 2020-02-23 2020-07-28 华中科技大学 单用户多工作负载之间json解析优化方法和***
CN111460229B (zh) * 2020-02-23 2023-06-09 华中科技大学 单用户多工作负载之间json解析优化方法和***
CN111367857A (zh) * 2020-03-03 2020-07-03 中国联合网络通信集团有限公司 数据存储方法、装置、ftp服务器及存储介质
CN111367857B (zh) * 2020-03-03 2023-06-16 中国联合网络通信集团有限公司 数据存储方法、装置、ftp服务器及存储介质
CN111930684A (zh) * 2020-07-28 2020-11-13 苏州亿歌网络科技有限公司 基于hdfs的小文件处理方法、装置、设备及存储介质
CN113190577A (zh) * 2021-03-11 2021-07-30 新华三大数据技术有限公司 一种表连接查询方法、装置及存储介质
CN113190577B (zh) * 2021-03-11 2022-08-30 新华三大数据技术有限公司 一种表连接查询方法、装置及存储介质
CN117519608A (zh) * 2023-12-27 2024-02-06 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器
CN117519608B (zh) * 2023-12-27 2024-03-22 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器

Also Published As

Publication number Publication date
CN108804566B (zh) 2019-11-29
JP6695537B2 (ja) 2020-05-20
CN108804566A (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
JP6695537B2 (ja) Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法
JP6642650B2 (ja) Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法
JP6642651B2 (ja) ユーザアクセスプリファレンスモデルを用いたストレージ方法
Sharma et al. A brief review on leading big data models
US9805077B2 (en) Method and system for optimizing data access in a database using multi-class objects
WO2017097231A1 (zh) 话题处理方法及装置
CN107040422A (zh) 一种基于物化缓存的网络大数据可视化方法
Ahmed et al. A literature review on NoSQL database for big data processing
JP6696062B2 (ja) Hadoopに基づいて、複数の2MB以下のファイルをキャッシュする方法
CN110928903B (zh) 数据提取方法及装置、设备和存储介质
CN106372266A (zh) 一种基于切面和配置文件的云操作***缓存及访问方法
US20150356126A1 (en) Federated social media analysis system and method thereof
CN103200269A (zh) 互联网信息统计方法及***
KR101238381B1 (ko) 다중범위 스캔에서의 n 정렬 질의를 최적으로 처리하기 위한 방법 및 장치
CN111026709B (zh) 基于集群访问的数据处理方法及装置
CN110858210A (zh) 数据查询方法及装置
CN103595747A (zh) 用户信息推荐方法和***
US9275091B2 (en) Database management device and database management method
CN110334073A (zh) 一种元数据预取方法、装置、终端、服务器及存储介质
Lu et al. Research on Cassandra data compaction strategies for time-series data
Nouvellet et al. A Quantitative analysis of digital library user behaviour based on access logs
CN111858733A (zh) 一种基于互联网多源异构数据的政务信息比对方法及***
Meilian et al. Ahits-upt: A high quality academic resources recommendation method
CN111090670A (zh) 一种数据预聚合的方法、***、计算设备及存储介质
CN103810209B (zh) 一种保存数据的方法及***

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181119

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190814

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200212

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200319

R150 Certificate of patent or registration of utility model

Ref document number: 6695537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees