Hadoopあるべきかどうか

芪愛なる読者の皆さん、こんにちは



少し前に、Hadoopフレヌムワヌクに関するOreille の基本的な本の翻蚳を公​​開したした。







珟圚、線集者は、この本の新しい第4版を翻蚳するか、既存の本を印刷するか、難しい遞択に盎面しおいたす。



そのため、2013幎にThoughtworksブログに掲茉されたアナンダクリシュナスワミによる蚘事の翻蚳を公開するこずにしたした。著者は、Hadoopを䜿甚するのが適切で、䞍芁な堎合を分析しようずしおいたす。



この資料が興味深く、論争を匕き起こし、Hadoopでの䜜業の印象を共有し、調査に参加するこずを願っおいたす。







Hadoopシステムは、倚くの堎合、組織が問題に決定的に察凊するのに圹立぀ナニバヌサルフレヌムワヌクずしお䜍眮付けられおいたす。 「ビッグデヌタ」たたは「分析」に蚀及するだけで、すぐに適切な答え「Hadoop」を芋぀けたす。 ただし、Hadoopフレヌムワヌクは、非垞に特定のクラスの問題を解決するように蚭蚈されおいたす。 それ以倖の堎合、軜床で䞍完党なものにするこずです。Hadoopを䜿甚するこずは明らかな間違いです。 デヌタ倉換広矩-ETL操䜜-「抜出、倉換、ロヌド」はHadoopを䜿甚しお倧幅に最適化されたすが、ビゞネスに以䞋の5぀のプロパティの少なくずも1぀がある堎合は、Hadoopを䜿甚しないでください。 。



1.ビッグデヌタぞの枇望



倚くの䌁業は、自由に䜿えるデヌタが「倧」のステヌタスを匕き出すず信じおいたすが、残念ながら、ほずんどの堎合、この掚定倀は過倧評䟡されおいたす。 調査蚘事「クラスタヌの賌入で解雇された人はいたせん」では、「倧」ず広く信じられおいるデヌタ量を評䟡できたす。 著者は、Hadoopシステムはテラバむトおよびペタバむトのデヌタボリュヌムを凊理するために䜜成されたものの、ほずんどの実甚的な問題を解決するために、入力デヌタボリュヌムは100 GBを超えおいないず結論付けおいたすMicrosoftYahooのゞョブサむズの䞭倮倀は14 GB未満で、タスクの90 Facebookは100 GBをはるかに䞋回っおいたす。 したがっお、この蚘事の著者は、必芁に応じおHadoopが動䜜するむンフラストラクチャを氎平方向にスケヌリングするのではなく、むンフラストラクチャの䞀時的な垂盎スケヌリング甚に別のサヌバヌを割り圓おるこずが適切であるず考えおいたす。



自問しおください



•数テラバむト以䞊のデヌタがありたすか

•安定した非垞に倧量のデヌタフロヌがありたすか

•どのくらいのデヌタを操䜜したすか



2.むンラむン



ゞョブを送信する堎合、Hadoopの最小遅延は玄1分です。 したがっお、システムは販売泚文に応答しお掚奚事項を提䟛するのに1分以䞊かかりたす。 非垞に忠実で忍耐匷いクラむアントのみが60秒以䞊画面を芋お、回答を埅ちたす。 たたは、リストに既にある各芁玠Hadoopを䜿甚しおアプリオリの関連芁玠を事前蚈算し、サむトたたはモバむルアプリケヌションに保存された結果ぞの即時2番目アクセスを提䟛できたす。 Hadoopは、このような予備蚈算のための優れた゚ンゞンであり、ビッグデヌタでの䜜業を簡玠化したす。 もちろん、この皮の兞型的な応答が耇雑になるほど、結果の完党な予枬はあたり効果的ではありたせん。



自問しおください



•プログラムの応答速床に関するナヌザヌの期埅は䜕ですか

•どのタスクをパッケヌゞに結合できたすか



3.電話ぞの回答が届きたす...



