データが主食

データエンジニアのぽえむ。分析だったり、読んだ本のメモだったり。

Courseraの「Big Data Essentials: HDFS, MapReduce and Spark RDD」を修了した件

きっかけ

仕事で大量のアクセスログを分析することがあり、AWSのEMRとかAthenaとか使っています。 EMRでは計算機のクラスタが勝手に構築されて、HadoopとかHiveとかOozieとかとかが勝手にインストールされて、お膳立てしてもらった状態でやっとこさ分析できる状態です。

とはいえ、分析・集計を高速化したいとか考え始めると、HDFSやMapReduceなどの知識がないと、どこから着手すればよいか検討もつきません。 今回は、それ関係のCourseraの講座を受講してみました。

Coursera とは?

Courseraはスタンフォード大学の教授陣が設立した教育サービスの会社で、有名大学などの講座がオンラインで受けられる仕組みです。 Andrew ng先生の「Machine Learning」とかが有名ですね。ちなみに、Andrew ng先生もCoursera創設者の一人です。

Courseraには無料の講座が多くありますが、課金することで修了証書をLinkedInに掲載できるようになります。 欧米の人はこういう修了証書好きな人多いですよね。日本の転職市場でどれくらい有効なのかは不明です。

以前「Machine Learning」も受講しようとしたのですが、最初の方が簡単すぎたり、今更Octaveかよ...的なところで、なかなかモチベーションが続きませんでした。 そのため、今回は最初から課金してモチベーションを維持しようという試みです。 終了証書を掲載した結果ヘッドハンターからの連絡の量が増えたりしたら、それで記事を書くつもりです。

今回受講するのは、 Big Data Essentials: HDFS, MapReduce and Spark RDD です。

Essentialsということで、一番求めているっぽい講座な気がします。 講座を作っているのは、ロシアで検索エンジンを提供しているYandexという会社です。ロシアではかなり有名な検索エンジンらしく、世界的にみてもビッグデータ記述にたいして強みを持っている会社らしいです。

www.coursera.org

講座の内容

Week 1

1週目はUNIXの話から入ります。catやsortコマンドなどの紹介があります。 MapReduceの文脈で、UNIX哲学が語られることが多いですが、定番なんですね。 また、HDFSやファイルフォーマットや圧縮方式の話が勉強できます。 第1週のテストはペーパーテストばかりなりので、簡単です。間違えても動画を再度見ると、だいたいは解答できると思います。 受講生の答案を別の受講生が採点するテストがあり、スケジュールを守らないと怒られるのが要注意です。

Week 2

2週目は不安定な要素システムから耐障害性のある計算フレームワークをどう構築するかという話が展開されます。 また、Hadoop Streamingが紹介されて任意の言語でMapperやReducerを記述できることを知りました。 第2週のテストもペーパーテストなので余裕ですね。

Week 3

3週目はHadoopStreamingの課題です。 Jupyter Notebook上でMapperとReducerのPythonコードを記述し、動作させることができます。 1、2週目では理論を勉強してきましたが、実装するとなると本当に難しいですね。 Hadoopクラスタを自力で構築するのは手間なので、本当に助かります。

Week 4

4週目はSparkの基礎を勉強します。RDD,Transformation,Action,Resiliencyなどの基本思想を勉強します。 くわえて、Broadcast variables,Accumulator variablesを勉強します。Sparkの先生は口調が優しく英語が聞き取りやすいです。 MapReduceの時と同じで、理論だけ聞いてもよくわからない状態です。早く課題をやってみたくてウズウズしてきます。

Week 5

5週目はSparkの課題です。待ってました! Sparkの課題も実際のHadoopクラスタ上で実行する課題です。内容はそれほど難しくなく、1時間もあれば終わるかと思います。 ただ、課題の提出システムはMapReduce課題と違うので少し迷いました。

Week 6

6週目は、実際の分析シチュエーションで、MapReduceやSparkを使ってみましょうという課題です。 そのため、事前に点推定における信頼区間などの統計の基礎的な動画を見ることになります。その後、ソーシャルグラフ上での最短経路をSparkで解く課題や、TF-IDFをMapReduceで計算する課題に取り組みます。

感想

  • Hadoop/Sparkの講座はオーソドックスな内容なので、内容的には一冊の本を読むのとそれほど変わらないかも。
  • 手を動かせる課題があるのがとても良いです。課題のためのHadoopクラスタを構築してくれているのがありがたいです。
  • 課金することでやる気が湧く。
  • 講師陣の英語はイギリス英語っぽくて少し聞き取りづらいです。