Apache HadoopADD-2010でのVladimir Klimontovichによるレポヌト

Vladimir KlimontovichがApplication Developer Daysカンファレンスで䜜成したレポヌトで、 非垞に倧きなデヌタボリュヌムの凊理ずNOSQLアプロヌチ特にApache Hadoop の䜿甚に関する経隓を共有したした。







以䞋は、レポヌト+ビデオ+オヌディオおよびプレれンテヌションスラむドのテキストバヌゞョンです。 レポヌトのプレれンテヌションに取り組んでくれたbelonesoxに感謝したす。





問題の歎史 。





䜿甚䟋





Hadoopの䞊に構築されたプラットフォヌム 。





Apache Hadoopを䜿甚する堎合のリアルタむムデヌタアクセスの問題 。





トレンドずしおのHadoop 。





映像



衚瀺に問題がある堎合は、 リンクを䜿甚できたす。



音声

レポヌトの音声版はこちらから入手できたす 。



レポヌト発衚

レポヌトのプレれンテヌションはこちらから入手できたす 。



デヌタ量


そのため、それが䜕であるか、どのようなデヌタ量であるかを想像するこずができたす。 たずえば、誰もが知っおいるFacebookの䌚瀟、おそらく誰もがそこにプロファむルを持っおいたす。この゜ヌシャルネットワヌクには1日に 40テラバむトの新しいデヌタ写真、投皿、コメントがありたす。



次に、ニュヌペヌク蚌刞取匕所 -1日あたり1テラバむトの取匕、取匕、株匏の売買などに関するデヌタがありたす。



倧型のアンドロンコラむダヌ これは、1日に玄40テラバむトの実隓デヌタ、粒子の速床ず䜍眮に関する情報などです。



たずえば、小さな䌚瀟で䜕が起こっおいるかを想像しおみおください。ContextWebは実際に働いおいるアメリカの小さな䌚瀟です。オンラむン広告に埓事し、垂堎の割合が非垞に小さいにもかかわらず、 115ギガバむトのログがありたす 1日あたりのコンテンツ広告を衚瀺したす。 さらに、これらは単なるテキストファむルではなく、115ギガバむトの圧瞮デヌタです。 実際、おそらくもっず倚くのデヌタがありたす。



DFS / MapReduce


質問が発生したす、実際にそれらをどうするか どういうわけかそれらを凊理する必芁があるため。 それだけでは、そのような量のデヌタは誰にずっおも興味がなく、ほずんど圹に立たない。



この量のデヌタを凊理する1぀の方法は、Googleによっお考案されたした。 2003幎に、Googleは分散ファむルシステム、デヌタずむンデックスの保存方法、ナヌザヌデヌタなどの内郚に関するかなり有名な蚘事をリリヌスしたした。



2004幎にも、GoogleはMapReduceず呌ばれるこのような倧量のデヌタを凊理するパラダむムを説明する蚘事をリリヌスしたした。



実際、これはたさにこれから説明する内容であり、䞀般的にどのように配眮され、Apache Hadoopプラットフォヌムにどのように実装されるかです。



分散FS


分散ファむルシステム-それは䜕ですか 分散ファむルシステムにはどのタスクが割り圓おられおいたすか







DFSアヌキテクチャ


厳密に蚀えば、これがどのように実装されおいるか。 小さなスケゞュヌルがあり、おそらく衚瀺されたせんが、䞀般的には衚瀺されたす、はい。







マシンのクラスタヌがあり、その䞭には倚くのデヌタが保存されおいたす。 マスタヌノヌドず呌ばれる1぀のマシンがあり、すべおを調敎したす。



マスタヌノヌドには䜕が保存されたすか マスタヌノヌドは単にファむルテヌブルを保存したす。 ファむルシステムの構造。各ファむルはブロックに分割され、特定のクラスタヌマシン䞊にファむルのブロックが保存されたす。



読み曞きはどうですか ある皮のファむルを読みたいので、そのようなファむルのブロックが保存されおいるマスタヌノヌドに尋ね、特定のブロックを保存しおいるマシンを教えおくれたす。すでにクラスタヌマシンから盎接読み蟌んでいたす。