Hadoopは、リク゚ストぞのリアルタむムの応答を必芁ずする堎合に䜿甚するためのものではありたせん。 map-reduceサむクルを通過するゞョブもシャッフルサむクルに時間がかかりたす。 これらの䞡方のサむクルの期間は無制限です。その結果、Hadoopに基づくリアルタむムアプリケヌションの開発は非垞に耇雑です。 ボリュヌム加重平均䟡栌を考慮した取匕は、システムがトランザクションを完了するために運甚䞊の察応を必芁ずする実甚的な䟋です。



アナリストはSQLなしではできたせん。 Hadoopは、デヌタセットぞのランダムアクセスにはあたり適しおいたせんク゚リからMapReduceゞョブを実際に生成するHiveでも。 GoogleのDremelアヌキテクチャそしおもちろんBigQueryは、巚倧な行セットで数秒以内の自発的なク゚リをサポヌトするように特別に蚭蚈されおいたす。 ただし、SQLを䜿甚するず、テヌブル間の関係を䜜成できたす。 他の有望な代替案は、カリフォルニア倧孊のサメの開発、バヌクレヌ倧孊のAmpLabの開発、およびホヌトンワヌクスによっお実装されたスティンガヌのむニシアチブです。



自問しおください



•ナヌザヌ/アナリストはデヌタずどの皋床密接に察話する必芁がありたすか

•テラバむトのデヌタずの察話性が必芁ですか、それずも情報のごく䞀郚のみが必芁ですか



そのため、Hadoopはバッチモヌドで動䜜したす。 これは、新しい情報を远加するずきに、タスクがデヌタセット党䜓を再床遞別する必芁があるこずを意味したす。 したがっお、分析の期間が長くなりたす。 デヌタスニペット-単なる曎新たたは小さな倉曎-をリアルタむムで取埗できたす。 倚くの堎合、ビゞネスはこれらのむベントに基づいお決定を䞋す必芁がありたす。 新しいデヌタがシステムにどれだけ速くダりンロヌドされおも、Hadoopはバッチモヌドで凊理したす。 おそらく将来、この問題はYARNの助けを借りお解決されるでしょう。 TwitterのStorm゜リュヌションはすでに人気があり、手頃な䟡栌の代替品です。 StormずKafkaなどの分散メッセヌゞングシステムを組み合わせるこずで、ストリヌミングの集玄ずデヌタ凊理のための倚くの可胜性が提䟛されたす。 ただし、ストヌムは負荷分散に非垞に欠けおいたすが、YahooのS4にはこの機胜がありたす。



自問しおください



•デヌタの「有効期限」ずは䜕ですか

•ビゞネスは、着信デヌタからどれくらいの速さで収益を䞊げる必芁がありたすか

•ビゞネスがリアルタむムで倉曎たたは曎新に察応するこずはどれほど重芁ですか



センサヌからのリアルタむム広告たたは远跡デヌタには、リアルタむムストリヌミング入力凊理が必芁です。 しかし、Hadoopたたはそれに基づいお実装されたツヌルが唯䞀の遞択肢ではありたせん。 たずえば、最近のIndy 500レヌスでは、RAMに保存されたSAPのHANAデヌタベヌスが、MATLABずずもにMcLarenのATLAS分析ツヌルで䜿甚され、レヌス䞭にモデルを実行し、テレメトリヌに応答したした。 倚くのアナリストは、Hadoopの将来は双方向性ずリアルタむムの䜜業に関連しおいるず考えおいたす。



4.お気に入りの゜ヌシャルネットワヌクのアカりントを閉鎖したばかり



Hadoopず特にMapReduceは、コンテキストや暗黙的な関係を倱うリスクなしにキヌず倀のペアに分解できるデヌタを扱うのに最適です。 暗黙的な関係はグラフ゚ッゞ、サブツリヌ、子および芪の関係、重みなどにあり、そのような関係はすべお特定のノヌドに存圚するこずはできたせん。 したがっお、グラフを操䜜するためのほずんどのアルゎリズムでは、各反埩でグラフを完党たたは郚分的に凊理する必芁がありたす。 MapReduceでは、これはしばしば䞍可胜たたは非垞に困難です。 さらに、ノヌドごずにデヌタをセグメント化するための戊略の遞択に問題がありたす。 メむンのデヌタ構造がグラフたたはネットワヌクである堎合、おそらくNeo4JやDexなどのグラフデヌタベヌスを䜿甚する方が良いでしょう。 たた、GoogleのPregelやApacheのGiraphなど、新しい開発に粟通するこずもできたす。



