hadoop-解析文本文件并导入HBase中的表


0

我是HBase新手,我已将文本格式的表数据导出为以下格式的文本文件。

72 6f 77 31 keyvalues={row1/cf:a/1444817478342/Put/vlen=6/ts=0}

与我要导入到表中的数据相同,我尝试将此文件输入给Hbase导入,但它需要SequenceFile格式,并尝试通过将input Format类更改为TextInputFormat来调整导入,但仍然没有 job 。有吗指导方针,以达到我的要求。

2 答案


0

您可以使用java程序上传数据,而不是导出数据。

public HBaseDataInsert() throws IOException {
    conf = HBaseConfiguration.create();
    hTable = new HTable(conf, "emp_java");
}

public void upload_transactionFile() throws IOException {

String currentLine = null;
BufferedReader br = new BufferedReader(
        new FileReader("transactionsFile.csv"));
while ((currentLine = br.readLine()) != null) {
    System.out.println(currentLine);
    String[] line = currentLine.split(",");
    Put p = new Put(Bytes.toBytes(line[0] + "_" + line[1]));
    p.add(Bytes.toBytes("details"), Bytes.toBytes("Name"), Bytes.toBytes(line[0]));
    p.add(Bytes.toBytes("details"), Bytes.toBytes("id"), Bytes.toBytes(line[1]));
    p.add(Bytes.toBytes("details"), Bytes.toBytes("DATE"), Bytes.toBytes(line[2]));
    p.add(Bytes.toBytes("transaction details"), Bytes.toBytes("TRANSACTION_TYPE"), Bytes.toBytes(line[3]));

    hTable.put(p);
}
br.close();
hTable.close();

}


0

默认情况下,导出和导入与序列文件转储一起 job 。如果您的需求只是从一个表加载到另一个表,假设两个表的格式相似,那么可以使用以下命令。输入和输出目录是 HDFSS目录。

$bin/hbaseorg.apache.hadoop下载.hbase.mapreduce.Export导出

$bin/hbaseorg.apache.hadoop下载.hbase.mapreduce.Import


我来回答

写文章

提问题

面试题