HBase, Java, Spark - чтение и сохранение строк в виде файла Hadoop для экспорта - PullRequest
0 голосов
/ 19 октября 2018

Позвольте мне предварить это, сказав, что я Крайне плохо знаком с большими данными / искрой / и т.д.Моя компания нуждается в том, чтобы я написал «простую» программу для чтения таблицы hbase (с учетом строк начала и окончания) и сохранения всех строк, чтобы мы могли переместить их и затем добавить их в другую таблицу hbase в другой сети.Я на начальной стадии выяснения, как это сделать, и у меня есть около 1 недели, чтобы написать и реализовать.Я на правильном пути здесь?Я предполагаю, что saveAsHadoopFile будет делать то, что я хочу?Как создать файл, который можно переместить и затем добавить в другую таблицу HBase?

Как назвать файл, чтобы можно было ссылаться на него позже?Я мог бы добавить /<filename> в конце fileSystemPath, но я не знаю, каким должно быть расширение.

public static void main(String[] args) throws Exception {

    serverURL = args[0];
    zooKeeperPort = args[1];
    hBaseTableName = args[2];
    fileSystemPath = args[3];
    startRow = args[4];
    stopRow = args[5];


    SparkConf sparkConf = new SparkConf().setAppName("DataPull").setMaster("local[*]");
    JavaSparkContext sparkContext = new JavaSparkContext(sparkConf);
    org.apache.hadoop.conf.Configuration conf = new Configuration();

    conf.set(TableInputFormat.INPUT_TABLE, hBaseTableName);
    conf.set(TableInputFormat.SCAN_ROW_START, startRow);
    conf.set(TableInputFormat.SCAN_ROW_STOP, stopRow);

    JavaPairRDD<ImmutableBytesWritable, Result> hbaseRdd =  sparkContext.newAPIHadoopRDD(conf, TableInputFormat.class, ImmutableBytesWritable.class,  Result.class);
    hbaseRdd.saveAsHadoopFile(fileSystemPath, TextInputFormat.class, LongWritable.class, TextOutputFormat.class);  //<== I need to move this file somehow

}
...