10

Apache Hadoop / Hiveを使用して、さまざまなダウンストリームアプリケーションのデータフィードを生成するためのハイブクエリスクリプトのコレクションを含むプロジェクトに着手しようとしています。これらのスクリプトは、一部の単体テストの理想的な候補のように見えます。これらは、データストアとクライアントアプリケーション間のAPIコントラクトの履行を表しているため、特定の開始データのセットに対して期待される結果を記述するのは簡単です。私の問題は、これらのテストを実行する方法です。

SQLクエリを使用している場合は、SQLliteやDerbyなどを使用して、テストデータベースをすばやく起動し、テストデータをロードして、それらに対してクエリテストのコレクションを実行できます。残念ながら、私はHive用のそのようなツールを知りません。現時点では、テストフレームワークでHadoopローカルインスタンスを起動し、それに対してHiveを実行することをお勧めしますが、これまでに行ったことがなく、それが機能するか、正しいパスになるかはわかりません。

また、私が行っているのが単体テストなのか統合テストなのかについての衒学的な議論には興味がありません。コードが機能することを証明できればよいだけです。

4

4 に答える 4

4

Hiveには特別なスタンドアロンモードがあり、特にテスト目的で設計されています。この場合、Hadoopなしで実行できます。まさにあなたが必要としているものだと思います。ドキュメントへのリンクがあります:

http://wiki.apache.org/hadoop/Hive/HiveServer

于 2011-02-24T19:04:48.950 に答える
4

私はビッグデータと分析プラットフォームをサポートするためにチームの一員として働いていますが、この種の問題もあります。

私たちはしばらく探していましたが、2つの非常に有望なツールが見つかりました:https://github.com/klarna/HiveRunner https://github.com/bobfreitas/HadoopMiniCluster

HiveRunnerは、HiveクエリをテストするためにJUnit上に構築されたフレームワークです。メタストアとしてメモリ内のHSQLを使用してスタンドアロンのHiveServerを起動します。これを使用すると、テーブル、ビュー、モックサンプルなどをスタブできます。

Hiveのバージョンにはいくつかの制限がありますが、絶対にお勧めします

お役に立てば幸いです=)

于 2014-09-02T19:04:48.413 に答える
3

カスタムユーティリティクラスとantを使用した単体テストの自動化について説明している次のブログ投稿も検討してください。http://dev.bizo.com/2011/04/hive-unit-testing.html

于 2011-08-29T22:40:21.340 に答える
2

私はこれが古いスレッドであることを知っていますが、誰かがそれに遭遇した場合に備えて。ミニクラスターとハイブのテスト全体をフォローアップしたところ、MR2とYARNで状況が変わったことがわかりましたが、良い意味でです。記事とgithubリポジトリをまとめて、いくつかのヘルプを提供します。

http://www.lopakalogic.com/articles/hadoop-articles/hive-testing/

それが役に立てば幸い!

于 2015-05-25T18:06:24.693 に答える