0

目的
Webアプリケーションのファイルストレージと処理バックエンドを実装する必要があります。アプリケーションには次の特徴があります。

(#1)クライアントはさまざまな形式とサイズのファイルを保存します(ギガバイトの範囲である可能性があります)
(#2)クライアントがファイル自体を取得する必要がある場合があります
(#3)クライアントが出力を取得する必要がある場合がありますデータ(ここでは「OD」以降)。以前に保存されたファイルに対して処理が実行され、ODが生成されます。重要な注意:ODサイズは通常、元のファイルサイズのごく一部です。2GBのファイルで1MBのODが生成される場合があります)。
(#4)クライアントがファイルに変換を適用する場合があります(ファイルのパッチ適用など)。

解決策を検討する
ストレージクラスター(SANなど)を使用して#1と#2を実現し、次に#3と#4のコンピューティングクラスターを使用できます。しかし、SANとコンピューティングクラスター間で大量のデータをシャトルすること(何百人ものユーザーがODまたはファイルにパッチを適用することを想像してください)は、特にファイルデータが巨大になる可能性があり、ほとんどの場合、クライアントが必要とするのは小さなODまたは何もありません(パッチ適用操作はクライアント入力を消費しますが、データをクライアントに返しません)。

したがって、必要なのは、各ノードがビッグデータノードであり、ストレージクラスターと処理クラスター間のトラフィックを回避するための適切な処理ノードであるノードクラスターであると思います(現在は1つであるため)。ノードは、保存するファイルの処理を担当するため、ネットワーク帯域幅が回避されます。ノードが処理要求で過負荷になった場合、そのノードは一部の作業を隣接ノードにオフロードする可能性があります(したがって、帯域幅のコストが発生しますが、必要な場合のみです)。

質問
(1)ウィキメディアは「ファイルサーバー」と個別の「イメージスケーラー」サーバーを使用しています...しかし、私の場合、大きな不要な帯域幅が心配です。私の心配は正当化されますか?したがって、私の場合、ストレージ/処理ノードの分離は不適切ですか?

(2)私のアプローチ(大きなストレージのクラスター+強力な処理ノード)は望ましいですか?または、別のアーキテクチャを検討する必要がありますか?

(2)Hadoopを検討しましたが、それがタスクに適しているかどうかわかりません(帯域幅のコストが高く、ビッグデータを実際に処理していません)。また、Hadoopがそのタスクに適している場合は、その理由を説明してください。

(3)これらのサーバークラスターの管理に使用できるオープンソース/その他のフレームワークはありますか?

(4)ない場合は、社内でソリューションを開発する必要があると思います。どうすれば始められますか?

ふぅ。それはたくさんでした。前もって感謝します!

4

1 に答える 1

0

Hadoop と、HDFS と MR の両方を使用することは、おそらく実行可能なソリューションです。ただし、注意事項と考慮事項:

  1. 「OD」を作成するために使用するアルゴリズムは、一般的に並列化可能ですか? そうでない場合、データの局所性からメリットを得られない可能性があり、hadoop はファイルのデータを、それを保持しているデータノードから処理を行う単一のノードにコピーします。

  2. mapreduce を使用すると、ファイルをその場で変更できなくなります。そのため、出力ファイルの名前を入力ファイルに変更する後処理手順や、その他のハウスキーピングも考慮する必要があります。

  3. クラスターの管理/展開はそれほど難しくありません。Cloudera Manager と Hortonworks Data Platform を確認してください。これらは、展開から管理および監視までのすべてを提供する必要があります。ただし、Cloudera オファリングでは、特定の数のノードを超えるライセンス コストが発生する場合があります。HDPにはそのような制限はありません。

于 2012-11-25T14:16:39.357 に答える