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

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

Info

Publication number
JP6642650B2
JP6642650B2 JP2018147289A JP2018147289A JP6642650B2 JP 6642650 B2 JP6642650 B2 JP 6642650B2 JP 2018147289 A JP2018147289 A JP 2018147289A JP 2018147289 A JP2018147289 A JP 2018147289A JP 6642650 B2 JP6642650 B2 JP 6642650B2
Authority
JP
Japan
Prior art keywords
file
user
files
small
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.)
Expired - Fee Related
Application number
JP2018147289A
Other languages
English (en)
Other versions
JP2019204473A (ja
Inventor
謝桂園
魏文国
蔡君
趙慧民
彭建烽
Original Assignee
広東技術師範学院
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 広東技術師範学院 filed Critical 広東技術師範学院
Publication of JP2019204473A publication Critical patent/JP2019204473A/ja
Application granted granted Critical
Publication of JP6642650B2 publication Critical patent/JP6642650B2/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)

Description

本発明はコンピュータテクノロジー分野に関し、具体的には、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がファイルをストレージする中で、ファイルのサイズが2Mまたは2M以下であると、小さなファイルとして定義される。
大量な小さなファイルの処理について、現有の技術においては、若干の小さなファイルを一つのブロックサイズの大きなファイルにマージすることであり、ファイル間の関連性を考慮せず、小さなファイルの読み込み効率が望ましくなくなる。
中国特許出願公開第103605479号明細書
本発明の実施例が提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法は、小さなファイルのマージ及びHBaseキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
本発明の実施例が提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法については、前記書き込みメソッドがデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、前記書き込みメソッドが:
ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザIDと小さなファイルの名前を含み、
ユーザIDと前記小さなファイルの名前によって前記HBaseキャッシュモジュールを照会し、
対応するファイル内容が出たら、前記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以下のファイルに指し、その中に、前記オブジェクトのプロパティが該小さなファイルにアクセスユーザ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 0006642650
であり、
その中に、
Figure 0006642650
がファイルiの人気予測値であり、
Figure 0006642650
がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
本発明の実施例を実施すると、以下の有益効果が出る:
本発明の実施例が提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法については、該書き込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、該読み込みメソッドは:ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザIDと小さなファイルの名前によってHBaseキャッシュモジュールを照会し、対応する最初のファイルコンテンツが照会されたら、最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツをHBaseキャッシュモジュールにアップロードして更新し、対応する最初のファイルコンテンツが照会されなかったら、HDFSデータベースを照会し、成功すれば、照会された第二のファイルコンテンツに戻り、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新し、失敗すれば、HadooparchiveツールのAPIを呼び出して対応するHARファイルにアクセスし、小さなファイルを書き込み、小さなファイルの書き込まれたHARファイルをデータベースにアップロードして更新する。小さなファイル間の関連性とホットスポットファイルを考慮しない既存技術と比べ、本発明の書き込みメソッドは小さなファイルのマージ及びHBaseキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
本発明の実施例を実施すると、以下の有益効果が出る:
本発明の実施例が提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法については、該書き込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、該読み込みメソッドは:ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザIDと小さなファイルの名前によってHBaseキャッシュモジュールを照会し、対応する最初のファイルコンテンツが照会されたら、最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツをHBaseキャッシュモジュールにアップロードして更新し、対応する最初のファイルコンテンツが照会されなかったら、HDFSデータベースを照会し、成功すれば、照会された第二のファイルコンテンツに戻り、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新し、失敗すれば、HadooparchiveツールのAPIを呼び出して対応するHARファイルにアクセスし、小さなファイルを書き込み、小さなファイルの書き込まれたHARファイルをデータベースにアップロードして更新する。小さなファイル間の関連性とホットスポットファイルを考慮しない既存技術と比べ、本発明の書き込みメソッドは小さなファイルのマージ及びHBaseキャッシングメカニズムと合わせた後で、書き込まれた小さなファイルの読み取りをもっと容易くし、小さなファイルの読み取り効率を向上させることができる。
図1は本発明の提供するHadoopに基づく大量の小さなファイルの書き 込みメソッドの実施例のプロセス見取り図である。 図2は本発明の提供するデータマージメソッドの実施例のプロセス見取り図である。 図3は本発明の提供するキャッシュメソッドの実施例のプロセス見取り図である。 図4は本発明の提供するキャッシュメソッドのもう一つの実施例のプロセス見取り図である。
下記に本発明の実施例の中の附図を交え、本発明の実施例の技術方案を明確にはっきり説明し、説明した実施例がただ本発明の一部分の実施例で、全部の実施例ではないである。本発明の実施例に基づいて、本領域の普通技術者が創造的な労働を払わないことを前提に得る全部のその他の実施例は本発明の保護範囲に所属する
図1を参照し、本発明の提供するHadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法の実施例のプロセス見取り図であり、該メソッドがステップ101からステップ106までを含む。該書き込みメソッドはデータマージモジュールとHBaseキャッシュモジュールを備えるHDFSシステムに適用され、各ステップは以下を含む:
ステップ101:ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザIDと小さなファイルの名前を含む。
ステップ102:ユーザIDと前記小さなファイルの名前によって前記HBaseキャッシュモジュールを照会し、対応するファイルコンテンツが照会されたかどうかを判断し、イエスであれば、ステップ105に進み、そうでなければ、ステップ103に進む。
ステップ103:小さなファイルの名前により前記HDFSシステムのデータベースを照会し、対応する第二のファイルコンテンツが照会されたかどうかを判断し、イエスであれば、ステップ106に進み、そうでなければ、ステップ104に進む。
ステップ104:HadooparchiveツールのAPIを呼び出して小さなファイルのファイル名と対応するHARファイルにアクセスし、小さなファイルの書き込まれたHARファイルをデータベースにアップロードして更新する。
ステップ105:最初のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第一のファイルコンテンツをHBaseキャッシュモジュールにアップロードして更新する。
ステップ106:データベースに照会された第二のファイルコンテンツに戻り、小さなファイルを書き込み、小さなファイルの書き込まれた第二のファイルコンテンツをデータベースにアップロードして更新する。
図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 0006642650
(7)20行の二行の間にデータを取り込み、数式
Figure 0006642650
によって二つの異なるユーザアクセス作動の類似性をカウンタする。その中に、本発明はピアソン相関係数を使用して類似のユーザを決定し、スコアリング行列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 0006642650
であり、
その中に、
Figure 0006642650
がファイルiの人気予測値であり、
Figure 0006642650
がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
Figure 0006642650

