Import TSV file into hbase table

2019-05-12 04:45发布

问题:

I'm using hortonworks 2.1 with hbase and hive. I want to create a hbase table from tsv file. The file is here:

  id    c1  c2
row1    1   22
row2    e1  42
row3    g1  f2
row4    f1  c2
row5    d1  c2
row6    c1  42
row7    e1  c2
row8    c1  c2
row9    c1  c2
row10   c1  22

The command I used is:

bin/hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns= HBASE_ROW_KEY,d:c1,d:c2 hbaseTable /tmp/testTSV.tsv

But I got this error:

SyntaxError: (hbase):5: syntax error, unexpected tSYMBEG

this is the error:

hbase(main):007:0> ImportTsv -Dimporttsv.columns= HBASE_ROW_KEY,d:c1,d:c2 hbaseTable/tmp/testTSV.tsv
SyntaxError: (hbase):7: syntax error, unexpected tSYMBEG

ImportTsv -Dimporttsv.columns= HBASE_ROW_KEY,d:c1,d:c2 hbaseTable /tmp/testTSV.tsv
                                              ^

回答1:

Do you have a table already created in Hbase ? You will first have to create a table in Hbase with 'd' as a column family and then you can import this tsv file into that table.



回答2:

After creating the table, the import command dont execute in hbase shell, you can execute in normal console then it will work properly let us below example

  1. create the tabls in hbase shell as per our requirement

    create 'mytable5', 'cf'
    create 'mytable6', 'cf'
    
  2. keep the data in hdfs

    hadoop fs -put /home/mani/work/hbase_inputs /hbase_inputs
    
  3. import command execute in normal console

    hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns=HBASE_ROW_KEY,cf:c1,cf:c2 mytable5 hdfs://localhost:8020/hbase_inputs/import/sample1.tsv
    


回答3:

You shoud create a table in Hbase with 'd' as a column family and then you can import this tsv file into that table.