尝试在Microsoft Azure云中的HDInsight中运行HBase中加载tsv文件,使用建议的方法连接远程桌面并在命令行上运行,尝试将t1.tsv文件(带有两个制表符分隔的列)从hdfs加载到hbase t1表: C:\ apps \ dist \ hbase-0.98.0.2.1.5.0-2057-hadoop2 \ bin> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns = HBASE_ROW_KEY,num t1 t1.tsv
并得到: 错误:除了行键和时间戳(可选)之外,还需要一个或多个列 用法:importtsv -Dimporttsv.columns = a,b,c
将指定列的顺序替换为num,HBASE_ROW_KEY C:\ apps \ dist \ hbase-0.98.0.2.1.5.0-2057-hadoop2 \ bin> hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns = num,HBASE_ROW_KEY t1 t1.tsv 我明白了: 错误:必须将一列唯一指定为HBASE_ROW_KEY 用法:importtsv -Dimporttsv.columns = a,b,c
这告诉我列列表中的逗号分隔符无法识别或列名不正确我还尝试使用限定符列为num:v和' num' - 什么都没有帮助
任何想法在这里可能是错的?感谢。
答案 0 :(得分:1)
>hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.columns="HBASE_ROW_KEY,d:c1,d:c2" testtable /example/inputfile.txt
这对我有用。我认为Linux和Windows终端之间存在一些差异,因此在Windows中你需要添加引号来澄清这是一个值字符串,否则可能无法识别。