蚘録に぀いおも同じこずを行いたす。マスタヌノヌドに、どこに、どの特定のブロックに、どの特定のマシンに曞き蟌みを行うかを尋ね、そこに盎接蚘録したす。



たた、信頌性を確保するために、各ナニットは耇数のマシンの耇数のコピヌに保存されたす。 これにより、たずえばクラスタヌ内のマシンの10に障害が発生した堎合でも、おそらく䜕も倱われない信頌性が確保されたす。 ぀たり はい、いく぀かのブロックが倱われたすが、これらのブロックは耇数のコピヌに栌玍されおいるため、再び読み曞きできたす



構成


たずえば、圓瀟で䜿甚されおいる兞型的な構成。 たずえば、圓瀟では倧量のデヌタを保存するために70テラバむトであり、定期的に分析し、それを䜿っお䜕かを行いたす。玄40台のマシンで、各マシンは匱いサヌバヌです。業界を芋るず、 16ギガバむトのRAMたたは8ギガバむト、テラバむトのドラむブ、RAIDなし、単なる通垞のドラむブ。



いく぀かのIntel Xeon、䞀般に、ある皮の安䟡なサヌバヌ。 たた、このようなサヌバヌは40台あり、これにより、数癟テラバむトなどのデヌタ量を保存できたす。



Mapreduce


すべおのファむルが分散ファむルシステムに保存されたら、問題はそれらの凊理方法です。 このため、GoogleはMapReduceず呌ばれるパラダむムを発明したした。 圌女はかなり奇劙に芋えたす。 これは、3぀の操䜜でのデヌタ凊理です​​。



最初の操䜜...、いく぀かの入力デヌタ、たずえばいく぀かの入力レコヌドがありたす。



Mapず呌ばれる最初の操䜜は、各入力レコヌドに察しお「キヌ→倀」のペアを提䟛したす。 その埌、内郚では、これらのキヌず倀のペアがグルヌプ化されたす。各キヌは、すべおの入力レコヌドを凊理するずきに、いく぀かの倀を持぀こずができたす。 これらはグルヌプ化され、Reduceプロシヌゞャに発行されたす。Reduceプロシヌゞャはキヌを受け取り、それに応じお倀のセットを受け取り、最終的に最終結果を返したす。



したがっお、入力レコヌドのセットがすでにありたす。たずえば、これらはログファむルの行であり、出力レコヌドのセットを取埗したす。



関数プログラミングのような高床に特殊化されたもののように、これはすべお奇劙に芋えたすが、これがどのように広く実践に適甚されるかはすぐにはわかりたせん。



䟋


実際、䞀般的な慣行では非垞にうたく適甚できたす。



最も単玔な䟋。 私たちがFacebookの䌚瀟であり、倚くのデヌタがあるずしたす。...たあ、ログはFacebookのペヌゞを衚瀺したす。 そしお、䜿甚するブラりザを蚈算する必芁がありたす。



MapReduceパラダむムを䜿甚するず、これを行うのは非垞に簡単です。



Map操䜜を定矩したす。これは、アクセスログの行によっお、キヌず倀を定矩したす。ここで、キヌはブラりザヌであり、倀は1のみです。



その埌、Reduce操䜜を行う必芁がありたす。Reduce操䜜は、ブラりザヌのセットずそのセットに基づいお、単玔に合蚈を行い、出力で各ブラりザヌに察しお受け取った合蚈を出力したす。



このMapReduceタスクをクラスタヌで実行したす。最初は非垞に倚くのログファむルがあり、最埌にはブラりザヌがあり、それに応じおむンプレッションの数が少ない小さなファむルがありたす。 この方法で統蚈を取埗したす。



平行床


MapReduceが良いのはなぜですか



このようなプログラムは、Mapを蚭定し、Reduceを蚭定するず、非垞によく䞊列したす。



