elasticsearch-hadoopにプルリクした

仕事でelasticsearch-hadoopでSparkとElasticsearchを組み合わせて使っているのですが、elasticsearch-hadoopがElasticsearchにアクセスするたびにインデックスを作ろうとするので、すでにインデックスが存在するとElasticsearch側でERRORログが出てしまうという問題があり「まあエラーログが出るだけで実害はないし監視するとき除外すればいいだけなんだけどせっかくなので直してみよう」とソースを追っていったら辿り着いたのはJavaコードでした。なんということだ。

https://github.com/elastic/elasticsearch-hadoop/pull/477

しょぼい修正ですが、コンパイルしていたらScala部分で警告がたくさん出ていたのでいくつか直してこちらもプルリクしてみました。

https://github.com/elastic/elasticsearch-hadoop/pull/478

SparkのAPIが非推奨になっていることで出ている警告は「まだSpark 1.0 / Scala 2.10もサポートしているから消せない」とのこと。つらそう。ところで同僚によるとSparkはまだデフォルトではScala 2.10でビルドされているそうなのですが(オプションでScala 2.11でコンパイルすることも可能)、果たしてScala 2.12に移行するのはいつの日か?…というかそもそも移行できるのでしょうか。

そんなこんなで2つともしょぼいプルリクですが、無事マージしていただきました。

ちなみにelasticsearch-hadoop、Gradleでビルドするようになっているんですが、Java7じゃないとコンパイルできませんでした。Gradleはよくわからないので謎なのですが、Sparkサポート部分がなんか引っかかっているような気がします。それと、これをAtomで修正するのはなかなか厳しいものがあるのですが、IDEで開くにはどうしたらいいのでしょうか。さっぱりわかりません。

さて、Elasticsearchはさすがに企業OSSなだけあってマージしてもらうにはCLAへのサインが必要なのですが、なんとWebブラウザ&メール確認でサインが可能でした。昔ASFのコミッタになったときはサインしたものを郵送もしくはスキャンしてメールで送る必要があったのですが、それと比べるとかなり近代化されています。ちなみにASFは現在でも郵送またはメール送信が必要なようです。

また、どうやらelasticsearch-hadoopの中の人は1人で開発しているっぽいです。イシューやプルリクにも丁寧かつ迅速に対応していて凄いなと思いますが、なかなか大変そうです。戦略的なプロダクトになり得るものだと思うのでもう少しリソースを割いてもいいんじゃないかと思うのですが、人がいないんでしょうか。それともElasticsearchでHadoop/Sparkというのはやはりニッチな使い方なのでしょうか。

ともあれelasticsearch-hadoopには今後もお世話になりそうなので、フィードバックできるものがあればまたプルリクしてみようと思います。