GCP Dataproc 使ってみた

GCP

なんで使ってみたのか
GCPの資格勉強をする際に、何をするサービスなのか全く理解できなかったので。

このページでは何も知らない人が使ってみて理解したまでの過程を記載します。

そもそもDataprocって何?
Apache Spark/Hadoopといった、オープンソースの並列、分散処理基盤を展開するサービス。
SparkやHadoopはビッグデータを解析する際に利用される技術。


クラスタの作成
まずはすべてデフォルトの設定で作成をします。
クラスタを作成すると、Dataproc基盤を構成するVMインスタンスやStorageが準備されます。

ジョブの作成
ジョブを作成してみます。
ジョブは説明に記載されているように、Hadoop/Sparkのジョブが実行できます。
HiveやPigはHadoopの補足コンポーネントのことらしいですが、いったん置いておく。

ジョブの作成②
ジョブタイプには画像にあるとおり、いろいろなタイプを選択できる。
タイプを選択したら、当然そのタイプのプログラムを準備する必要がある。

ジョブの作成③
ジョブには何かしらのプログラムファイルを指定する必要がある。
例えば、PySparkタイプを選択した場合、Pythonファイルを指定する必要がある。
HadoopならJavaのプログラムを指定する必要がある。

ジョブの準備(プログラムの作成編)
ということで、そもそも試すためにはプログラムを準備する必要がある。
そのためにはPythonなり、JavaなりでHadoop/Spark用のプログラムを書く必要がある。

以下はGoogleのチュートリアルに記載のあった、Pyspark用のプログラム

#!/usr/bin/python
import pyspark
sc = pyspark.SparkContext()
rdd = sc.parallelize(['Hello,', 'world!'])
words = sorted(rdd.collect())
print(words)

ジョブの準備(GCSへの保管編)

プログラムを作成したら、Google Cloud Storage(GCS)へ保管してあげる。
その際に、URIが確認できるので、控えておく。

ジョブの実行

それでは、いざ実行

ジョブの出力に以下が表示されていました。

21/01/20 04:47:36 INFO org.apache.hadoop.yarn.client.api.impl.YarnClientImpl: Submitted application application_1611116549616_0001
['Hello,', 'world!']

結局なんなの?
とりあえず、PythonでかかれたSparkのプログラムを実行することができました。
Spark/HadoopはHDFS(Hadoop Distributed File System)という技術で実装されたデータストアと連携し、並列分散で大容量のデータを高速処理することができます。

Dataprocでクラスタを作成すると、ノードのVMの上ではHDFSが展開されているため、Spark/HadoopのプログラムでHDFSと連携した処理を行うことが可能になります。

HDFS以外にもBigquery用のコネクタも提供されていて、Bigqueryとの連携も可能。

結論
並列分散処理を行う技術にはHadoop/Sparkといったオープンソースがある。
上記を利用するには専用の基盤、専用のプログラムを準備する必要がある。
専用の基盤を準備するには、非常に労力がかかる。
Dataprocでは基盤を準備する部分をクラウドとして提供してくれる。

コメント

タイトルとURLをコピーしました