2017-01-05 5 views
1

PigLatinへの完全な初心者からAPIを呼び出すが、イギリス気象庁のDataPoint API例えばからデータを取得するために探して:はPigLatin

http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/all/xml/350509?res=3hourly&key=abc123 ....

... Hadoopのに。

私の質問は「これはPigLatin(AmbigのPig Viewの中から)を使用して行うことができますか」です。

GETリクエストをコードに書式設定する方法については悩まされていますが、運が必要です。

私は間違った木を吠えますか?これを達成するためにHadoopフレームワーク内で別のサービスを使用することを検討する必要がありますか?

答えて

1

map-reduceジョブの内部から外部サービスを呼び出すことは非常に悪い考えです。その理由は、クラスタ上で実行している場合、ジョブは非常にスケーラビリティが高いのに対して、外部システムはスケーラビリティが低いからです。 YARNのような現代のリソースマネージャーは、この状況をさらに悪化させます。外部システムを要求して、クラスタ上のタスクがほとんどがサーバーからの応答を待ってスリープ状態になるときです。リソースマネージャーは、CPUがタスクによって使用されていないことを確認し、さらに多くのタスクを実行するようにスケジューリングします。これにより、外部システムに対してさらに多くの要求が行われ、要求とともにさらに処理されます。私は毎秒100Kの要求を出している控えめな100マシンクラスターを見てきました。

本当にしたいのは、何らかの形でWebサービスから大量のデータを取得するか、キューと、設定された速度で外部システムから取得する管理人数が少ないシステムをセットアップすることです。

あなたのオリジナルの質問については、私はPigLatinがそのようなサービスを提供しているとは思っていませんが、PythonまたはJavaのUDFで簡単に行うことができます。 Pythonでは、優れたrequestsライブラリを使用することができます。これにより、UDFは約6行のコードになります。 Java UDFは少し冗長になりますが、Java標準ではひどいことはありません。

+0

大変感謝しています。@Vlad、私はPythonリクエストライブラリをお勧めします。 – Jon295087

0

"これはPigLatin(Pig View内、 Ambari)を使用して行うことができますか?

デフォルトでは、独自のローダを作成しない限り、HDFSストレージからのPNGロードはありません。

私は@Vladと同じ点を共有していますが、これは良い考えではありません。他の多くのコンポーネントがデータの取り込みに使用されていますが、これはPig!

+0

助けてくれてありがとう@ 54l3d – Jon295087

関連する問題