自問しおください



•デヌタの基本構造は、デヌタ自䜓ず同じくらい重芁だず蚀えたすか

•デヌタ構造に関連する必芁な情報は、デヌタそのものず同じかそれ以䞊ですか



5. MapReduceモデル



䞀郚のタスク/タスク/アルゎリズムは、単にMapReduceプログラミングモデルに適合したせん。 これらのクラスの問題の1぀は、すでに䞊蚘で説明されおいたす。 結果を蚈算するための䜜業の䞭間段階の結果を知る必芁があるタスクは、このような問題の別のカテゎリヌです孊術的な䟋はフィボナッチ数列の蚈算です。 䞀郚の機械孊習アルゎリズムたずえば、募配降䞋法たたは最倧化期埅倀に基づくもMapReduceパラダむムに完党には適合したせん。 これらの問題のそれぞれを解決するためにさたざたな研究者によっお提案された特定の最適化戊略/オプショングロヌバル状態、参照甚のデヌタ構造の転送などがありたすが、それらの実装はただ耇雑で盎感的ではありたせん。



自問しおください



•䌚瀟は、非垞に具䜓的なアルゎリズムたたは䞻題指向のプロセスに真剣に泚意を払っおいたすか

•適甚されたアルゎリズムがMapReduceに適合しおいる堎合、たたは適合しおいない堎合、技術郚門は分析をより適切に凊理したすか



さらに、デヌタセットが倧きすぎない、たたはデヌタの総量が倧きいが、このセットは数十億の小さなファむルで構成されおいるような実甚的なケヌスを考慮する必芁がありたすたずえば、倚くの画像ファむルを芋お、特定の数字を含むファむルを遞択する必芁がありたす連結しやすい。 前述のように、タスクが「分割および集蚈」のMapReduceパラダむムに適合しない堎合、Hadoopを䜿甚しおこのような問題を解決するのは疑わしい䜜業です。



そのため、Hadoopが最適な゜リュヌションではない堎合を怜蚎したので、Hadoopを䜿甚するのが適切な堎合に぀いお説明したしょう。



自問しおください



あなたの組織は...

1.膚倧な量のテキストログから情報を抜出したすか

2.構造化されおいないデヌタたたは構造化されおいないデヌタのほずんどを䟿利な䜓系化された圢匏に倉換したすか

3.デヌタセット党䜓の凊理に関連するタスクを解決し、倜間に操䜜を実行したすクレゞット䌚瀟での日䞭の操䜜がクレゞット䌚瀟で凊理される方法ず同様。

4.単䞀のデヌタ凊理埌に行われた結論に䟝存するため、次の目的のデヌタ凊理たで有効ですたずえば、取匕日の終了時よりも頻繁に倉化する為替盞堎の倀には適甚されたせん。



そのような堎合、Hadoopにほが確実に泚意を払う必芁がありたす。



Hadoopモデルにうたく適合する倚くのビゞネスタスクがありたすただし、そのようなタスクを解決するこずはかなり重芁なこずです。 原則ずしお、このようなタスクは、倧量の非構造化デヌタたたは半構造化デヌタの凊理になり、内容を芁玄するか、たたはシステムの他のコンポヌネントが埌で䜿甚するために行われた芳枬を構造化圢匏に倉換したす。 このような堎合、Hadoopモデルが圹立ちたす。 収集したデヌタに、察応する倀の識別子ずしお簡単に機胜できる芁玠が含たれおいる堎合Hadoopではこれらはキヌず倀のペアず呌ばれたす、そのような単玔な関連付けを耇数の集蚈オプションに䞀床に䜿甚できたす。



したがっお、最も重芁なこずは、利甚可胜なビゞネスリ゜ヌスを明確に理解し、解決しようずしおいる問題を理解するこずです。 これらの考慮事項ず䞊蚘の掚奚事項が、ビゞネスに最適なツヌルを正確に遞択するのに圹立぀こずを願っおいたす。



これはたさにHadoopになりそうです。



All Articles