䜕らかの皮類の入力があるずしたす。これは倧きなファむルたたはファむルのセットです。このファむルは、たずえばクラスタヌ内のマシンの数などによっお、倚数の小さな断片に分割できたす。 したがっお、Map関数を実行する各ピヌスで、これは䞊行しお実行でき、クラスタヌですべお開始され、静かに蚈算され、各マップの結果が内郚で゜ヌトされ、Reduceに送信されたす。



同じこず、ある皮のマップの結果、倧量のデヌタがある堎合、このデヌタを再び断片に分割し、再びクラスタヌ䞊で、倚くのマシン䞊で実行できたす。



これにより、スケヌラビリティが実珟したす。 2倍の速床でデヌタを凊理する必芁がある堎合、2倍のマシンを远加するだけで、鉄は比范的安䟡になりたした。 アヌキテクチャを倉曎するこずなく、2倍の生産性が埗られたす。







Apache Hadoop



Apache Hadoop-それは䜕ですか Googleがこれらの蚘事を公開した埌、誰もが非垞に䟿利なパラダむムであるず刀断したした。特に、Apache Hadoopプロゞェクトが発生したした。 圌らは、分散ファむルシステムずMapReduceパラダむムに関するこれらの蚘事に曞かれおいるこずを、オヌプン゜ヌスのJavaプロゞェクトずしお実装するこずを決定したした。



2004幎に始たり、人々がオヌプンな怜玢゚ンゞンであるNutchを䜜成したいず考えおいたした。その埌、2005幎頃、Apache Hadoopは分散ファむルシステムずMapReduceパラダむムの実装ずしお、別のプロゞェクトずしお際立っおいたした。 圓初は非垞に安定しおいない小さなプロゞェクトでしたが、2006幎のどこかでYahooがプロゞェクトでHadoopを䜿甚しようずし始め、2008〜2009幎にYahooは怜玢、たたは怜玢ではなくむンデックス䜜成を開始したした。 Apache Hadoopプラットフォヌム、そしお珟圚YahooはApache Hadoopプラットフォヌムを䜿甚しおむンタヌネットのむンデックスを䜜成しおいたす。 むンデックスは分散ファむルシステムに保存され、むンデックス自䜓の構築は䞀連のMap-Reduceタスクずしお実行されたす。



はい、繰り返したすが、Hadoopは最近デヌタ゜ヌティングコンペで優勝したした。䞀郚の人々が1テラバむトのデヌタをより速く゜ヌトしようずするず、「1TB゜ヌトコンテスト」がありたす。 Yahooクラスタヌで実行されるApache Hadoopに基づいお構築されたシステムが定期的に勝ちたす。



Hadoopモゞュヌル


Hadoopは2぀のモゞュヌルで構成されおいたす。 これは、HDFSおよびMapReduceず呌ばれる分散ファむルシステムパラダむムの実装です。 MapReduceフレヌムワヌクの実装。



YahooWebグラフ


YahooがHadoopをどのように䜿甚しおいるかの䟋をいく぀か瀺したす。 たずえば、Yahooはむンタヌネット党䜓のグラフを䜜成する必芁がありたす。 ペヌゞを頂点ずしお䜿甚したす。あるペヌゞから別のペヌゞぞのリンクがある堎合、これはグラフの゚ッゞになり、この゚ッゞはリンクテキストでマヌクされたす。



たずえば、Yahooがそれを行う方法。 これは、Map-Reduceシリヌズのタスクからでもありたす。 たず、Yahooはむンデックス䜜成に関心のあるすべおのペヌゞをダりンロヌドし、再びHDFSに保存したす。 そのようなグラフを䜜成するには、map-reduceタスクが起動されたす。



それで、マップ、私たちはペヌゞを取埗し、リンク先を芋お、キヌ、タヌゲットURL、぀たり ペヌゞが参照する堎所、倀→SourceURL、぀たり リンク先ずリンクテキスト。



Reduceは、これらすべおのペアを取埗するだけです。 キヌを取埗したす。これはTargetURLず倀のセット、぀たり SourceURLずテキストのセットは䜕らかのフィルタヌ凊理を行いたす。明らかに、むンデックスに登録したくないスパムリンクがいく぀かあり、それらはすべおTargetURL、SourceURL、テキストの圢匏で返されたす。







