Быстрое чтение из HBase: пользовательский объект содержит несериализуемое поле

Я пытаюсь прочитать данные из таблицы HBase в среду выполнения Flink.

Ниже приведен пример: https://github.com/apache/flink/blob/master/flink-connectors/flink-hbase/src/test/java/org/apache/flink/addons/hbase/example/HBaseReadExample.java

Я попытался адаптировать пример к моей ситуации, и вот что я сделал:

  DataSet<Tuple2<String, String>> testhbaseDataSet= 
               env.createInput(new TableInputFormat<Tuple2<String, String>>(){

                /**
                 * 
                 */
                private static final long serialVersionUID = -6439507153975964596L;


                @Override
                   public String getTableName() {
                       return "TEST_TABLE";
                   }

                   @Override
                   protected Scan getScanner() {
                       Scan scan = new Scan();

                       scan.addColumn("records".getBytes(), "MDU".getBytes());

                       return scan;

                   }


                   private Tuple2<String, String> reuse = new Tuple2<String, String>();

                   @Override
                   protected Tuple2<String, String> mapResultToTuple(Result r) {
                       String key = Bytes.toString(r.getRow());
                       String val = Bytes.toString(r.getValue("records".getBytes(),"MDU".getBytes() ));
                       reuse.setField(key, 0);
                       reuse.setField(val, 1);
                       return reuse;
                   }      
       });

testhbaseDataSet.print();

Однако когда я запускаю этот код, я получаю следующую ошибку:

User-defined object ... contains non-serializable field ...

Единственное, о чем я могу думать, это то, что, возможно, Flink не подключается к HBase и возвращает ноль, но я не вижу, где можно изменить конфигурации HBase, такие как кворум ZK и т. Д.

Есть идеи?

Спасибо.

0 ответов

Другие вопросы по тегам