将TSV文件导入hbase表

时间:2014-12-04 10:29:17

标签: hadoop hive hbase hortonworks-data-platform

我正在使用带有hbase和hive的hortonworks 2.1。 我想从tsv文件创建一个hbase表。该文件在这里:

  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

我使用的命令是:

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

但我收到了这个错误:

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

这是错误:

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
                                              ^

3 个答案:

答案 0 :(得分:2)

您是否已在Hbase中创建了一个表?您首先必须在Hbase中创建一个表,其中'd'作为列族,然后您可以将此tsv文件导入该表。

答案 1 :(得分:0)

创建表后,import命令不在hbase shell中执行,你可以在普通控制台中执行然后它会正常工作 让我们下面的例子

  1. 根据我们的要求在hbase shell中创建tabl

    create 'mytable5', 'cf'
    create 'mytable6', 'cf'
    
  2. 将数据保存在hdfs

    hadoop fs -put /home/mani/work/hbase_inputs /hbase_inputs
    
  3. 导入命令在普通控制台中执行

    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
    

答案 2 :(得分:0)

你应该在Hbase中创建一个表,其中包含' d'作为列族,然后您可以将此tsv文件导入该表。