このようなテヌブルは、むンタヌネット党䜓のグラフです。



Last.fm






繰り返したすが、Last.fmでは、おそらく倚くの人が䜿甚したすが、䜿甚しない人は少し説明したす。 これはこのようなサヌビスです。iTunesたたはWinAmpにプラグむンを配眮し、リアルタむムでlast.fmに聞いたものを送信したす。その埌、Last.fmは2぀のこずを行いたす。たずえば、矎しいチャヌトを䜜成したす、぀たり 過去7日間たたは3か月間、どのバンドを聎いたか、あなたの歌は䜕であるか、last.fmはある皮の??? あなたが聞いた曲の統蚈に基づいたラゞオ、圌らはあなたに他の䜕か、あなたにずっお新しくお面癜いもの、あなたが興味を持っおいるこずになっおいるものをお勧めしたす。 誰かが気付いた堎合、これらのチャヌトは、リアルタむムで曎新されず、1日に1回、䞀般的に、たれに芚えおいたせん。



実際、これらのチャヌトは、Apache Hadoopプラットフォヌムで再構築されおいたす。 構成を聞くず、「そのような識別子を持぀ナヌザヌがそのようなグルヌプの構成を聞いた」ずいう行がログファむルに曞き蟌たれたす。 その埌、Map-Reduceタスクは1日に1回起動されたす。 圌女はどのように芋えたすか





その埌、ペヌゞにアクセスするず、このファむルが解析され、ナヌザヌに関連するレコヌドがあり、最埌のスラむドにそのようなチャヌトが描かれたす。



SQL


実際、倚数のSQLク゚リは...ずしお簡単に䞊列化でき、Map-Reduceタスクずしお簡単に衚珟できたす。 たずえば、暙準SQL、倚くの蚘述、倚くはそれを䜿甚したす-フィヌルドのセット、f1、f2、sum、where、䜕らかの条件、およびグルヌプ化。



぀たり これは暙準のSQLク゚リであり、レポヌトや統蚈情報を䜜成する堎所で倚く䜿甚されたす。



そのため、このような芁求はmap-reduceずしお簡単に䞊列化されたす。 テヌブルの代わりに、デヌタストレヌゞずしおテキストファむルがあるずしたす。 SQLの代わりに、map-reduceがありたす。 ク゚リ結果の代わりに、テキストファむルがありたす。



実際、どのように機胜するか。



マッププロセス。 入力ずしお、ログファむルに行があり、出力ずしおこの行をキヌずしお解析したす。この堎合、グルヌプ化する察象のフィヌルド、倀ずしお集玄するフィヌルドを解析したす。 aの量を考慮したす。



Reduceは、実際にはこれらのフィヌルドをキヌずしお、倀ずしお、集蚈する䞀連のフィヌルド、぀たり いく぀かのA1、.... An、および単に合蚈を行いたす。



実際、これですべおです。このようなmap-reduceプロシヌゞャをクラスタヌに蚭定し、このリク゚ストの結果を埗たした。



SQL原則


実際、倚くのSQLク゚リを䞊列化するこずができたす...、map-reduceゞョブの芳点から衚珟できたす。



GROUP BYがある堎合、GROUP BYをMapプロセスのキヌずしお䜿甚するフィヌルドを定矩したす。



WHEREは、Mapプロセスでフィルタリングしおいるだけです。



繰り返したすが、Reduceステヌゞですべおの金額、AVG、およびその他の集蚈関数を考慮したす。



HAVING、JOINなどの条件は非垞に簡単に実装できたす。



SQLパヌティショニング


パヌティショニングに぀いお少し。 このようにデヌタを凊理するずき、たずえば、同じlast.fmでこれらの統蚈を䜜成し、デヌタをファむルに保存したす。すべおのファむルでmap-reduceゞョブを実行するず、長くお間違っおいたす。



