我正在为Spark / scala流程创建Tests,以编写单元测试用例(如Junits)。我有一个ETL进程,该进程连接到hadoop集群上存在的Hbase表,然后将数据写入另一个hbase表中。在此过程中,挑战在于程序需要连接到集群而不是从本地运行。您能否建议一种解决方案或方法来处理这种情况,以便能够通过与群集上的hbase连接来运行测试?
import com.mymmodels.myDocument
import scala.io.Source
import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FunSuite}
class myServiceTest extends FunSuite{
test("Test sample method") {
//assert(true === myxmlservice.IsDataAvailableInMyDataJson)
val rawXml = Source.fromURL(getClass.getResource("/my_raw.xml")).mkString
val imyDocument:myDocument = mymxmlparser.parsemyGoldenXml(rawDataXml)
assert("1" === myDocument.entity_id)
assert("N" === myDocument.isDeleted)
}
}
答案 0 :(得分:1)
您可以使用dockerized方法,即对管道中的每个组件使用docker映像,并使用docker-compose对其进行编排以进行测试运行。大多数与Hadoop相关的产品都有docker映像。