2016年10月26日 リリース

Elasticsearch for Apache Hadoop 5.0.0リリース

By James Baiera

ES-Hadoopとして親しまれているElasticsearch for Apache Hadoopを使用すれば、Hadoopユーザーおよびデータを必要とする企業様は、本格的な検索/分析エンジンを使用してリアルタイムでワークフローを強化できるようになります。そして今、待ちわびた瞬間がやってきました。ドラムロールを鳴らしてください。開発者でありデータサイエンティストである私が Elasticsearch for Apache Hadoop 5.0.0)を紹介させていただきます!

アーリーアクセスリリースを何度か行ない、フィードバックポストが満杯になり、そして長らくお待たせしましたが、とうとうこの瞬間がやってきました。Elastic Stackは5.0までバージョンを重ね、そのフィニッシュラインを共に越えるのがES-Hadoopです!このリリースには、かなりの数の安定性改善、バグ修正、すべてのお客様に喜んでいただける素晴らしい新機能が盛り込まれています。それでは、前置きはこのくらいにして...

ES-Hadoop 5.0の最新情報

古きを捨て新しきを入れよ

ときには、前に進むための後退が必要になることがあります。今までは、ごくわずかな統合のためにバージョンを重ねることによって、古いバージョンのサポートを減らしてきました。古いバージョンを使用している場合、ES-Hadoop 5.0に移行する前に、互換性を最大限に向上させるために更新することをお奨めします。

Hive 1.0が登場し、Hive 0.13/0.14が終了

Hive 1.0が大分前にリリースされており、大半のディストリビューションがすでに移行されています。たとえば、Hive 0.13とHive 0.14(深刻な問題で苦しめられた2つのリリース)のサポートは現在では終了し、コードベースをクリーンアップしています。

Storm 1.xが登場し、Storm 0.9が終了

Stormのサポートは1.0.xにアップグレードされています。このバージョンはStorm 0.9.xとの下位互換性がないため、こうした下位バージョンのサポートは終了することになります。

Spark 2.0が登場し、Spark 1.0~1.2が終了

Sparkのサポートは、Spark 2.0の最新のリリースで更新されています。本バージョンのSparkには、これまでのSparkバージョンとの下位互換性はありません。Spark 1.3~1.6については、異なる互換性のアーティファクトとしてサポートを継続することを決定しています。SparkSQLは、最初はSpark 1.0~1.2でアルファコンポーネントとしてリリースされました。それ以降、SparkSQLはSpark 1.3で安定するようになりましたが、APIは大幅に変更されています。全く異なる3つのバージョンのSparkをサポートするのは負荷が大きいため、Spark 1.0~1.2のサポート対象から外しました。

HDFS レポジトリ

HDFS レポジトリは、大幅なアップグレードを行っており、今ではElasticsearch本体の一部になっています。こうしたアップグレードのため、ES-Hadoopプロジェクトからは除外しました。とはいえ、Elasticsearch 5.0のHDFSプラグインは、うまい具合にパッケージ化されているだけでなく、統合にも成功しています。こうした改善では、今後は使用できなくなるオプションのJVM「セキュリティマネージャ」を無効にする必要はなくなりました。

(Hadoop/Spark) + Slice API = よりパラレルに

Elasticsearchの新しいScroll Slicing機能の使用をサポートするために、大幅な変更が追加されています。今では入力タスクごとに見たいドキュメントの最大数を指定できるようになり、フレームワークは、入力スプリットを細分化して、コンピューティングの並列処理を増やそうとします。シェアすることは素敵なことではないですか?

Ingest Node

Ingest Nodeと呼ばれるクールな新機能が、アルファリリースで使用できるようになり、Elasticsearch v5.0にも実装されるとのことです。私たちはこう考えました。「そうか、私たちは食べ物をインジェスト(摂取)して、このノードはデータをインジェスト(取り込み)するんだな。これを使って、ブランチの予定をすぐ決めて雑談でもしよう」。ES-Hadoop 5.0のリリースでは、不必要なトラフィックを削減するためにIngest Nodeのみをターゲット化するだけでなく、データを送信するインジェストパイプラインを指定できます。ユーザーからのブランチの件について、つまりIngest Nodeに関する意見を聞けることを期待しています。ぜひお問い合わせください!

Spark Streamingのネイティブサポート

Sparkはかなり速いですが、それよりもさらに速いデータ処理が必要になることもあります。ES-HadoopをSpark Streamingと使用しているユーザーの話を聞くのはうれしいことですが、それと同じくらい、制限に達するまで実行しているのではないかという心痛も感じています。私たちはそのことについて、ある決定を下しました。現在のES-Hadoopでは、Spark Streamingから「DStream」 を使用する方法をネイティブサポートしています。最もよく報告されている、小規模なウィンドウ処理中に接続リソースが枯渇するというSpark Streamingの問題に対する修正をいくつか組み込んでいます。TIMED_WAITがほとんどなく、Spark Streaming Jobの継続期間が長く持続することを願っています。

迅速なバグ駆除

コンピューターというのは、本当に難しいものです。報告された問題が発生したときに、コミュニティの仲間がかなり手助けをしてくれるという幸運に、毎日感謝しています。ES-Hadoopのコピーを開いたときに、バグ修正の最新バッチがすでに適用されていることに気づくでしょう。こうしたバグは、SparkSQLでのデータの上書き、ネットワークコードや「プロパティ」という名前のマッピングのサブフィールドなどでのメモリーリークといった問題などに及びます。そのすべてをここに挙げると、他のことを挙げる余地がなくなります。バグハンターがいることに感謝しなければなりません!これは皆様に捧げます。

フィードバック

いつもながら、うまく行っているかどうかやどんな改善が必要なのかをユーザーから聞けるのはありがたいことです。ですので、Twitter、GitHubまたはフォーラムにいつでも投稿してください。オペレーターが待機しています。

謝辞

私たちES-Hadoopチームは、アーリーアダプターの皆様に、アルファ版やベータ版のリリース直前の数ヶ月間に協力していただいたことに特に感謝しております。5.0は、皆様のおかげで最高のリリースになりました。今後もご協力いただけますようお願いします。