通垞、デヌタのパヌティション分割は、たずえば日付ごずに䜿甚されたす。 ぀たり 1぀のログファむルにすべおを保存するのではなく、時間たたは日ごずに分割したす。 次に、MapReduceゞョブのSQLク゚リをマップするずき、最初に入力デヌタのセットを...実際にはファむルごずに制限したす。 最終日のデヌタに興味がある堎合、最終日のデヌタのみを取埗しおから、map-reduce-jobsを実行するずしたす。



Apacheハむブ


実際、この原則はApache Hiveプロゞェクトに実装されおおり、Hadoopに基づいお構築されたフレヌムワヌクです。



ナヌザヌの芳点から芋るず、どのように芋えたすか SQLク゚リを芁求し、デヌタの堎所を特定したす。その埌、このフレヌムワヌクは、このSQLク゚リをmap-reduceタスクの圢匏で、1぀たたは党䜓のシヌケンスの圢匏で衚珟し、それらを起動したす。



぀たり 入力デヌタのセットを決定し、SQLク゚リを蚭定し、䜕らかの皮類のテヌブルも取埗したした。



アパッチ豚


2番目のフレヌムワヌクであるApache Pigは同じであり、おおよそ、同じ問題を解決したす。 コヌドを蚘述するこずなく、ナヌザヌフレンドリヌなmap-reduceゞョブの䜜成。



このETL蚀語で、必芁なシヌケンス、ロヌド元、デヌタのフィルタリング方法、関心のある列を芁求し、これらすべおがmap-reduceゞョブに倉換されたす。







適甚分野


厳密に蚀えば、スコヌプ、このHadoopなどすべおのものです。



Hadoopは、統蚈モデルの構築、および䞀般的なデヌタ分析に非垞によく䜿甚されたす。



倚くのログファむルがある堎合、䜕らかの盞関関係、ナヌザヌがどのように動䜜するか、Hadoopの助けを借りおそのようなタスクがそれぞれ非垞によく解決されるこずを芋぀けたいず思いたす。レポヌトは再び同じLast.fmです。 倧量のデヌタがあり、䜕らかのレポヌトを䜜成する必芁がある堎合、リアルタむムは必芁ありたせん。1日1回、たたは数時間以内にすべおを曎新する準備も敎っおいたす。



長所




このアプロヌチ、このプラットフォヌムの利点。 非垞に優れたスムヌズなスケヌラビリティ。 ぀たり 2倍のデヌタを凊理する必芁がある堎合、たたは2倍のデヌタを保存する必芁がある堎合は、クラスタヌに2倍のマシンを远加するだけです。 ぀たり 正確に2回ではなく、ほが2回です。



れロコストの゜フトりェア。 そこには倧量のデヌタがあり、OracleにアクセスしおOracleのクラスタヌを数癟䞇ドルで賌入できたす。倚くのコンサルタントがそうであるように、これはすべおの䌁業、特にスタヌトアップには適しおいたせん。 ある皮の新しい゜ヌシャルネットワヌクはわかりたせんが、数癟䞇をOracleに費やす䜙裕がないだけです。 Hadoopを賌入する䜙裕があり、クラスタヌを䜿甚しお、デヌタを分析および保存するためのシステムずしおオヌプン゜ヌスのHadoopを䜿甚できたす。



Hadoopは、研究タスクにも䟿利です。 たずえば、あなたは研究者であり、ナヌザヌの行動ずFacebook䞊の䜕か、゜ヌシャルネットワヌク䞊の他の堎所、倚くのファむルがあり、hadoopはAmazonのオンデマンドサヌビスずしお利甚可胜です。



぀たり 自宅で䜕かを曞いお、ロヌカルでデバッグしお、「OK」ず蚀いたす。今、100台のマシンのクラスタヌが2時間必芁です。すぐにAmazonが100台のマシンのクラスタヌを提瀺したす。になりたす。



Amazonで1時間に100台の車は比范的安く、自宅にクラスタヌを保管するよりも安くなっおいたす。 研究には、これは十分に䟿利です。週に䞀床これをすべお必芁ずするずいう意味で、クラスタヌを自分で保存する必芁はなく、Amazonに泚文できたす。



聎衆から数字の順序はいくらですか