Figure 0006642650
が線形関係の関連パラメータであり、線形回帰法によって最適値をアカウントすることが
できる。
本発明の対数線形モデルにおいて記載された観測期間の長さ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)であってもよい。
以上に述べたのは本発明の優先された実施形態であり、注意すべきのは、本技術分野の一般的な技術員にとって、本発明の原理から離れないことを前提として、若干な改善や飾りができ、これらの改善や飾りも本発明の保護範囲に含まれる。

Claims (1)

  1. Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法であって、前記HDFSが以下を実行する:
    ユーサーによってインプットされる小さなファイルの書き込みコマンドを受信し、前記書き込みコマンド中にユーザIDと小さなファイルの名前を含み、ユーザIDと前記小さなファイルの名前によって前記HBaseキャッシュモジュールを照会し、対応するファイル内容が出たら、前記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以下のファイルに指し、その中に、前記オブジェクトのプロパティが該小さなファイルにアクセスユーザ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 0006642650
    であり、その中に、
    Figure 0006642650
    がファイルiの人気予測値であり、
    Figure 0006642650
    がファイルiが観測期間中のトラフィックであり、観測期間の長さがtである。
JP2018147289A 2018-05-22 2018-08-04 Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法 Expired - Fee Related JP6642650B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810500092.8 2018-05-22
CN201810500092.8A CN108932287B (zh) 2018-05-22 2018-05-22 一种基于Hadoop的海量小文件写入方法

Publications (2)

Publication Number Publication Date
JP2019204473A JP2019204473A (ja) 2019-11-28
JP6642650B2 true JP6642650B2 (ja) 2020-02-05

Family

ID=64449331

Family Applications (1)

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

Country Status (2)

