SORU
23 Mayıs 2013, PERŞEMBE


Entegrasyon test Kovanı işleri

Önemsiz olmayan bir yığın iş Kovanı Tasarruf ve yerli mal arabirimleri kullanarak yazmaya çalışıyorum, ve sorun iyi bir JUnit test ayarlamakta zorlanıyorum. Önemsiz olmayan, iş metastore ile ilgili sadece farklı olarak en az bir MapReduce sahne olur yani.

Test Kovanı bir sunucu ateş, bir tabloya bazı veri yükü, bu tabloyu önemsiz olmayan bazı sorgu çalıştırmak ve sonuçları kontrol etmelisiniz.

Spring reference göre Bahar bir bağlam kablolu yaptım. Ancak, işin aşaması MapReduce, Hadoop ikili var şikayet başarısız:

java.io.IOException: Cannot run program "/usr/bin/hadoop" (in directory "/Users/yoni/opower/workspace/intellij_project_root"): error=2, No such file or directory

Sorun Kovanı Sunucu belleği çalıştıran, ama çalıştırmak için Kovanı yerel yükleme dayanır. Benim proje kendi kendine yeten olmak için, Kovan hizmetleri, HDFS ve MapReduce kümeleri de dahil olmak üzere gömülü olması lazım. Denedim başlayan bir Kovan sunucusu kullanarak aynı kaynak yöntemi ve doğrultuyorum MiniDFSCluster MiniMRCluster benzer desen kullanılan Kovanı QTestUtil kaynak ve HBaseTestUtility. Ancak, iş için bu almak mümkün oldum değil.

Kovan entegrasyon test kavga etmeye üç gün sonra, topluluk sor dedim:

  1. Nasıl tavsiye ederim entegrasyon Kovanı işleri test musun?
  2. Entegrasyon test Kovanı işleri için çalışma JUnit bir örnek bellek HDFS, BAY ve Kovanı örnekleri kullanan var mı?

Ek kaynaklar baktım:

Edit: Hadoop küme yerel veya uzak olsun - karşı çalışma full - stack Kovan bir örneği karşı entegrasyon testleri çalıştırmak için yapar tamamen farkındayım. Belirtildiği gibi sorun, bu etkili Kovan iş akışı test etmek için uygun bir çözüm değildir.

CEVAP
16 ŞUBAT 2014, Pazar


İdeal küme mini test başvurmadan yerine LocalJobRunner kovan sorguları test etmek mümkün olacaktır. Ancak, HIVE-3816 nedeniyle kovanı CLİ yürütülebilir sistemde yüklü çağrısı mapred.job.tracker=local sonuçları ile kovan çalışan söz konusu açıklandığı gibi).

KOVAN-3816 giderilinceye kadar, mini küme test tek seçenektir. Aşağıda CDH 4.4 karşı test ettiğim kovan testleri için mini küme kurulumu bir az.

Configuration conf = new Configuration();

/* Build MiniDFSCluster */
MiniDFSCluster miniDFS = new MiniDFSCluster.Builder(conf).build();

/* Build MiniMR Cluster */
System.setProperty("hadoop.log.dir", "/path/to/hadoop/log/dir"); // MAPREDUCE-2785
int numTaskTrackers = 1;
int numTaskTrackerDirectories = 1;
String[] racks = null;
String[] hosts = null;
miniMR = new MiniMRCluster(numTaskTrackers, miniDFS.getFileSystem().getUri().toString(),
                           numTaskTrackerDirectories, racks, hosts, new JobConf(conf));

/* Set JobTracker URI */
System.setProperty("mapred.job.tracker", miniMR.createJobConf(new JobConf(conf)).get("mapred.job.tracker"));

Test için ayrı hiveserver veya hiveserver2 bir işlemi çalıştırmak için gerek yoktur. Senin olanları bağlantısı jdbc:hive2:/// URL ayarlayarak gömülü hiveserver2 bir süreç ile test edebilirsiniz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrew_Huang

    Andrew_Huang

    10 ŞUBAT 2006
  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013