1時間...たあ、それは玄100ドルです。 正盎なずころ、Amazonの䟡栌は芚えおいたせんが、かなり安く、手頃な䟡栌です。



聎衆から1時間あたり50セント...



はい。ただし、Hadoopにはより倚くのむンスタンスが必芁であり、おそらくより倧きなクラスタヌが必芁です。 これはそのような泚文であり、倧きなタスクであれば、これは1時間ではなく10時間ですが、それでも数癟ドル、぀たり あたり倧きくないものに぀いお



短所


そしお、Hadoopの欠陥は䜕ですか



たず、これはかなり高いサポヌトコストです。 倚くのマシンからHadoopクラスタヌを䜿甚しおいる堎合、Hadoopアヌキテクチャ、その仕組み、およびこれらすべおをサポヌトするスマヌトシステム管理者を芋぀ける必芁がありたす。 ぀たり それは本圓に簡単ではありたせん、本圓に時間がかかりたす。



これは、産業甚の高䟡なストレヌゞ斜蚭ずは異なり、新しいデヌタ凊理プロセスのコストが非垞に高くなりたす。 ぀たり 䜕らかのOracleたたはこのスタむルの類䌌品を賌入する堎合、原則ずしお、SQLク゚リのみを蚘述しお結果を埗るビゞネスアナリストを雇うだけで十分です。 この堎合、これはHadoopでは機胜したせん。ビゞネスの郚分を考え出す人々、必芁なデヌタの皮類、およびこれらのmap-reduceゞョブを䜜成するJava開発者のチヌムが必芁になりたす。



チヌムはそれほど倧きくはありたせんが、それでもなお費甚がかかり、開発者は非垞に高䟡です。



繰り返したすが、問題はリアルタむムにありたす。 Hadoopはリアルタむムシステムではありたせん。 䞀郚のデヌタを受信したい堎合、ナヌザヌがサむトにアクセスしたずきにmap-reduceゞョブを実行できるようにデヌタが機胜したせん。 バックグラりンドで少なくずも1時間に1回デヌタを曎新し、ナヌザヌが既に蚈算されたデヌタを衚瀺するようにする必芁がありたす。



リアルタむム


real-timでは、問題は比范的解決可胜です。 たずえば、圓瀟での決定方法。 保有しおいる党デヌタにリアルタむムでアクセスする必芁はありたせん。map-reduceゞョブを実行し、非垞に䟡倀がありながら劥圓なサむズの結果を取埗し、SQLデヌタベヌスに保存したす。ただし、メモリ内のMemCacheでは、このデヌタが倧量にある堎合は機胜したせん。



だから今...ただ時間が残っおいたすか



残り10分なので、列指向のデヌタベヌスに぀いお説明したす。これは、リアルタむムアクセスが必芁な倧量のデヌタを保存する方法でもありたす。



列指向デヌタベヌス


どのように機胜したすか SQLの䞀般的な問題は䜕ですか SQLでは、MySQLでは、たずえば数テラバむトでボリュヌムを保存するこずはできたせん。そのようなテヌブルは単に機胜せず、デヌタを受信できたせん。



SQLに関するその他の問題、たずえばALTER TABLEなどのスキヌマを倉曎する堎合、倧きなテヌブルにいく぀かの列を远加するのは長くお問題がありたす。 それは非垞に問題が倚く、必芁ないずき、構造化デヌタを保存する必芁がないずき、制限を削陀するずき... SQL機胜を構造化デヌタリポゞトリずしお䜿甚しないで、リレヌショナルを䜿甚しないで、わずかに効率的な構造でデヌタを保存できたす。玠晎らしいパフォヌマンスを埗おいたす。



これは、列指向デヌタベヌスず呌ばれるわずかに異なるアプロヌチです。



ビッグテヌブル


これはGoogleによっお導入されたもので、今でも䜿甚されおいたす。私の蚘憶が圹立った堎合、これは2004幎に公開された蚘事「BigTable」です。



実際、BigTableずは䜕ですか



いく぀かの原則に基づいおいたす。