Country Link
JP (1) JP6642650B2 (ja)
CN (1) CN108932287B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143158B (zh) * 2019-12-04 2023-05-16 武汉光谷信息技术股份有限公司 一种监控数据实时存储方法、***、电子设备及存储介质
CN111913917A (zh) * 2020-07-24 2020-11-10 北京锐安科技有限公司 一种文件处理方法、装置、设备和介质
CN111813749B (zh) * 2020-08-21 2024-06-21 网易(杭州)网络有限公司 文件过滤方法及装置、电子设备、存储介质
CN112532724A (zh) * 2020-11-27 2021-03-19 上海爱数信息技术股份有限公司 一种文件传输***及其方法
CN115599792B (zh) * 2022-12-13 2023-03-10 深圳市润信数据技术有限公司 一种物联网大数据分类存储方法
CN116069741A (zh) * 2023-02-20 2023-05-05 北京集度科技有限公司 文件处理方法、装置和计算机程序产品
CN117519608B (zh) * 2023-12-27 2024-03-22 泰安北航科技园信息科技有限公司 一种以Hadoop为核心的大数据服务器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102332029B (zh) * 2011-10-15 2013-04-17 西安交通大学 一种基于Hadoop 的海量可归类小文件关联存储方法
CN102902716A (zh) * 2012-08-27 2013-01-30 苏州两江科技有限公司 基于Hadoop分布式计算平台的存储***
CN103246700B (zh) * 2013-04-01 2016-08-10 厦门市美亚柏科信息股份有限公司 基于HBase的海量小文件低延时存储方法
CN103176754A (zh) * 2013-04-02 2013-06-26 浪潮电子信息产业股份有限公司 一种海量小文件读取存储方法
CN103530387A (zh) * 2013-10-22 2014-01-22 浪潮电子信息产业股份有限公司 一种hdfs针对小文件的改进方法
CN103577123B (zh) * 2013-11-12 2016-06-22 河海大学 一种基于hdfs的小文件优化存储方法
CN103678491A (zh) * 2013-11-14 2014-03-26 东南大学 一种基于Hadoop中小文件优化和倒排索引的方法
CN103856567B (zh) * 2014-03-26 2017-05-17 西安电子科技大学 基于Hadoop分布式文件***的小文件存储方法
CN105205082A (zh) * 2014-06-27 2015-12-30 国际商业机器公司 用于处理hdfs中的文件存储的方法和***
CN104536959B (zh) * 2014-10-16 2018-03-06 南京邮电大学 一种Hadoop存取海量小文件的优化方法
CN105183839A (zh) * 2015-09-02 2015-12-23 华中科技大学 一种基于Hadoop的小文件分级索引的存储优化方法
CN105404652A (zh) * 2015-10-29 2016-03-16 河海大学 一种基于hdfs的海量小文件处理方法
CN105631010A (zh) * 2015-12-29 2016-06-01 成都康赛信息技术有限公司 一种基于hdfs小文件存储的优化方法
CN106909651A (zh) * 2017-02-23 2017-06-30 郑州云海信息技术有限公司 一种基于hdfs小文件写入和读取的方法
CN107391280A (zh) * 2017-07-31 2017-11-24 郑州云海信息技术有限公司 一种小文件的接收和存储方法及装置
CN107741947B (zh) * 2017-08-30 2020-04-24 浙江九州量子信息技术股份有限公司 基于hdfs文件***的随机数密钥的存储与获取方法

Also Published As

Publication number Publication date
CN108932287B (zh) 2019-11-29
CN108932287A (zh) 2018-12-04
JP2019204473A (ja) 2019-11-28

Similar Documents

Publication Publication Date Title
JP6642650B2 (ja) Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSに複数の2MB以下の小さなファイルを書き込む方法
JP6695537B2 (ja) Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法
US11238098B2 (en) Heterogenous key-value sets in tree database
TWI682274B (zh) 鍵值儲存樹
TWI702506B (zh) 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法
JP6642651B2 (ja) ユーザアクセスプリファレンスモデルを用いたストレージ方法
KR102564170B1 (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
TW201837720A (zh) 用於多串流儲存裝置之串流選擇
WO2017097231A1 (zh) 话题处理方法及装置
TW201841123A (zh) 用於維護操作之合併樹修改
WO2017161540A1 (zh) 数据查询的方法、数据对象的存储方法和数据***
EP3859536B1 (en) Method and device for buffering data blocks, computer device, and computer-readable storage medium
JP6696062B2 (ja) Hadoopに基づいて、複数の2MB以下のファイルをキャッシュする方法
CN109766318A (zh) 文件读取方法及装置
CN110858210A (zh) 数据查询方法及装置
CN108763458B (zh) 内容特征查询方法、装置、计算机设备及存储介质
US9275091B2 (en) Database management device and database management method
CN110334073B (zh) 一种元数据预取方法、装置、终端、服务器及存储介质
CN109189696B (zh) 一种ssd缓存***及缓存方法
WO2012081165A1 (ja) データベース管理装置及びデータベース管理方法
Lu et al. Research on Cassandra data compaction strategies for time-series data
CN103365897A (zh) 一种支持Bigtable数据模型的片段缓存方法
US20240078234A1 (en) Apparatus, method and storage medium for database pagination
Liu et al. P-index: An efficient searchable metadata indexing scheme based on data provenance in cold storage
CN117648465A (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: 20190909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190910

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: 20191209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191216

R150 Certificate of patent or registration of utility model

Ref document number: 6642650

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees