问题
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
create the tabls in hbase shell as per our requirement
create 'mytable5', 'cf' create 'mytable6', 'cf'
keep the data in hdfs
hadoop fs -put /home/mani/work/hbase_inputs /hbase_inputs
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.
来源:https://stackoverflow.com/questions/27291656/import-tsv-file-into-hbase-table