テヌブルのフィヌルドによるむンデックス付けから、リレヌショナルを拒吊する最初の原則は、怜玢するフィヌルドが1぀だけで、rowkeyず呌ばれるもので、アナログはテヌブルの䞻キヌです。



他のすべおのフィヌルドにむンデックスを付けたり、怜玢したり、構造化したりするこずはありたせん。2番目の原則は、テヌブルが広いこずです。 どんなデヌタ型でも、い぀でも列を远加できたす。それは安くお良いはずです。



BigTableの䟋


これを䜿甚する堎合の䟋を挙げたしょう。 サむトのナヌザヌに関するデヌタを保存したい。 Googleの堎合、サむトにアクセスしお、いく぀かのアクションを実行したした。いく぀かのリク゚ストを行い、䜕かを芋お、いく぀かの広告を芋お、これは匿名ナヌザヌです。 この問題はどのように解決されたすか 倚くの人々は、ナヌザヌに関する情報、圌がしたこず、圌が芋たペヌゞ、圌が芋た広告、圌がクリックしたものにクッキヌに関する情報を保存したす。 このアプロヌチには倧きな問題がありたす-Cookieのサむズは非垞に限られおいるため、先月のナヌザヌアクションの履歎を曞き留めるこずはできたせん。機胜したせん。堎所がありたせん。 この問題はBigTableでどのように解決できたすか



BigTableのようなストアがある堎合、Cookieにパラメヌタヌ䞀意のナヌザヌIDのみを保存できたす。 BigTableでは、UserUIDをテヌブルのメむンキヌずしお保存し、蚪問履歎、広告のクリック、リンクのクリックなど、興味のある倚くのフィヌルドを保存したす。



それはどうですか 残りのフィヌルドで䜕かを探す必芁がないこずは明らかです。 適切な広告を衚瀺するためにナヌザヌに関する情報を知りたい堎合は、UserIDで情報を怜玢するだけで枈みたす。



たた、ビゞネスは倉化する可胜性があるため、倚くの異なるフィヌルドを远加でき、安䟡で優れおいるこずも良いこずです。 実際には、rowkeyのようなBigTable、userID、およびテヌブルのような他のすべおのデヌタを䜿甚するず非垞に䟿利です。



BigTableデザむン


どのように機胜したすか BigTableのようなアプロヌチであり、倚数のコンピュヌタヌに非垞にうたく察応したす。 ぀たり 前の䟋で匕甚したように、行キヌがあり、ナヌザヌIDなどの行キヌのみで怜玢する堎合、このナヌザヌですべおのデヌタを䞊べ替え、このデヌタの異なる範囲を異なるサヌバヌに保存できたす。 ぀たり リク゚ストはどのように「このナヌザヌIDに関するすべおの情報を取埗したすか」 マスタヌノヌドは、どの範囲がどのサヌバヌに保存されおいるかに関する情報を保存したす。たず、興味のあるデヌタが保存されおいるマスタヌノヌドで、次にこのノヌドに盎接アクセスしお、そこからデヌタを読み取りたす。



繰り返したすが、2倍のデヌタ→2倍のマシンを賌入し、ストレヌゞをわずかに再構築したしたが、再構築はしたせんでしたが、アクセスを可胜にするシステム、぀たり、2倍のデヌタを保存できたす。



Hbase


Apache Hadoopの䞀郚ずしお開発されおいるこのBigTableパラダむムは、 HBaseず呌ばれるプロゞェクトを実装しおいたす。



Hadoop Distributed File System, , Hadoop-, , - map-reduce job, - , , .. Reduce . Reduce , , HBase, , Hadoop, .



HBase:


, . , , — 16 8 , , 10 RPM, - Intel Xeon, .



, , 3-5 
 300 , - 18 , —— , - 10 . - MySQL . HBase .



HBase:


HBase, , BigTable ? , .. . , , join-, WHERE, , , , .



, HBase , , , , , , , .



Hadoop:


, , map-reduce , research, , , HBase BigTable
, , HBase-, , , , - , , , , , , , .



HBase , , , , . , , .
 
 ( ).





, — , (. ) .






All Articles