Позвольте мне предварить это, сказав, что я Крайне плохо знаком с большими данными / искрой / и т.д.Моя компания нуждается в том, чтобы я написал «простую» программу для чтения таблицы 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
}