Подключение к защищенному кластеру HBase Kerberos из приложения Java - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь подключиться к hbase, используя следующий код:

@ Test public void onTrigger () выдает исключение {

    TestRunner runner = getTestRunner();
      runner.run();

}

private TestRunner getTestRunner() выдает исключение FileNotFoundException, InitializationException {

    final TestRunner runner = TestRunners.newTestRunner(PutAllHBaseAVRO.class);
    runner.setProperty(PutAllHBaseAVRO.TABLE_NAME, "myTable");
    runner.setProperty(PutAllHBaseAVRO.COLUMN_FAMILY, "cf");
    runner.setProperty(PutAllHBaseAVRO.BATCH_SIZE, "10000");

    getHBaseClientService(runner);

    runner.setProperty(PutAllHBaseAVRO.ROW_ID,"Row1");

    // runner.setProperty(PutAllHBaseAVRO.HBASE_CLIENT_SERVICE, hBaseClient);
    runner.setProperty(PutAllHBaseAVRO.ROW_FIELD_REVERSE_STATEGY, "Reverse");
    runner.setProperty(PutAllHBaseAVRO.TS_FIELD_NAME, "dateTimeValue");
    runner.setProperty(PutAllHBaseAVRO.TS_FIELD_FORMAT, "yyyy-MM-dd'T'HH:mm:ssZ");
    return runner;
}

private HBaseMyClientService getHBaseClientService (финальный исполнитель TestRunner), выдает исключение InitializationException {

    final HBaseMyClientService hBaseClient = new HBase_1_1_2_MyClientService();


    runner.setProperty(HBaseMyClientService.HADOOP_CONF_FILES, "../hbase-site.xml, ../core-site.xml");

    runner.addControllerService("HBaseMyClientService", hBaseClient);

    //runner.setProperty("Kerberos Principal", "myKerberosPrincipal");

    //runner.setProperty("Kerberos Keytab", "/mypath.keytab");

   // runner.setProperty(HBaseMyClientService.ZOOKEEPER_QUORUM, "hbaseClient");

   // runner.enableControllerService(hBaseClient);

    return hBaseClient;

}

и получает ошибку.Не могу понять, почему у меня такая ошибка:

«Служба клиента HBase» недействительна, поскольку требуется служба клиента HBase «Проверены файлы конфигурации Hadoop» на соответствие ../hbase-site.xml, ../core-site.xml 'недопустим, потому что «Файлы конфигурации Hadoop» не поддерживаются

1 Ответ

0 голосов
/ 23 апреля 2019

TestRunner создан для процессора, который вы можете увидеть при его создании и сказать «newTestRunner (PutAllHbaseAvro.class)».Когда вы вызываете runner.setProperty(name, value), он пытается установить это свойство на процессор, но у вашего процессора нет свойства hadoop conf files, оно есть у службы.Чтобы установить его на услуге, нужно совершить другой звонок runner.setProperty(service, name, value).

...