2015年04月02日

今Hadoopについて知っておくべきことは何か

本日紹介する記事はこちら。

What you need to know about Hadoop right now
今Hadoopについて知っておくべきことは何か

書いているのはAndrew C. Oliver氏。POIの開発者の方です。POIにはその昔お世話になりました。

Phoenix

まず氏が注目しているのはPhoenixだそうです。

下記はPhonenix公式サイトのOverview。

Apache Phoenix is a relational database layer over HBase delivered as a client-embedded JDBC driver targeting low latency queries over HBase data. Apache Phoenix takes your SQL query, compiles it into a series of HBase scans, and orchestrates the running of those scans to produce regular JDBC result sets.

Apache PhoenixはJDBCの組み込みドライバのように振る舞って、HBaseのデータと通信するRDBレイヤーです。Apache PhoenixはSQLのクエリをHBaseのscanとして扱い、結果をJDBCのResultSetとして返します。

RDB的に扱えるようになれば、HBaseの利用の敷居はかなり低くなりますね。個人的には昔HBaseのScanをベタ書きしてた時期があって、単一のテーブルを扱う分には困ることはありませんでしたが、JOIN等のSQLで一般的な操作が一部面倒だった記憶があるので、そのあたりを解決してくれるライブラリには魅力を感じます。

Hive(with HBase)と比べても良い速度が出ているとか。

It's also a heck of a lot faster than Hive. I don’t think of it as a replacement for Hive, which is still a good fit for a bunch of flat files that you don’t want to mangle into HBase and might analyze other ways.

(Phoenixは)多くの処理でHiveより速い。といってもHiveはHBaseでは扱いづらいようなflatなファイルの処理にとって適切なものなので、PhoenixがHiveを置き換えることにはならないけど。

Spark And Storm

次の注目はSparkStorm。Sparkについては先日、100TBのソートが23分でできた件でも触れました。

どちらもMapReduceと比べると機械学習と相性が良いという特徴があり(iterationするたびにファイル吐き出すのは辛いです)、Spark MLがあったり、Stormの方もMicrosoftのAzureでサポートされるなど、

The two have some overlap, but there are places where one is a better fit than the other.

この2つはある部分では競合してるけど、使う場所によっては適正が分かれることもある。

Kafka

LinkedInが作ったOSSのメッセージツールです。Scalaで書かれています。SparkもそうですがHadoop系はScala使ってるライブラリがけっこうありますね。

If you have used JMS, AMQ, or any messaging tool, then you already know a little about Kafka.

もしあなたがJMSやAMQなどのメッセージツールを使っているなら、Kafkaについても理解しやすいでしょう。

その他

この他にも記事中ではFalconAmbariMesosMLibなどの名前が挙がっています。個人的にはTwitterやeBayでも使われているMesosに注目しています。

下記はMesosの公式サイトの一文です。

The Mesos kernel runs on every machine and provides applications (e.g., Hadoop, Spark, Kafka, Elastic Search) with API’s for resource management and scheduling across entire datacenter and cloud environments.

Mesosカーネルはアプリケーション(HadoopとかSparkとかKafkaとかElastic Searchとか)のリソース管理とスケジューリングを、すべてのデータセンターとクラウド環境のマシン上に対して行います。

e.g.のところには出てませんが、CassandraやJenkins、Stormでも実績があるそうです。(ところでElastic Searchという表記はこれで良いんだっけ)

また、Hadoopとは直接関連のない製品として、構成管理の為にDockerと、セキュリティの為にLDAPの知識もあった方が良いとのこと。そういえばDockerはまだ使ったことがないや。そろそろ触っておかないと。

Hadoop周りは次々と新しいソリューションが出てくるので、追いかけるだけでも一苦労です。

タグ:hadoop big_data
posted by newsit at 07:00| big_data