Автоматизированное тестирование в Apache Hive - PullRequest
9 голосов
/ 23 февраля 2011

Я собираюсь приступить к реализации проекта с использованием Apache Hadoop / Hive, который будет включать в себя коллекцию сценариев запросов Hive для создания потоков данных для различных приложений в нисходящем направлении. Эти сценарии кажутся идеальными кандидатами для какого-то модульного тестирования - они представляют собой выполнение API-контракта между моим хранилищем данных и клиентскими приложениями, и поэтому довольно просто написать, какими должны быть ожидаемые результаты для данного набора исходных данных. Моя проблема в том, как запустить эти тесты.

Если бы я работал с запросами SQL, я мог бы использовать что-то вроде SQLlite или Derby, чтобы быстро вызывать тестовые базы данных, загружать тестовые данные и запускать для них набор тестовых запросов. К сожалению, я не знаю о таких инструментах для Hive. На данный момент моя лучшая мысль - заставить тестовую среду вызвать локальный экземпляр hadoop и запустить Hive против этого, но я никогда раньше этого не делал, и я не уверен, что он будет работать или будет правильным путем.

Кроме того, меня не интересует педантичная дискуссия о том, что я делаю, это юнит-тестирование или интеграционное тестирование - мне просто нужно иметь возможность доказать, что мой код работает.

Ответы [ 4 ]

3 голосов
/ 30 августа 2011

Вы также можете рассмотреть следующий пост в блоге, который описывает автоматизацию модульного тестирования с использованием пользовательского служебного класса и муравья: http://dev.bizo.com/2011/04/hive-unit-testing.html

3 голосов
/ 02 сентября 2014

Я работаю в команде над поддержкой платформы для больших данных и аналитики, и у нас также есть такая проблема.

Мы искали некоторое время, и мы нашли две довольно многообещающиеинструменты: https://github.com/klarna/HiveRunner https://github.com/bobfreitas/HadoopMiniCluster

HiveRunner - это фреймворк, созданный на основе JUnit для тестирования запросов Hive.Он запускает автономный HiveServer с меткой памяти в памяти HSQL.С его помощью вы можете заглушки таблиц, представлений, макетов и т. Д.

Хотя есть некоторые ограничения для версий Hive, но я определенно рекомендую это

Надеюсь, это поможет вам =)

3 голосов
/ 24 февраля 2011

Hive имеет специальный автономный режим, специально разработанный для целей тестирования.В этом случае он может работать без hadoop.Я думаю, что это именно то, что вам нужно.Есть ссылка на документацию:

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

2 голосов
/ 25 мая 2015

Я знаю, что это старая тема, но на тот случай, если кто-нибудь с ней столкнется. Я продолжил тестирование мини-кластеров и ульев и обнаружил, что с MR2 и YARN все изменилось, но в хорошем смысле. Я собрал статью и репозиторий Github, чтобы помочь:

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

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...